nginxinc.nginx
以下のテキストを日本語に翻訳しました。簡単で理解しやすくしました。
👾 私たちの調査に参加して、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.18
はyum
モジュールをサポートしておらず、したがって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 Plus、NGINXエージェントおよび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ロールはこちらで見つけることができます。
ライセンス
著者情報
© F5, Inc. 2018 - 2024
Official Ansible role for installing NGINX
ansible-galaxy install nginxinc.nginx