Possibile: copia file in base al nome host o al ruolo

Qual è il modo migliore per copiare un file a seconda di un hostname?

Ho bisogno di copiare file con diversi contenuti, ma con lo stesso nome di file a diverse macchine.

  • Possibile: come accedere a hostvars nell'attività?
  • Quale è l'equivalente di Puppet's `unless 'in Ansible?
  • Possibile: come eseguire un host di attività da parte dell'host?
  • Array associativo nel libretto di gioco Ansible
  • Il valore di default varia in base a una condizione
  • Come vedere gli stessi comandi?
  • Ho diversi file:

    file.role1 file.role2 file.role3 

    A seconda del nome di host e / o del ruolo, vorrei copiare file.roleX e rinominarlo nel file

    Grazie.

  • Creazione di un simbolo con un messaggio e di un elenco di variables
  • Come impostare il nome utente / la password predefiniti per la connessione SSH?
  • Come faccio ad aggiungere un utente a più gruppi in Ansible?
  • È ansible / come potrebbe essere incluso file vars da altri file vars?
  • Come posso avere un ciclo annidato con un fileglob pattern?
  • Sono definiti i ruoli dei gestori in ruoli dopo l'integer playbook o il ruolo?
  • One Solution collect form web for “Possibile: copia file in base al nome host o al ruolo”

    Ci sono molti modi per farlo. più semplice:

     - name: Copy file.role1 to host1 copy: src=file.role1 dest=/somewhere/file when: inventory_hostname == "host1" - name: Copy file.role2 to host2 copy: src=file.role2 dest=/somewhere/file when: inventory_hostname == "host2" 

    Alternativa, più compatta:

     - name: Copy file to host copy: src=file.{{ inventory_hostname }} dest=/somewhere/file 

    Oppure, utilizzando un model:

     - name: Copy file to host template: src=file dest=/somewhere/file 

    where il model può essere qualcosa di simile:

     {% if inventory_hostname == "host1" %} {% include "file1" %} {% endif %} ... 

    Se vuoi file diversi in ruoli diversi, perché non semplicemente metti questo:

     - name: Copy file.role1 to file copy: src=file.role1 dest=/somewhere/file 

    in each codice del ruolo?

    Non esiste un modo preferito per farlo – dipende da ciò che stai cercando di realizzare.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.