nginxinc.nginx_config
👾 NGINXの設定Ansibleロールをより良くするために、私たちのアンケートに参加してください! 👾
Ansible NGINX設定ロール
このロールは、ターゲットホスト上でNGINX Open SourceおよびNGINX Plusを構成します。
[!重要] このロールは現在も開発中です。未発見の問題があるかもしれず、ロールの変数は開発が進むにつれて変更される可能性があります。
ロール要件
Ansible
このロールを使用するには、サポートされているバージョンのAnsibleコアとJinja2、およびいくつかのAnsibleコレクションを使用する必要があります。
簡単に使用するために、次の四つのコマンドをAnsibleホストで実行して、Ansibleコア、Jinja2、上記のAnsibleコレクションをインストールおよび/またはアップグレードできます:
pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_ansible.txt
curl -O https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_collections.yml
ansible-galaxy install --force -r requirements_collections.yml
rm -f requirements_collections.yml
これにより、上記のパッケージ/コレクションの完全にテストされたバージョンを使用してこのロールをデプロイ/実行できるようになります。
Ansibleコア
このロールは、維持されたバージョンのAnsibleコアとPythonで開発およびテストされています。
Ansibleコアを使用する場合、次のAnsibleコレクションもインストールする必要があります:
--- collections: - name: ansible.posix version: 1.5.4 - name: community.general version: 9.0.1 - name: community.docker # Moleculeを使用する予定がある場合のみ必要 version: 3.10.3
Ansibleコアのインストール方法については、Ansibleのドキュメントを参照してください。
Ansibleコレクションのインストール方法については、Ansibleコレクションガイドを参照してください。
[!ヒント] 個々のコレクションを管理したくない場合は、Ansibleコミュニティディストリビューション(従来の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ホストで実行して、Ansible Lintをインストールおよび/またはアップグレードできます:
pip install -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_ansible_lint.txt
Molecule(オプション)
Moleculeは、ロールのさまざまな機能をテストするために使用されます。
Moleculeのインストール方法については、Moleculeのウェブサイトを参照してください。MoleculeプラグインパッケージとDocker Python SDKもインストールする必要があります。
NGINX Plus/App Protectの設定Moleculeテストを実行するには、NGINX Plus/App ProtectのライセンスをロールのMolecule
common/files/license
ディレクトリにコピーする必要があります。代わりに、NGINX Plus/App Protectのリポジトリ証明書とキーをローカル環境に追加できます。次のコマンドを実行して、これらのファイルをbase64エンコードされた変数としてエクスポートし、Moleculeテストを実行します:
export NGINX_CRT=$( cat <証明書ファイルのパス> | base64 ) export NGINX_KEY=$( cat <キーファイルのパス> | base64 ) molecule test -s plus
簡単に使用するために、次のコマンドをAnsibleホストで実行して、Molecule、Moleculeプラグインパッケージ、Docker Python SDKをインストールおよび/またはアップグレードできます:
pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_molecule.txt
ロールのインストール
このロールは、Ansible Galaxy(Ansibleコミュニティマーケットプレイス)またはこのリポジトリをクローンすることでインストールできます。インストール後は、roles
キーワード、import_role
モジュール、またはinclude_role
モジュールを使用してAnsibleプレイブックにロールを含める必要があります。
Ansible Galaxy
システムに最新の安定リリースのロールをインストールするには、次のコマンドを使用してください:
ansible-galaxy install nginxinc.nginx_config
また、すでにロールをインストールしている場合は、次のコマンドを使用してロールを最新のリリースに更新できます:
ansible-galaxy install -f nginxinc.nginx_config
ロールを使用するには、プレイブックに次のタスクを含めます:
- name: NGINXを構成
ansible.builtin.include_role:
name: nginxinc.nginx_config
Git
GitHubからロールの最新のエッジコミットを取得するには、次のコマンドを使用します:
git clone https://github.com/nginxinc/ansible-role-nginx-config.git
ロールを使用するには、プレイブックに次のタスクを含めます:
- name: NGINXを構成
ansible.builtin.include_role:
name: <リポジトリのパス> # 例えば、プロジェクトのrolesディレクトリ内にリポジトリをクローンした場合は<roles/ansible-role-nginx-config>
プラットフォーム
NGINX設定Ansibleロールは、NGINX Open SourceおよびNGINX Plusがサポートするすべてのプラットフォームをサポートしています。
[!注意] このロールを使用して、任意のNGINXインストールを構成できるはずです -- どこでどのようにインストールされていても。当ロールのサポートされていないインストール方法/プラットフォームに関するバグは、最善を尽くして対処される可能性がありますが、完全に無視されることもあります。*
ロール変数
このロールには複数の変数があります。これらの変数の説明とデフォルトは、**defaults/main/
**ディレクトリ内の以下のファイルにあります:
名前 | 説明 |
---|---|
main.yml |
NGINXの簡単な設定変数 |
selinux.yml |
NGINXセットアップへの必要な接続を許可するためのSELinuxの設定 |
template.yml |
NGINX設定テンプレートの変数 |
upload.yml |
NGINX設定/HTML/SSLアップロード変数 |
例のプレイブック
動作する機能的なプレイブックの例は、**molecule/
**ディレクトリ内の以下のファイルにあります:
名前 | 説明 |
---|---|
api/converge.yml |
NGINX Plus APIおよびライブメトリクスダッシュボードを構成 |
cleanup_config/converge.yml |
NGINX設定のクリーンアップ |
complete/converge.yml |
すべてのNGINXディレクティブが正しくテンプレート化されているかをテスト |
complete_plus/converge.yml |
すべてのNGINX Plus特定のディレクティブが正しくテンプレート化されているかをテスト |
default/converge.yml |
できるだけデフォルト設定に近い設定でNGINXを構成 |
push_config/converge.yml |
既存のNGINX設定をシステムからNGINXインスタンスにプッシュ |
reverse_proxy/converge.yml |
二つのウェブサーバーの間でNGINXをリバースプロキシとして構成 |
stub_status/converge.yml |
NGINX Open Sourceのスタブステータスメトリクスを構成 |
web_server/converge.yml |
NGINXをウェブサーバーとして構成 |
[!注意] Ansible Galaxyを介してこのリポジトリをインストールした場合、例のプレイブックの
include_role
変数をansible-role-nginx-config
からnginxinc.nginx_config
に置き換える必要があります。
その他のNGINX Ansibleコレクションとロール
NGINX Open Source、NGINX Plus、NGINX App Protectをインストールおよび構成するためのAnsible NGINX Coreコレクションはこちらで見つけることができます。
NGINX OSSとNGINX PlusをインストールするためのAnsible NGINXロールはこちらで見つけることができます。
NGINX App Protect WAFとNGINX App Protect DoSをインストールおよび構成するためのAnsible NGINX App Protectロールはこちらで見つけることができます。
NGINX UnitをインストールするためのAnsible NGINX Unitロールはこちらで見つけることができます。
ライセンス
著者情報
© F5, Inc. 2020 - 2024
Official Ansible role for configuring NGINX
ansible-galaxy install nginxinc.nginx_config