Cloud Assembly supporta l'integrazione con la gestione della configurazione di Puppet Enterprise.
Quando si aggiunge Puppet Enterprise a Cloud Assembly come sistema esterno, per impostazione predefinita è disponibile in tutti i progetti. È possibile limitarlo a progetti specifici.
Per aggiungere un'integrazione di Puppet Enterprise, è necessario disporre del nome master di Puppet e del nome host o indirizzo IP del master.
I registri di Puppet sono disponibili nella seguente posizione nel caso in cui sia necessario controllarli per errori o a scopo informativo.
Descrizione | Posizione registro |
---|---|
Registro per gli eventi correlati alla creazione e all'installazione | I registri si trovano nella macchina distribuita in `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/`. Per i registri completi, fare riferimento al file log.txt. Per i registri dettagliati dell'agente di Puppet, fare riferimento a https://puppet.com/docs/puppet/4.8/services_agent_unix.html#logging |
Registro per le attività correlate all'esecuzione e all'eliminazione di Puppet | I registri si trovano in PE all'indirizzo `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/`. Per i registri completi, fare riferimento al file log.txt. |
Procedura
risultati
Operazioni successive
Aggiungere i componenti di Puppet ai modelli cloud desiderati.
- In Modelli di cloud in Cloud Assembly, selezionare Puppet sotto l'intestazione Gestione contenuti nel menu Modello cloud e trascinare il componente Puppet nella tela.
- Immettere le proprietà di Puppet nel riquadro a destra.
Proprietà Descrizione Master Immettere il nome della macchina primaria di Puppet utilizzata con questo modello cloud. Ambiente Selezionare l'ambiente per la macchina principale di Puppet. Ruolo Selezionare il ruolo di Puppet da utilizzare con questo modello cloud. Intervallo di esecuzione dell'agente La frequenza con cui si desidera che l'agente Puppet esegua il polling della macchina principale di Puppet affinché i dettagli della configurazione vengano applicati alle macchine virtuali distribuite correlate a questo modello cloud. - Fare clic sulla scheda Codice nel riquadro a destra per visualizzare il codice YAML per le proprietà di configurazione di Puppet.
Quando si aggiunge un componente Puppet a un modello cloud, è possibile aggiungere la proprietà installMaster
al file YAML in modo che punti a un master di installazione Puppet, definito anche come master di compilazione. Il valore di questa proprietà può essere l'indirizzo IP o il nome host del master di compilazione Puppet. L'utilizzo di questa proprietà consente di accedere a funzionalità avanzate per le macchine virtuali Puppet distribuite e inoltre supporta azioni del giorno 2 aggiuntive.
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
In alcuni casi, per impostazione predefinita, vRealize Automation passa alcune informazioni relative alla macchina alle macchine virtuali Puppet come dati. I dati personalizzati non sono supportati per le macchine Windows. Nelle macchine Linux vengono trasmesse alcune informazioni per impostazione predefinita e gli utenti possono passare informazioni aggiuntive utilizzando le proprietà personalizzate.
Esistono alcune limitazioni di ciò che viene passato alle macchine Puppet in Linux. Le proprietà personalizzate nelle risorse host e nell'agente Puppet vengono passate alle macchine virtuali Puppet. Le proprietà personalizzate nelle risorse di rete non vengono passate alla macchina virtuale. Gli elementi passati includono proprietà semplici, proprietà booleane, nonché tipi personalizzati denominati e complessi come le mappe nidificate con array.
L'esempio seguente mostra come è possibile richiamare varie risorse personalizzate su risorse host:
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
Se un comando di rimozione di Puppet causa errori, nella maggior parte dei casi vRealize Automation ignorerà gli errori di rimozione dei nodi e procederà con l'eliminazione del nodo. Anche se non viene trovato un certificato per un nodo specifico, vRealize Automation procederà con l'eliminazione. Se vRealize Automation non è in grado di procedere con l'eliminazione del nodo per un motivo qualsiasi, è possibile fare clic su Elimina nel menu Azioni della pagina Distribuzioni per aprire una finestra di dialogo che consentirà di procedere con l'eliminazione del nodo. Viene eseguito un workflow simile quando si rimuove un'integrazione di Puppet da un modello cloud e quindi si applica il modello alla distribuzione. Questo workflow attiva un'operazione di rimozione del nodo gestita come descritto in precedenza.
L'integrazione con Puppet Enterprise richiede un indirizzo IP pubblico. Se per la macchina Puppet Enterprise non è configurato alcun indirizzo IP pubblico, viene utilizzato l'indirizzo IP della prima scheda NIC.
Se la scheda NIC di una macchina sottoposta a provisioning Puppet eseguita su una macchina vSphere dispone di più indirizzi IP, è possibile utilizzare la proprietà YAML primaryAddress
nei modelli cloud per specificare l'indirizzo IP da utilizzare per le connessioni. Quando la proprietà primaryAddress
è assegnata a una scheda NIC, l'indirizzo IP di tale scheda NIC viene utilizzato da Puppet. È possibile designare una sola scheda NIC come primaria. Vedere il seguente frammento di codice YAML per un esempio di come viene utilizzata la proprietà 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
Se la proprietà primaryAddress
non è impostata per alcuna scheda NIC di una macchina virtuale, la logica dei modelli cloud utilizzerà per impostazione predefinita il comportamento corrente per la selezione dell'indirizzo IP.
- L'utente deve essere abilitato per creare una nuova directory e un nuovo file di dati Puppet:
sudo mkdir -p /etc/puppetlabs/facter/facts.d sudo tee /etc/puppetlabs/facter/facts.d/puppet_cloudassembly_facts.json
- L'utente deve essere abilitato per eseguire Puppet:
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=stopped sudo /opt/puppetlabs/bin/puppet agent --test --color=false --detailed-exitcode
- L'utente deve essere abilitato per eliminare i file CSR (Certificate Signing Request), inclusi csr_attributes.yaml e CSR pem:
sudo rm /etc/puppetlabs/puppet/csr_attributes.yaml sudo rm -f /etc/puppetlabs/puppet/ssl/certificate_requests/*