IBM Cloud Docs
Ansible のインストールと構成

Ansible のインストールと構成

前のステップで、自動化サーバーがプロビジョニングされ、初期オペレーティング・システム構成が完了しています。 このステップでは、以下のタスクが実施されます。

  1. Ansible のインストール
  2. Ansible コレクションの追加
  3. Ansible インベントリー・ファイルの作成
  4. Ansible ボールトを使用したファイルの暗号化
  5. 接続のテスト

Ansible NSX-T コレクションをインストールする際には、オプションのステップがあります。 オプションのステップが必要になるのは、Ansible® を使用してサンドボックスを作成する場合のみです。

Ansible のインストール

自動化サーバーのコマンド・ラインで、以下のコマンドを実行します。

sudo apt update
sudo apt install ansible -y
sudo apt install python3-pip -y
ansible --version

これらのコマンドは、以下の項目に使用されます。

  • システムのパッケージ索引をリフレッシュする。
  • Ansible® ソフトウェアをインストールする。
  • Ansibleで WinRM を使用する場合に、その使用に必要な pip パッケージをインストールする。
  • Ansible がインストールされていることを確認する。

Ansible コレクションの追加

Ansible コレクションは追加モジュールです。 このデプロイメントでは、以下のコマンドを使用して必要なコレクションを追加します。

ansible-galaxy collection install ansible.posix
ansible-galaxy collection install community.general
ansible-galaxy collection install ansible.windows
ansible-galaxy collection install community.windows
ansible-galaxy collection install juniper.device
ansible-galaxy collection install junipernetworks.junos

juniper.device コレクションおよび junipernetworks.junos コレクションは、隔離されたリカバリー環境を構築する場合にのみ必要になります。

Ansible インベントリー・ファイルの作成

  1. Ansible ファイルのディレクトリー構造を作成し、初期インベントリー・ファイルを作成して Ansible ホストへの Ansible 接続をテストします。 Ansible ユーザーとして接続されている場合は、以下のコマンドを使用します。

    sudo mkdir /swlib
    sudo mkdir /swlib/ansible
    
  2. 2 つのグループ [LHBR] と [VBR] を持つ hosts という名前のインベントリー・ファイルを作成します。これには、強化 Linux® リポジトリーと Veeam® バックアップ・サーバーの、IP アドレスまたは FQDN を指定します。

    touch /swlib/ansible/hosts
    vi /swlib/ansible/hosts
    

変更不可能バックアップ用の hosts ファイル。

[lhbr]
lhbr01.test.ibmcloud.local ansible_user=root

[vbr]
prodbackup ansible_host=10.38.207.157 ansible_user=sa-ansible ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

隔離されたリカバリー環境用の hosts ファイル。

[lhbr]
lhbr01.test.ibmcloud.local ansible_user=root

[vbr]
prodbackup ansible_host=10.38.207.157 ansible_user=sa-ansible ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

[vsrx]
gateway01 ansible_host=10.5.37.138 ansible_user=sa-ansible

ファイルを暗号化するための Ansible ボールトの使用

Ansible ボールトを使用すると、値とデータ構造を暗号化して重要データを保護できます。ここで、重要データとは、パスワードや秘密鍵のように、Ansible の再生を正常に実行するために必要ではある一方で公開されていないものです。 Ansible は、鍵が指定されると、ボールトで暗号化されたコンテンツを実行時に自動的に暗号化解除します。

ボールトはファイル・レベルの細分性で実装されます。つまり、ファイルは完全に暗号化されているか、暗号化されていないかのどちらかです。 これは、AES256 アルゴリズムを使用して、ユーザー提供のパスワードを鍵とする対称暗号化を提供します。 コンテンツの暗号化と暗号化解除には、同じパスワードが使用されます。 ansible-vault コマンドは、最初にファイルを暗号化し、次にデータを閲覧、編集、復号化するために使われます。

  • Ansible設定ファイルを作成し、hosts ファイルとvaultパスワードファイルの場所を詳細に記述します。
  • sa-ansible ユーザがVeeamバックアップ・サーバにアクセスするためのパスワードを保持する group_vars/vbr.yml というファイルを作成し、暗号化します。 Veeam バックアップ・サーバーのパスワードがここに含まれている理由は、ansible vbr -m win_ping コマンドを機能させるためです。
  • vault というファイルを作成して暗号化します。このファイルは強化バックアップ・リポジトリーのパスワードと、オプションで vSRX アプライアンスのパスワードを保持します。

