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 のドキュメントを参照してください。

Ansible ではデフォルトでホスト キーのチェックが有効になります。ホストを known_hosts ファイル内の別のキーで再インストールすると、エラー メッセージが表示されます。ホストが known_hosts ファイルに含まれていない場合は、起動時にキーを入力する必要があります。 /etc/ansible/ansible.cfg または ~/.ansible.cfg ファイルの次の設定を使用して、ホスト キーの確認を無効にすることができます。
[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 = /パス/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
Cloud Assembly のオープンソース統合で非 root ユーザーを使用する場合、ユーザーには、 Cloud Assembly オープンソース プロバイダが使用するコマンドを実行するための一連の権限が必要です。次のコマンドをユーザーの sudoers ファイルで設定する必要があります。
Defaults:myuser !requiretty
askpass アプリケーションが指定されていない管理者グループにユーザーが属していない場合は、ユーザーの sudoers ファイルで次のコマンドを実行します。
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 disable this behavior, set this value to false
 
# isolated_key_generation=true