Ansible を利用して、Nutanix CE に シングル ノード構成の Nutanix Files ファイル サーバーを作成・削除してみます。
今回の内容です。
構成のイメージです。
今回の環境について
以前の投稿での REST API による Nutanix Files の操作を、Ansible の uri モジュールに置き換えてみます。各種パラメータの指定も、ほぼ下記の投稿にあわせてあります。
ちなみに、uri モジュールでたんに REST API を実行しているので、冪等性はありません。(たんに手順の自動化です)
- Nutanix CE に Nutanix Files を展開する。(シングル ノード構築 REST API 編) - NTNX>日記
- Nutanix CE の Nutanix Files ファイル サーバーを削除する。(REST API 編) - NTNX>日記
Ansible の実行環境は、下記のように構築してあります。
Anaible は、EPEL の RPM をインストールしてあります。
$ dnf list ansible -q インストール済みパッケージ ansible.noarch 2.9.23-1.el8 @epel
使用する Nutanix 環境は、下記投稿のように準備してあります。
Ansible 設定ファイルの作成
ansible.cfg ファイルを、下記のような内容で作成しておきます。
[defaults] interpreter_python=/usr/bin/python inventory = ./inventory.ini
inventory.ini ファイルを作成し、Ansible の実行対象となるホスト名を記載しておきます。ただし、今回利用する uri モジュールは localhost 宛に実行するので、「localhost」だけ記載しています。そして Prism のアドレスは、各モジュールのパラメータとして指定します。
localhost
変数ファイルの作成
Prism のログイン情報と、Active Directory ドメイン ユーザの情報を、独立したファイルに記載しておきます。このファイルに記載した変数は、各 Playbook の「vars_files」で読み込みます。
login.yml というファイルを作成し、Prism への接続に関連するパラメータを記載しておきます。最後のパラメータは、証明書確認を無視するために変数を用意しました。
prism_address: "lab-nxce-01.go-lab.jp" prism_username: "admin" prism_password: "Nutanix/4u" validate_tls_certs: no
login-ad.yml というファイルを作成し、Nutanix Files が参加する AD ドメイン名と、ファイル サーバー管理者にするドメイン ユーザの情報を記載しています。
ad_domain_name: "ntnx.lab" fs_admin_ad_user_name: "afsadmin" fs_admin_ad_user_pass: "Nutanix/4u"
ファイル サーバーの作成
Nutanix Files のファイル サーバーを作成する Playbook を用意しておきます。ファイル サーバー作成の開始後に、そのタスクの完了確認をするようにしてあります。
create_file-server.yml
ansible-playbook コマンドで、Playbook を実行します。
$ ansible-playbook create_file-server.yml
実行すると、下記のようにファイル サーバーが作成されます。最後のタスク完了確認は 30分(30 秒ごとに 60回確認)まで待機するようにしてあるので、もし時間がかかるようであれば、retries: 60 の数値を増やしたりします。
共有フォルダの作成
作成したファイル サーバーに、SMB 共有フォルダを作成する Playbook を用意しておきます。
Playbook を実行して、共有フォルダを作成します。
$ ansible-playbook create_share.yml
実行すると、下記のように共有フォルダが作成されます。
ファイル サーバーの削除
作成したファイル サーバーを削除してみます。
ファイル サーバーを削除する Playbook を用意しておきます。ファイルサーバー削除の前に、DNS レコード削除と、AD ドメイン離脱も実施するようにしています。
ansible-playbook コマンドで、Playbook を実行します。
$ ansible-playbook delete_file-server.yml
実行すると、DNS レコード削除、AD ドメイン離脱、ファイル サーバー削除が順に実行されます。
以上。