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.3Ansibleコアのインストール方法については、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