nginxinc.nginx

以下のテキストを日本語に翻訳しました。簡単で理解しやすくしました。


Ansible Galaxy Molecule CI/CD ライセンス プロジェクトの状態: アクティブ – プロジェクトは安定した使用可能な状態に達し、積極的に開発中です。 コミュニティサポート 貢献者規約

👾 私たちの調査に参加して、NGINX Ansibleロールをより良くしましょう! 👾

Ansible NGINX ロール

このロールは、ターゲットホストにNGINX(NGINXオープンソース)、NGINX Plus、NGINXエージェント、および/またはNGINX Amplifyエージェントをインストールします。

[!重要] このロールはまだ開発中です。問題が特定されていない可能性があり、ロールの変数も今後変更されることがあります。

ロールの要件

NGINX

ターゲットのNGINXの使用ケースに応じて、ロールを使用する前にライセンスやAPIキー/トークンを取得する必要があります:

製品 要件
NGINX なし
NGINX Plus NGINX Plusライセンス(ライセンスキーとcrtファイルが必要)
NGINXエージェント 互換性のあるコントロールプレーンと(オプションで)NGINX One SaaSコンソールデータプレーントークン
NGINX Amplify NGINX Amplify SaaSコンソール内にあるAPIキー

Ansible

このロールを使用するには、サポートされているAnsibleコアおよびJinja2のバージョンを使用する必要があります。また、いくつかのAnsibleコレクションも必要です。

使いやすさのために、以下の四つのコマンドをAnsibleホストで実行することで、Ansibleコア、Jinja2、および上記のAnsibleコレクションをインストールまたはアップグレードできます:

pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_ansible.txt
curl -O https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_collections.yml
ansible-galaxy install --force -r requirements_collections.yml
rm -f requirements_collections.yml

これにより、上記のパッケージ/コレクションの完全にテストされたバージョンでこのロールをデプロイ/実行することが保証されます。

Ansibleコア

  • このロールは、メンテナンスされている AnsibleコアとPythonのバージョンで開発およびテストされています。

    注意: Ansible 2.18yumモジュールをサポートしておらず、したがってAmazon Linux 2がEoLに達するまでこのロールではサポートされません。

  • Ansibleコアを使用する場合、次のAnsibleコレクションをインストールする必要があります:

    ---
    collections:
      - name: ansible.posix
        version: 1.5.4
      - name: community.general
        version: 9.2.0
      - name: community.crypto # NGINX Plusをインストールする予定の場合のみ必要
        version: 2.21.1
      - name: community.docker # Moleculeを使用する予定の場合のみ必要
        version: 3.11.0
    
  • このロールは、Ansibleのbecomeパラメータを使用してrootユーザーとして実行する必要があります。ターゲットホストに適切な権限が設定されていることを確認してください。

  • Ansibleコアのインストール方法については、Ansibleのドキュメントを参照してください。

  • Ansibleコレクションのインストール方法については、Ansible collectionsのガイドを参照してください。

[!ヒント] コレクションを個別に管理したくない場合は、Ansible community distributionをインストールできます(現在もAnsibleとして知られています)。

Jinja2

  • このロールではJinja2テンプレートを使用しています。AnsibleコアはデフォルトでJinja2をインストールしますが、インストール/アップグレードの経路によっては古いバージョンのJinja2を使用している場合があります。このロールが正しく機能するために必要なJinja2の最小バージョンは3.1です。
  • Jinja2のインストール方法については、Jinja2のウェブサイトを参照してください。

テストスイート(オプション)

このロールに貢献したい場合、Ansible LintとMoleculeのインストールも必要です。

Ansible Lint(オプション)

  • Ansible Lintは、Ansibleのベストプラクティスや潜在的なAnsible/YAMLの問題をリントするために使用されます。

  • Ansible Lintのインストール方法については、Ansible Lintのウェブサイトを参照してください。

  • インストール後、Ansible Lintの使用は次のように簡単です:

    ansible-lint
    
  • Ansible Lintを使いやすくするために、次のコマンドをAnsibleホストで実行してインストールまたはアップグレードできます:

    pip install -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_ansible_lint.txt
    

