È possibile integrare Ansible Tower con Cloud Assembly per supportare la gestione della configurazione delle risorse distribuite. Dopo aver configurato l'integrazione, è possibile aggiungere i componenti virtuali di Ansible Tower a distribuzioni nuove o esistenti dall'editor di modelli cloud.

Prerequisiti

  • Concedere agli utenti non amministratori le autorizzazioni appropriate per accedere ad Ansible Tower. Sono disponibili due opzioni che sono compatibili con la maggior parte delle configurazioni. Scegliere quella più appropriata per la propria configurazione.
    • Concedere all'amministratore dell'inventario e all'amministratore dei modelli di processo ruoli a livello di organizzazione.
    • Concedere agli utenti l'autorizzazione di amministratore per un particolare inventario e il ruolo Esegui per tutti i modelli di processo utilizzati per il provisioning.
  • È necessario configurare le credenziali e i modelli appropriati in Ansible Tower per l'utilizzo con le distribuzioni. I modelli possono essere modelli di processo o modelli di workflow. I modelli di processo definiscono l'inventario e il playbook da utilizzare con una distribuzione. Esiste una mappatura 1:1 tra un modello di processo e un playbook. I playbook utilizzano una sintassi simile a YAML per definire le attività associate al modello. Per la maggior parte delle distribuzioni tipiche, utilizzare le credenziali della macchina per l'autenticazione.

    I modelli di workflow consentono agli utenti di creare sequenze composte da una combinazione qualsiasi di modelli di processo, sincronizzazioni di progetti e sincronizzazioni di inventario collegate tra loro in modo che sia possibile eseguirle come singola unità. Il visualizzatore di workflow di Ansible Tower consente agli utenti di progettare modelli di workflow. Per la maggior parte delle distribuzioni tipiche, è possibile utilizzare le credenziali della macchina per l'autenticazione.

    1. Accedere ad Ansible Tower e passare alla sezione Modelli.
    2. Selezionare Aggiunta di un nuovo modello di processo.
      • Selezionare le credenziali già create. Queste sono le credenziali della macchina che deve essere gestita da Ansible Tower. Per ogni modello di processo, può essere presente un solo oggetto credenziali.
      • Per la selezione del limite, selezionare Richiedi all'avvio. In questo modo, il modello di processo viene eseguito in base al nodo sottoposto a provisioning o a deprovisioning da Cloud Assembly. Se questa opzione non è selezionata, viene visualizzato un errore di limite non impostato quando viene distribuito il blueprint che contiene il modello di processo.
    3. Selezionare Aggiunta di un nuovo modello di workflow.
      • Selezionare le credenziali già create e quindi definire l'inventario. Utilizzando il visualizzatore di workflow, progettare il modello di workflow.

      Nella casella Limite dei modelli di processo o workflow è in genere possibile selezionare Richiedi all'avvio. In questo modo, il modello di processo o workflow viene eseguito in base al nodo sottoposto a provisioning o a deprovisioning da Cloud Assembly.

  • È possibile visualizzare l'esecuzione dei modelli di processo o dei modelli di workflow richiamati da Cloud Assembly nella scheda Processi di Ansible Tower.

Procedura

  1. Selezionare Infrastruttura > Connessioni > Integrazioni e fare clic su Aggiungi integrazione.
  2. Fare clic su Ansible Tower.
    Viene visualizzata la pagina di configurazione di Ansible.
  3. Immettere il nome host, che può essere un indirizzo IP e le altre informazioni necessarie per l'istanza di Ansible Tower.
  4. Immettere il nome utente e la password dell'autenticazione basata sull'interfaccia utente per l'istanza di Ansible Tower applicabile.
  5. Fare clic su Convalida per verificare l'integrazione.
  6. Digitare un nome e una descrizione appropriati per l'integrazione.
  7. Fare clic su Aggiungi.

risultati

Ansible Tower è disponibile per l'uso nei modelli cloud.

Operazioni successive

Aggiungere i componenti di Ansible Tower ai modelli cloud desiderati. È necessario specificare il modello di processo applicabile con l'autorizzazione di esecuzione per l'utente specificato nell'account di integrazione.

  1. Nella pagina della tela del modello cloud, selezionare Ansible sotto l'intestazione Gestione configurazione nel menu delle opzioni del blueprint e trascinare il componente di Ansible Tower nella tela.
  2. Utilizzare il pannello a destra per configurare le proprietà di Ansible Tower appropriate, ad esempio i modelli di processo.

