nginxinc.nginx_management_suite

Molecule CI/CD License

Ansible NGINX Management Suite ロール

このロールは、NGINX Management Suite(NMS)をインストールするだけです。

注意: このロールは現在も開発中です。未確認の問題があるかもしれません。また、開発が進むにつれて変数が変更される可能性があります。

要件

  1. NGINX Management Suite ライセンスファイル
  2. NGINX Ansible ロール (nginxinc.nginx)

NGINX Management Suite 証明書ファイル

NMSをインストールするには、リポジトリにアクセスするためのNMS証明書ファイルが必要です。MyF5にログインするか、トライアルアクティベーションメールのリンクをたどって、NMSリポジトリの**.crt.key**ファイルをダウンロードしてください:

  • nginx-mgmt-suite-trial.key
  • nginx-mgmt-suite-trial.crt

注意: これらのファイルの名前をそれぞれnginx-repo.keynginx-repo.crtに変更してください。

NGINX インスタンス

NMSには、NGINX OSSまたはNGINX Plusのいずれかのインスタンスが必要です。このロールは、NGINX Ansible ロール(名前はnginxinc.nginx)に依存して処理します。この依存関係のため、このロールを使用する際にnginxinc.nginxに関連する変数を設定できます。例えば、nginx_typenginxinc.nginxの変数で、他のAnsible変数と同様に設定できます。したがって、プレイブックでnginx_type: plusと定義すると、このNMSロールはnginxinc.nginxロールを呼び出し、NGINX Plusをインストールします。詳しくはAnsible ロール NGINXを参照してください。

NGINX OSSまたはNGINX Plusの使用の主な違いは、使用する認証オプションによります。

Ansible

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

  • このロールは、nginxinc.nginxバージョン0.24.0を使用して開発およびテストされました。

    • 2024年6月24日更新:エッジのnginxinc.nginxバージョンを使用します。requirements.ymlの例はこちらです。
  • このロールを使用する場合、以下のコレクションをインストールする必要があります。これらのコレクションのインストールに関する追加情報は、インストールセクションにあります。

    • ansible.posix
    • community.general
    • community.crypto
    • community.docker(Moleculeを使用する予定がある場合のみ必要)
  • このロールは、Ansibleのbecomeパラメータを使用して、rootユーザーとして実行する必要があります。ターゲットホストに適切な許可が設定されていることを確認してください。

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

Jinja2

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

Molecule(オプション)

このAnsibleロールに貢献する場合は、これを使用することをお勧めします。

  • Moleculeは、このロールのさまざまな機能をテストするために使用されます。このロールをテストするために推奨されるMoleculeのバージョンは4.0.1です。

  • Moleculeのインストール方法については、Moleculeのウェブサイトを参照してください。Molecule Dockerドライバーもインストールする必要があります。

  • Moleculeテストを実行するには、NMSライセンスをロールのfiles/licenseフォルダーにコピーする必要があります。

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

    export NGINX_CRT=$( cat <証明書ファイルのパス> | base64 )
    export NGINX_KEY=$( cat <キーファイルのパス> | base64 )
    molecule test -s plus
    

使用法

このAnsibleロールを使用してNGINX Management Suite(NMS)をインストールするための手順は次のとおりです。

インベントリファイルを作成

次の内容でinventoryというインベントリファイルを作成します。

[nms]
<hostname> ansible_user=<adminUserName>  ansible_become=yes

必要なロールとコレクションをインストール

このロールが必要とするパッケージ要件をインストールします。以下の内容のrequirements.ymlファイルを作成します。

---
roles:
  - name: nginxinc.nginx_management_suite
    version: 0.3.0
collections:
  - name: ansible.posix
    version: 1.5.1
  - name: community.general
    version: 6.4.0
  - name: community.crypto
    version: 2.11.0
  - name: community.docker # Moleculeを使用する予定がある場合のみ必要
    version: 3.4.2

次のコマンドを使用して、Ansibleロールとコレクションをインストールします。

ansible-galaxy install -r requirements.yml

すでにインストールされているが、新しいバージョンに更新する必要がある場合は、以下のコマンドを使用します。