Molecule(オプション)

  • Moleculeは、ロールのさまざまな機能をテストするために使用されます。

  • Moleculeのインストール方法については、Moleculeのウェブサイトを参照してください。 MoleculeプラグインパッケージとDocker Python SDKもインストールする必要があります。

  • NGINX PlusのMoleculeテストを実行するには、まずNGINX Plusのライセンスをロールのfiles/licenseディレクトリにコピーする必要があります。

    また、NGINX Plusリポジトリの証明書と鍵をローカル環境に追加することもできます。次のコマンドを実行して、これらのファイルをbase64エンコードされた変数としてエクスポートし、Moleculeテストを実行します:

    export NGINX_CRT=$( cat <証明書ファイルへのパス> | base64 )
    export NGINX_KEY=$( cat <鍵ファイルへのパス> | base64 )
    molecule test -s plus
    
  • Molecule、Moleculeプラグインパッケージ、Docker Python SDKを使いやすくするために、次のコマンドをAnsibleホストで実行してインストールまたはアップグレードできます:

    pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_molecule.txt
    

ロールのインストール

このロールは、Ansible Galaxy(Ansibleコミュニティーマーケットプレイス)またはリポジトリをクローンすることでインストールできます。インストール後、Ansibleプレイブックにロールを含める必要があります。 rolesキーワード、import_roleモジュール、またはinclude_roleモジュールを使用してください

Ansible Galaxy

システムにロールの最新安定版をインストールするには、以下を使用します:

ansible-galaxy install nginxinc.nginx

すでにロールをインストールしている場合は、最新のリリースにロールを更新するには、以下を使用します:

ansible-galaxy install -f nginxinc.nginx

ロールを使用するには、プレイブックに次のタスクを含めます:

- name: NGINXをインストール
  ansible.builtin.include_role:
    name: nginxinc.nginx

Git

GitHubからロールの最新のエッジコミットを取得するには、以下を使用します:

git clone https://github.com/nginxinc/ansible-role-nginx.git

ロールを使用するには、プレイブックに次のタスクを含めます:

- name: NGINXをインストール
  ansible.builtin.include_role:
    name: <リポジトリのパス> # 例: プロジェクトのrolesディレクトリ内にリポジトリをクローンした場合は<roles/ansible-role-nginx>

プラットフォーム

NGINX Ansibleロールは、ほぼすべてのプラットフォームをサポートしていますNGINXオープンソースNGINX PlusNGINXエージェントおよびNGINX Amplifyエージェント

NGINX オープンソース

AlmaLinux:
  - 8
  - 9
Alpine:
  - 3.17
  - 3.18
  - 3.19
  - 3.20
Amazon Linux:
  - 2
  - 2023
Debian:
  - bullseye (11)
  - bookworm (12)
Oracle Linux:
  - 8
  - 9
Red Hat:
  - 8
  - 9
Rocky Linux:
  - 8
  - 9
SUSE/SLES:
  - 12
  - 15
Ubuntu:
  - focal (20.04)
  - jammy (22.04)
  - mantic (23.10)
  - noble (24.04)

NGINX Plus

AlmaLinux:
  - 8
  - 9
Alpine:
  - 3.16
  - 3.17
  - 3.18
  - 3.19
Amazon Linux:
  - 2
  - 2023
Debian:
  - bullseye (11)
  - bookworm (12)
FreeBSD:
  - 13
  - 14
Oracle Linux:
  - 8.1+
  - 9
Red Hat:
  - 8.1+
  - 9
Rocky Linux:
  - 8
  - 9
SUSE/SLES:
  - 12
  - 15
Ubuntu:
  - focal (20.04)
  - jammy (22.04)
  - noble (24.04)

NGINX エージェント

AlmaLinux:
  - 8
  - 9
Alpine:
  - 3.17
  - 3.18
  - 3.19
  - 3.20
Amazon Linux:
  - 2
  - 2023
Debian:
  - bullseye (11)
  - bookwork (12)
FreeBSD:
  - 13
  - 14
Oracle Linux:
  - 8
  - 9
Red Hat:
  - 8
  - 9
Rocky Linux:
  - 8
  - 9
