NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE に Nutanix Files を展開する。(Ansible 編)

Ansible を利用して、Nutanix CE に シングル ノード構成の Nutanix Files ファイル サーバーを作成・削除してみます。

今回の内容です。

今回の環境について

以前の投稿での REST API による Nutanix Files の操作を、Ansible の uri モジュールに置き換えてみます。各種パラメータの指定も、ほぼ下記の投稿にあわせてあります。

ちなみに、uri モジュールでたんに REST API を実行しているので、冪等性はありません。(たんに手順の自動化です)

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

gist.github.com

ansible-playbook コマンドで、Playbook を実行します。

$ ansible-playbook create_file-server.yml

実行すると、下記のようにファイル サーバーが作成されます。最後のタスク完了確認は 30分(30 秒ごとに 60回確認)まで待機するようにしてあるので、もし時間がかかるようであれば、retries: 60 の数値を増やしたりします。

f:id:gowatana:20210808171036p:plain

共有フォルダの作成

作成したファイル サーバーに、SMB 共有フォルダを作成する Playbook を用意しておきます。

gist.github.com

Playbook を実行して、共有フォルダを作成します。

$ ansible-playbook create_share.yml

実行すると、下記のように共有フォルダが作成されます。

f:id:gowatana:20210808171654p:plain

ファイル サーバーの削除

作成したファイル サーバーを削除してみます。

ファイル サーバーを削除する Playbook を用意しておきます。ファイルサーバー削除の前に、DNS レコード削除と、AD ドメイン離脱も実施するようにしています。

gist.github.com

ansible-playbook コマンドで、Playbook を実行します。

$ ansible-playbook delete_file-server.yml

実行すると、DNS レコード削除、AD ドメイン離脱、ファイル サーバー削除が順に実行されます。

f:id:gowatana:20210808170936p:plain

以上。

©2021 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。