Cloud Assembly では、展開の設定とエラーを管理できるよう、Puppet Enterprise、Ansible Open Source、および Ansible Tower との連携がサポートされています。
Puppet との連携
Puppet ベースの構成管理を統合するには、vSphere ワークロードを使用して、パブリック クラウドまたはプライベート クラウドにインストールされている Puppet Enterprise の有効なインスタンスが必要です。この外部システムと Cloud Assembly インスタンス間の接続を確立する必要があります。その後、Puppet 構成管理を、適切なブループリントに追加することによって、Cloud Assembly で使用できるようになります。
Cloud Assembly のブループリント サービスの Puppet プロバイダは、展開されたコンピューティング リソースに Puppet エージェントをインストールし、設定して、実行します。Puppet プロバイダでは、次の前提条件を満たした SSH と WinRM の両方の接続がサポートされます。
- SSH 接続:
- ユーザー名は、スーパー ユーザー、または NOPASSWD でコマンドを実行する sudo 権限を持つユーザーである必要があります。
- 指定したユーザーに対して requiretty を無効にします。
- cURL が展開コンピューティング リソースで使用可能になっている必要があります。
- WinRM 接続:
- PowerShell 2.0 が展開コンピューティング リソースで使用可能になっている必要があります。
- vRealize Orchestrator のドキュメントの説明どおりに、Windows テンプレートを構成します。
Puppet マスターへの接続の管理と、特定の展開への Puppet ロール(設定ルール)の適用は、DevOps 管理者が行います。展開の後、構成管理をサポートするよう設定された仮想マシンを、指定した Puppet マスターに登録します。
仮想マシンが展開されると、ユーザーは外部システムとして Puppet マスターを追加または削除することや、Puppet マスターに割り当てられたプロジェクトを更新することができます。最後に、適切なユーザーは、展開した仮想マシンが使用されなくなったときに、そのマシンを Puppet マスターから登録解除できます。
Ansible Open Source との連携
Ansible 連携を設定する場合は、Ansible Open Source を Ansible のインストール手順に基づいてインストールします。インストールの詳細については Ansible のドキュメントを参照してください。
[defaults] host_key_checking = False localhost_warning = False [paramiko_connection] record_host_keys = False [ssh_connection] #ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s ssh_args = -o UserKnownHostsFile=/dev/null
ホスト キー チェック エラーを回避するには、host_key_checking
および record_host_keys
を False に設定し、ssh_args
で設定される追加オプション UserKnownHostsFile=/dev/null
を追加します。また、インベントリが初期状態で空の場合、ホスト リストが空であることを警告するメッセージが Ansible によって表示されます。これにより、プレイブック構文チェックが失敗します。
Ansible Vault により、パスワードやキーなどの機密情報をプレーンテキストの形式ではなく、暗号化されたファイルに保存することが可能になります。Vault はパスワードで暗号化されています。Cloud Assembly では、Ansible が Vault を使用することでホスト マシンの SSH パスワードなどのデータを暗号化します。これは、Vault パスワードへのパスが設定されていることが前提になります。
ansible.cfg ファイルを変更し、パスワード ファイルの場所を次の形式で指定できます。
vault_password_file = /path to/file.txt
Ansible がパスワードを自動的に検索するように ANSIBLE_VAULT_PASSWORD_FILE
環境変数を設定することもできます。例:ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
Cloud Assembly は、Ansible インベントリ ファイルを管理しているため、Cloud Assembly ユーザーはインベントリ ファイルに rwx アクセスできるようにする必要があります。
cat ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/log.txt
Defaults:myuser !requiretty
myuser ALL=(ALL) NOPASSWD: ALL
Ansible 統合の設定時にエラーなどの問題が発生した場合は、Ansible コントロール マシンの 'cat~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/' にある log.txt ファイルを参照してください。
Ansible Tower の統合
- Red Hat Enterprise Linux 8.0 以降の 64 ビット (x86) 版では、Ansible Tower 3.5 以降のみがサポートされます。
- Red Hat Enterprise Linux 7.4 以降の 64 ビット (x86) 版。
- CentOS 7.4 以降の 64 ビット (x86) 版。
次に、インベントリ ファイルの例を示します。このファイルは、Ansible Tower のインストール時に生成されます。Cloud Assembly 統合で使用する場合は、変更が必要になることがあります。
[root@cava-env8-dev-001359 ansible-tower-setup-bundle-3.5.2-1.el8]# pwd /root/ansible-tower-install/ansible-tower-setup-bundle-3.5.2-1.el8 [root@cava-env8-dev-001359 ansible-tower-setup-bundle-3.5.2-1.el8]# cat inventory [tower] localhost ansible_connection=local [database] [all:vars] admin_password='VMware1!' pg_host='' pg_port='' pg_database='awx' pg_username='awx' pg_password='VMware1!' rabbitmq_port=5672 rabbitmq_vhost=tower rabbitmq_username=tower rabbitmq_password='VMware1!' rabbitmq_cookie=cookiemonster # Needs to be true for fqdns and ip addresses rabbitmq_use_long_name=false # Isolated Tower nodes automatically generate an RSA key for authentication; # To deactivate this behavior, set this value to false # isolated_key_generation=true