ansible-galaxy install -fr requirements.yml

NGINX証明書を知られた場所に移動

ここでは、NGINX証明書をNMSインストールのプレイブックファイルを作成するのと同じディレクトリに移動します。

プレイブックを作成

以下の例を使用して、nms-install.ymlというプレイブックファイルを作成します。ここでは、NGINX PlusでNMSをインストールしています。

NGINX証明書のあるパスを指定してください。ここでは、プレイブックと同じパスにあります。

- name: Install NGINX Management Suite
  hosts: nms

  tasks:
    - name: Install NMS
      ansible.builtin.include_role:
        name: nginxinc.nginx_management_suite
      vars:
        nms_setup: install
        nms_user_name: admin
        nms_user_passwd: default
        nginx_type: plus
        nginx_selinux: true
        nginx_selinux_enforcing: false
        nginx_license:
          certificate: nginx-repo.crt
          key: nginx-repo.key

NMSをインストール

以下のコマンドを実行して、NMSをインストールするプレイブックを実行します。

ansible-playbook -i inventory nms-adm-install.yml

NMS Ansibleロールの最新エッジ、つまりmainブランチを使用する

このロールの最新エッジを使用したい場合はいくつかの方法があります。

  1. requirements.ymlに以下のスニペットを使用します。

    roles:
      - src: https://github.com/nginxinc/ansible-role-nginx-management-suite.git
        version: main
    
  2. git clone https://github.com/nginxinc/ansible-role-nginx-management-suite.gitを使用して、GitHubからロールの最新エッジコミット(mainブランチ)を取得します。

プラットフォーム

このAnsibleロールは、NGINX Management Suiteでサポートされているすべてのプラットフォームをサポートしています:

NGINX Management Suite

Amazon Linux 2:
  - いつでも
CentOS:
  - 7.4以上
Debian:
  - buster (10)
  - bullseye (11)
Oracle Linux:
  - 7.4以上
  - 8
Red Hat:
  - 7.4以上
  - 8
  - 9
Ubuntu:
  - bionic (18.04)
  - focal (20.04)
  - jammy (22.04)

注意: 準拠していないプラットフォームにNGINX Management Suiteをインストールするには、自分のリスクで行ってください。

ロール変数

このロールには複数の変数があります。これらの変数の説明とデフォルトは、**defaults/main/**フォルダー内の次のファイルに見つかります:

名前 説明
main.yml NMSインストール変数

同様に、事前設定された変数の説明とデフォルトは、**vars/**フォルダー内の次のファイルに見つかります:

名前 説明
main.yml サポートされているNMSインストール変数のリスト

例プレイブック

機能するプレイブックの例は、**molecule/**フォルダー内の次のファイルに見つかります:

名前 説明
default/converge.yml NGINX OSSとNMSをインストール
plus/converge.yml NGINX PlusとNMSをインストール
upgrade/converge.yml NMSをアップグレード
modules/converge.yml NGINX OSSとNMS及びAPI接続マネージャーモジュールをインストール
service-stopped/converge.yml NGINX OSSとNMSをインストールし、サービスを選択した状態にする

このリポジトリをAnsible Galaxyを介してインストールする場合、サンプルプレイブック中のロール変数は、ansible-role-nginx-management-suiteからnginxinc.nginx_management_suiteに置き換える必要があります。

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

NGINX Open Source、NGINX Plus、NGINX App Protectをインストールおよび構成するためのAnsible NGINXコアコレクションのロールは、こちらにあります。

NGINXを構成するためのAnsible NGINX構成ロールは、こちらにあります。

NGINX UnitをインストールするためのAnsible NGINX Unitロールは、こちらにあります。

ライセンス

Apache License, Version 2.0

作者情報

John Wong

Alessandro Fael Garcia

© F5, Inc. 2023

プロジェクトについて

Official Ansible role for the NGINX Management Suite

インストール
ansible-galaxy install nginxinc.nginx_management_suite
ライセンス
apache-2.0
ダウンロード
2.9k
所有者
We're constantly expanding our ecosystem to help you create the best web and app experience around