SUSE/SLES:
  - 12
  - 15
Ubuntu:
  - focal (20.04)
  - jammy (22.04)
  - noble (24.04)

NGINX Amplify エージェント

Amazon Linux:
  - 2
Debian:
  - buster (10)
  - bullseye (11)
Red Hat:
  - 8
  - 9
Ubuntu:
  - bionic (18.04)
  - focal (20.04)
  - jammy (22.04)

[!警告] 自己責任でこのロールを使用して、NGINXオープンソースをソースからコンパイルしたり、「互換性のある」未サポートのプラットフォームにNGINXオープンソースをインストールしたり、各ディストリビューションのパッケージマネージャからNGINXをインストールしたり、BSDシステムにNGINXオープンソースをインストールしたりすることもできます。

ロール変数

このロールには複数の変数があります。これらの変数の説明とデフォルト値は、**defaults/main/**ディレクトリにある以下のファイルに記載されています:

名前 説明
main.yml NGINXインストール変数
agent.yml NGINXエージェントインストール変数
amplify.yml NGINX Amplifyエージェントインストール変数
bsd.yml BSDインストール変数
logrotate.yml Logrotate構成変数
selinux.yml SELinux構成変数
systemd.yml Systemd構成変数

同様に、プリセット変数の説明とデフォルト値は、**vars/**ディレクトリにある以下のファイルに記載されています:

名前 説明
main.yml サポートされているNGINXプラットフォーム、モジュール、およびLinuxインストール変数のリスト

例プレイブック

機能的なプレイブックの例は、**molecule/**フォルダー内に以下のファイルとしてあります:

名前 説明
agent/converge.yml NGINXエージェントをインストールして、F5 Distributed CloudのNGINX One SaaSコントロールプレーンに接続する
amplify/converge.yml NGINX Amplifyエージェントをインストールして構成する
default/converge.yml 特定のバージョンのNGINXをインストールし、さまざまなNGINXサポートモジュールをインストールし、systemdを調整し、logrotateを設定する
distribution/converge.yml NGINXのパッケージリポジトリからNGINXをインストール
downgrade/converge.yml 特定のNGINXバージョンにダウングレード
downgrade-plus/converge.yml 特定のNGINX Plusバージョンにダウングレード
plus/converge.yml NGINX PlusとさまざまなNGINX Plusサポートモジュールをインストール
source/converge.yml ソースからNGINXをインストール
stable/converge.yml 最新の安定リリースを使用してNGINXをインストール
uninstall/converge.yml NGINXをアンインストール
uninstall-plus/converge.yml NGINX Plusをアンインストール
upgrade/converge.yml NGINXをアップグレード
upgrade-plus/converge.yml NGINX Plusをアップグレード
version/converge.yml 特定のバージョンのNGINXとさまざまなNGINXモジュールをインストール

[!注意] Ansible Galaxy経由でこのリポジトリをインストールする場合、例プレイブック内のinclude_role変数をansible-role-nginxからnginxinc.nginxに置き換える必要があります。

その他のNGINX Ansibleコレクションとロール

NGINXオープンソース、NGINX Plus、およびNGINX App Protectをインストールおよび構成するためのAnsible NGINX Coreコレクションのロールはこちらで見つけることができます。

NGINXを構成するためのAnsible NGINX構成ロールはこちらで見つけることができます。

NGINX App Protect WAFおよびNGINX App Protect DoSをインストールおよび構成するためのAnsible NGINX App Protectロールはこちらで見つけることができます。

NGINX UnitをインストールするためのAnsible NGINX Unitロールはこちらで見つけることができます。

ライセンス

Apacheライセンス、バージョン2.0

著者情報

アレッサンドロ・ファエル・ガルシア

グレゴルズ・ジェジエン

トム・ガマル

© F5, Inc. 2018 - 2024

プロジェクトについて

Official Ansible role for installing NGINX

インストール
ansible-galaxy install nginxinc.nginx
ライセンス
apache-2.0
ダウンロード
3.5M
所有者
Welcome to this part of the NGINX open source world. We're constantly expanding our ecosystem designed to help you create the best web and app experience around