Quando si aggiunge un riquadro Ansible Tower a un modello cloud, vRealize Automation crea la voce dell'host per la macchina virtuale collegata in Ansible Tower. Per impostazione predefinita, vRealize Automation utilizza il nome della risorsa della macchina virtuale per creare la voce dell'host, ma è possibile specificare qualsiasi nome utilizzando la proprietà hostName nel codice YAML del blueprint. Per comunicare con la macchina, vRealize Automation creerà la variabile host ansible_host: IP Address per la voce dell'host. È possibile ignorare il comportamento predefinito per configurare la comunicazione utilizzando il nome di dominio completo, specificando la parola chiave ansible_host in hostVariables e fornendo il nome di dominio completo come valore. Il seguente frammento di codice YAML mostra un esempio di come è possibile configurare la comunicazione del nome host e del nome di dominio completo:

Cloud_Ansible_Tower_1:
	type: Cloud Ansible Tower
	properties:
		host: name of host
		account: name of account
		hostName: resource name
		hostVariables:
			ansible_host:Host FQDN
			

In questo esempio si sovrascrive il valore ansible_host predefinito fornendo il nome di dominio completo. Questo può essere utile per gli utenti che desiderano che Ansible Tower si connetta alla macchina host utilizzando il nome di dominio completo.

Il valore predefinito di hostVariables nel codice YAML sarà ansible_host:IP_address e l'indirizzo IP viene utilizzato per comunicare con il server.

Se la proprietà count del codice YAML è maggiore di 1 per Ansible Tower, il nome host può essere mappato a qualsiasi proprietà della rispettiva macchina virtuale. L'esempio seguente mostra la mappatura per una risorsa di una macchina virtuale denominata Ubuntu-VM se si desidera che la relativa proprietà address sia mappata al nome host.

 hostname: '${resource.Ubuntu-VM.address[count.index]}' 

Quando si aggiunge un componente Ansible Tower a un modello cloud, è possibile il modello di processo da richiamare nel codice YAML del modello cloud. È inoltre possibile specificare i modelli di workflow o una combinazione di modelli di processo e modelli di workflow. Se non si specifica il tipo di modello, per impostazione predefinita vRealize Automation presuppone che venga richiamato un modello di processo.

Il seguente frammento di codice YAML illustra un esempio di come è possibile richiamare una combinazione di modelli di processo e workflow in un modello cloud di Ansible Tower.

Cloud_Ansible_1:
type: Cloud.Ansible.Tower
  properties:
    host: ‘${resource.CentOS_Machine.*}’
    account:
    maxConnectionRetries: 2
    maxJobRetries: 2
    templates:
      provision:
        - name: My workflow
          type: workflow
        - name: My job template      

Sono stati aggiunti maxConnectionsRetries e maxJobRetries per gestire gli errori relativi ad Ansible. I modelli cloud accettano il valore personalizzato e, nel caso non venga specificato alcun valore, utilizzano il valore predefinito. Per maxConnectionRetries, il valore predefinito è 10, mentre per maxJobRetries è 3.

Nota: Le versioni precedenti di vRealize Automation supportavano l'esecuzione dei modelli di processo utilizzando solo lo schema jobTemplate nel modello cloud. jobTemplate è ora obsoleto e potrebbe essere rimosso nelle versioni future. Per il momento, l'utilizzo della proprietà jobTemplate continuerà a funzionare come previsto. Per eseguire modelli di workflow e utilizzare le funzionalità aggiuntive, è consigliabile utilizzare lo schema dei modelli.

I modelli cloud di Cloud Assembly per le integrazioni di Ansible Tower includono la proprietà useDefaultLimit con un valore true o false per definire la posizione di esecuzione dei modelli di Ansible. I modelli di Ansible possono essere modelli di processo o modelli di workflow. Se questo valore è impostato su true, i modelli specificati vengono eseguiti per la macchina specificata nella casella Limite della pagina dei modelli di Ansible. Se il valore è impostato su false, i modelli vengono eseguiti per la macchina sottoposta a provisioning, ma gli utenti devono selezionare la casella di controllo Richiedi all'avvio nella pagina dei modelli di Ansible Tower. Per impostazione predefinita, il valore di questa proprietà è false. Il seguente esempio di codice YAML illustra come viene visualizzata la proprietà useDefaultLimit nei modelli cloud.

templates:
  provision:
    - name: ping aws_credentials
      type: job
      useDefaultLimit: false
      extraVars: '{"rubiconSurveyJob" : "checkSurvey"}'

Inoltre, come illustrato nell'esempio precedente, è possibile utilizzare la proprietà extraVars per specificare variabili aggiuntive o variabili di sondaggio. Questa funzionalità può essere utile per l'esecuzione di modelli che richiedono input. Se un utente mantiene la variabile di sondaggio, è necessario passare la variabile nella sezione extraVars del modello cloud per evitare errori.