Cloud Assembly では、Puppet Enterprise 構成管理との統合がサポートされます。
Puppet Enterprise を外部システムとして Cloud Assembly に追加すると、デフォルトではすべてのプロジェクトで Puppet Enterprise を使用できます。特定のプロジェクトに限定することもできます。
Puppet Enterprise 統合を追加するには、Puppet のマスター名と、マスターのホスト名または IP アドレスが必要です。
エラーまたは情報に関して Puppet ログを確認する必要がある場合は、次の場所を参照してください。
| 説明 | ログの場所 |
|---|---|
| 作成およびインストールに関連するイベントのログ | ログは、展開されたマシンの ` ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/` にあります。 完全なログを確認するには、[log.txt] ファイルを参照してください。詳細な Puppet エージェント ログを確認するには、https://puppet.com/docs/puppet/4.8/services_agent_unix.html#logging を参照してください。 |
| Puppet の削除および実行に関連するタスクのログ | ログは、PE の `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/` にあります。完全なログを確認するには、[log.txt] ファイルを参照してください。 |
手順
結果
次のタスク
目的のクラウド テンプレートに Puppet コンポーネントを追加します。
- Cloud Assembly の [クラウド テンプレート] のクラウド テンプレート メニューで、[構成管理] の見出しの下にある [Puppet] を選択し、Puppet コンポーネントをキャンバスにドラッグします。
- 右側のペインで Puppet のプロパティを入力します。
プロパティ 説明 マスター このクラウド テンプレートで使用される Puppet プライマリ マシンの名前を入力します。 環境 Puppet プライマリ マシンの環境を選択します。 ロール このクラウド テンプレートで使用する Puppet のロールを選択します。 エージェント実行間隔 このクラウド テンプレートに関連する展開済みの仮想マシンに設定の詳細を適用するために、Puppet エージェントが Puppet プライマリ マシンをポーリングする頻度。 - 右側のペインの [コード] タブをクリックすると、Puppet 設定プロパティの YAML コードが表示されます。
Puppet コンポーネントをクラウド テンプレートに追加するときは、installMaster プロパティを YAML ファイルに追加して、Puppet インストール マスター(コンパイル マスターとも呼ばれる)を参照できます。このプロパティの値には、Puppet コンパイル マスターの IP アドレスまたはホスト名を指定できます。このプロパティを使用すると、展開された Puppet 仮想マシンの拡張機能にアクセスできるとともに、追加の Day 2 アクションもサポートされます。
Puppet_Agent:
type: Cloud.Puppet
properties:
account: PEIntegrationAccount
environment: production
role: 'role::linux_webserver'
host: '${CentOS-Puppet.*}'
username: root
password: password123!
installMaster: my-pe-compile-master.example.com
agentConfiguration:
certName: '${CentOS-Puppet.address}'
osType: linux
count: 1
場合によっては、デフォルトで、vRealize Automation から Puppet 仮想マシンに一部のマシン関連情報が実際の情報として渡されることがあります。独自の情報は、Windows マシンではサポートされていません。Linux マシンでは、デフォルトで一部の情報が渡され、ユーザーはカスタム プロパティを使用して追加情報を渡すことができます。
Linux で Puppet マシンに渡される情報には、いくつかの制限があります。ホスト リソースおよび Puppet エージェントに関するカスタム プロパティは、Puppet 仮想マシンに渡されます。ネットワーク リソースに関するカスタム プロパティは、仮想マシンに渡されません。渡されるアイテムには、単純なプロパティやブール値のプロパティのほか、カスタム名のプロパティ、配列を使用してネストされたマップなどの複雑な型のプロパティが含まれます。
次の例は、ホスト リソースに関するさまざまなカスタム リソースを呼び出す方法を示しています。
resources:
Puppet-Host:
type: Cloud.AWS.EC2.Instance
properties:
customer_specified_property_on_ec2_resource: "property"
customer_specified_property_on_network_resource_that_should_also_be_a_fact_and_is_boolean: true
CustomerNameStuff: "zone A"
try_map:
key: value
keytwo: value
nested_array:
- one
- two
- true
try_array:
- one
- two
-three:
inner_key: value
Puppet パージ コマンドでエラーが発生すると、ほとんどの場合、vRealize Automation はノードのパージ エラーを無視し、ノードの削除に進みます。特定のノードの証明書が見つからない場合でも、vRealize Automation は削除に進みます。何らかの理由で vRealize Automation がノードの削除を実行できない場合は、[展開] 画面の [アクション] メニューで [削除] をクリックしてダイアログを開き、ノードの削除を実行できます。クラウド テンプレートから Puppet 統合を削除した後、そのテンプレートを展開に適用すると、同様のワークフローが実行されます。このワークフローでは、前述のように処理されるノードのパージ操作がトリガされます。
Puppet Enterprise との統合には、パブリック IP アドレスが必要です。Puppet Enterprise マシンにパブリック IP アドレスが構成されていない場合は、最初の NIC の IP アドレスが使用されます。
Puppet によってプロビジョニングされ、vSphere マシン上で実行されるマシンの NIC に複数の IP アドレスがある場合は、クラウド テンプレートで primaryAddress YAML プロパティを使用して、接続に使用する IP アドレスを指定できます。NIC に primaryAddress プロパティを割り当てると、その NIC の IP アドレスが Puppet によって使用されます。プライマリとして指定できるのは、1 つの NIC のみです。次の YAML スニペットで、primaryAddress プロパティの使用方法の例を確認してください。
BaseVM:
type: Cloud.vSphere.Machine
properties:
image: photon
count: 2
customizationSpec: Linux
cpuCount: 1
totalMemoryMB: 1024
networks:
- network: '${resource.dev.id}'
deviceIndex: 0
primaryAddress: true
assignment: static
- network: '${resource.prod.id}'
deviceIndex: 1
assignment: static
仮想マシンのいずれの NIC にも primaryAddress プロパティが設定されていない場合、クラウド テンプレートのロジックはデフォルトで、IP アドレス選択の現在の動作に従います。
- 新しい Puppet ファクト ディレクトリおよびファイルを作成する許可をユーザーに与える必要があります。
sudo mkdir -p /etc/puppetlabs/facter/facts.d sudo tee /etc/puppetlabs/facter/facts.d/puppet_cloudassembly_facts.json - Puppet を実行する許可をユーザーに与える必要があります。
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=stopped sudo /opt/puppetlabs/bin/puppet agent --test --color=false --detailed-exitcode - csr_attributes.yaml および CSR pem などの証明書署名リクエスト (CSR) ファイルを削除する許可をユーザーに与える必要があります。
sudo rm /etc/puppetlabs/puppet/csr_attributes.yaml sudo rm -f /etc/puppetlabs/puppet/ssl/certificate_requests/*