最近、Nutanix 公式の Ansible Collectin がリリースされたので、Linux にインストールしてみます。Ansible Collectin の名前は「nutanix.ncp」です。
今回の内容です。
Nutanix と Ansible モジュール
以前は、Nutanix 公式の Ansible モジュールは存在していなかったので、Ansible の uri モジュールで Nutanix REST API をコールして操作する必要がありました。(下記のような感じにて)
公式の Ansible Collectin が公開されたことで、REST API の URL 指定ではなくモジュール(たとえば ntnx_vms)で Nutanix HCI 環境を操作できるようになります。ただしモジュールはけっこう少ないです。
- Nutanix Ansible | nutanix.ansible
-
GitHub - nutanix/nutanix.ansible: Official Nutanix Ansible collections
Ansible Galaxy でも公開されています。
Ansible 実行環境の準備
今回は、Oracle Linux 8 に Python 3.9 と Ansible をインストールします。
Linux ディストリビューションは、Oracle Linux 8.5 です。
[root@lab-ansible-02 ~]# cat /etc/oracle-release Oracle Linux Server release 8.5
パッケージをアップデートしておきます。
[root@lab-ansible-02 ~]# dnf update -y [root@lab-ansible-02 ~]# reboot
EPEL リポジトリの設定をインストールします。
[root@lab-ansible-02 ~]# dnf install oracle-epel-release-el8 -y
Ansible は、RPM でインストールします。
[root@lab-ansible-02 ~]# dnf install ansible -y [root@lab-ansible-02 ~]# rpm -q ansible ansible-2.9.27-1.el8.noarch
Python 3.6 が、RPM の依存関係でインストールされます。
[root@lab-ansible-02 ~]# python3 -V Python 3.6.8
Ansible Collectin(nutanix.ncp)のインストール
Nutanix 公式の Ansible Collectin は、インターネット接続できる環境であれば、「ansible-galaxy collection install nutanix.ncp」でインストールできます。
[root@lab-ansible-02 ~]# ansible-galaxy collection install nutanix.ncp Process install dependency map Starting collection install process Installing 'nutanix.ncp:1.0.2' to '/root/.ansible/collections/ansible_collections/nutanix/ncp'
VM の作成
今回は、Nutanix CE 2020.09.16 の Prism Element に接続して、VM を作成してみます。
下記のような Playbook の YAML ファイルを作成しておきます。
- nutanix_host、nutanix_username、nutanix_password は、Nutanix クラスタ似合わせて書き換えます。
- 作成された VM を見分けやすいように、Description(desc: "managed by ansible")を指定しています。
- AHV のネットワークは、事前に作成しておきます。(例では nw-vlan-12)
- イメージサービスのディスク イメージは、事前に登録しておきます。(例では ol83-min-01-vdisk)
Playbook を実行します。
[root@lab-ansible-02 ~]# ansible-playbook test-vm-01.yml
下記のような感じで実行されます。
VM が作成できました。
(ちなみに、この Playbook を再実行すると、もうひとつ VM が作成されます)
以上。