vault_pass ファイルを使用することはオプション・タスクです。ボールトに対するパスワードを保持するファイルを作成して保護します。 このタスクを実行しないと、Ansible コマンドの実行時にプロンプトにパスワードを入力する必要があります。

  1. ボールト・パスワードの入力を求めるプロンプトを表示させないためには、以下のコマンドを入力してください。

    touch ~/.vault_pass
    vi ~/.vault_pass
    
  2. ボールト用に使用するパスワードを入力し、ファイルを保存します。

  3. アクセス権を変更して、Ansible ユーザーのみが chmod 600 ~/.vault_pass の読み取りまたは書き込みを行えるようにします。

  4. Ansible 構成ファイルを以下のように作成します。

    cd /swlib/ansible
    touch ansible.cfg
    vi ansible.cfg
    
  5. 次に、ファイル内で以下のテキストを使用します。

    [defaults]
    inventory = /swlib/ansible/hosts
    vault_password_file = ~/.vault_pass
    
  6. Windows® サーバーのパスワードを、暗号化されたファイルに保存する必要があります。 Ansible は、group_vars および host_vars というディレクトリーから変数を含むファイルを自動的に読み取り、それらをファイル名によってグループとホストに関連付けます。 次のコマンドを指定すると、インベントリー・ファイル内の vbr グループ [vbr] に一致する vbr.yml という名前の暗号化ファイルが作成されます。

    mkdir group_vars
    ansible-vault create group_vars/vbr.yml
    
  7. エディターに、パスワードを入力します。

    ansible_password: <password>
    
  8. Esc を押し :wq を入力して終了します。

  9. 必要に応じてファイルを変更する場合は、以下のコマンドを使用します。

    • ansible-vault edit group_vars/vbr.yml - このコマンドはファイルを編集します。
    • ansible-vault decrypt group_vars/vbr.yml -このコマンドは、別のエディター (nano など) を使用して表示または変更できるようにファイルを暗号化解除します。
    • ansible-vault encrypt group_vars/vbr.yml - このコマンドは、ファイルが表示または変更された後に、そのファイルを暗号化します。
  10. 次のコマンドは、vault という名前の暗号化ファイルを作成します: ansible-vault create vault

  11. エディターで以下のコマンドを入力します。ここで、<lhbr_password> および <sa_ansible_password> は計画段階で定義されたパスワードです。

vault_lhbr_password: <lhbr_password>
vault_sa_ansible_password: <sa_ansible_password>
  1. Esc を押し :wq を入力して終了します。

接続のテスト

以下のコマンドを使用して、接続をテストします。

ansible lhbr -m ping
ansible vbr -m win_ping

正常に実行された場合、出力にはコマンドごとに SUCCESS が表示されます。

Ansible NSX-T コレクションのインストール

このステップはオプションであり、Ansible がサンドボックスの構成に使用される場合にのみ必要です。

  1. Ansible ユーザーとして Ansible コントロール・ノードに接続します。

  2. python をインストールします: sudo pip3 install --upgrade pyvmomi pyvim requests

  3. 以下のコマンドを実行して、次のタスクを実行します。

    • ダウンロード用のフォルダーの作成。
    • Git リポジトリーの複製。
    • Ansible コレクションの構築。
    • ローカルに作成されたコレクションのインストール。
    cd /swlib
    mkdir downloads
    cd downloads
    git clone https://github.com/vmware/ansible-for-nsxt.git
    cd ansible-for-nsxt
    ansible-galaxy collection build
    ansible-galaxy collection install vmware-ansible_for_nsxt-1.0.0.tar.gz