Ricerca…


Parametri

Parametro Spiegazione
ansible_connection Tipo di connessione all'host. Questo può essere il nome di uno qualsiasi dei plugin di connessione di ansible. I tipi di protocollo SSH sono smart , ssh o paramiko . L'impostazione predefinita è intelligente. I tipi non basati su SSH sono descritti nella prossima sezione.
ansible_host Il nome dell'host a cui connettersi, se diverso dall'alias che desideri assegnare ad esso.
ansible_port Il numero della porta ssh, se non 22
ansible_user Il nome utente ssh predefinito da usare.
ansible_ssh_pass La password ssh da usare (questo non è sicuro, si consiglia vivamente di utilizzare le --ask-pass o SSH)
ansible_ssh_private_key_file File di chiavi private utilizzato da ssh. Utile se si utilizzano più chiavi e non si desidera utilizzare l'agente SSH.
ansible_ssh_common_args Questa impostazione viene sempre aggiunta alla riga di comando predefinita per sftp , scp e ssh . Utile per configurare un ProxyCommand per un determinato host (o gruppo).
ansible_sftp_extra_args Questa impostazione viene sempre aggiunta alla riga di comando sftp predefinita.
ansible_scp_extra_args Questa impostazione viene sempre aggiunta alla riga di comando scp predefinita.
ansible_ssh_extra_args Questa impostazione viene sempre aggiunta alla riga di comando ssh predefinita.
ansible_ssh_pipelining Determina se utilizzare o meno il pipelining SSH. Questo può scavalcare l'impostazione del pipelining in ansible.cfg .
ansible_become Equivale a ansible_sudo o ansible_su , consente di forzare l'escalation dei privilegi
ansible_become_method Permette di impostare il metodo di escalation dei privilegi
ansible_become_user Equivalente a ansible_sudo_user o ansible_su_user , consente di impostare l'utente che si ansible_su_user attraverso l'escalation dei privilegi
ansible_become_pass Equivalente a ansible_sudo_pass o ansible_su_pass , consente di impostare la password di escalation dei privilegi
ansible_shell_type Il tipo di shell del sistema di destinazione. Non dovresti usare questa impostazione a meno che tu non abbia impostato ansible_shell_executable su una ansible_shell_executable non-Bourne (sh) compatibile. Di default i comandi sono formattati usando la sintassi sh style. Impostando questa csh su csh o fish , i comandi eseguiti sui sistemi di destinazione seguiranno invece la sintassi di tali shell.
ansible_python_interpreter Il percorso Python host di destinazione. Questo è utile per i sistemi con più di un Python o non localizzati in / usr / bin / python come * BSD, o dove / usr / bin / python non è un Python della serie 2.X. Non usiamo il meccanismo / usr / bin / env in quanto richiede che il percorso dell'utente remoto sia impostato correttamente e assume che l'eseguibile python sia chiamato python, dove l'eseguibile potrebbe essere chiamato qualcosa come python2.6 .
ansible _ * _ interprete Funziona con qualsiasi cosa come ruby ​​o perl e funziona proprio come ansible_python_interpreter . Questo sostituisce lo shebang dei moduli che verranno eseguiti su quell'host.
ansible_shell_executable Questo imposta la shell che il controller ansible utilizzerà sulla macchina di destinazione, sovrascrive executable in ansible.cfg che di default in / bin / sh . Dovresti davvero cambiarlo solo se non è possibile usare / bin / sh (cioè / bin / sh non è installato sul computer di destinazione o non può essere eseguito da sudo.). Novità nella versione 2.1.

Inventario con nome utente e password

L'inventario è il modo Ansible per tenere traccia di tutti i sistemi nella tua infrastruttura. Ecco un semplice file di inventario contenente un singolo sistema e le credenziali di accesso per Ansible.

[targethost]
192.168.1.1 ansible_user=mrtuovinen ansible_ssh_pass=PassW0rd

Inventario con chiave privata personalizzata

[targethost]
192.168.1.1 ansible_user=mrtuovinen ssh_private_key_file=~/.ssh/custom_key

Inventario con porta SSH personalizzata

[targethost]
192.168.1.1 ansible_user=mrtuovinen ansible_port=2222

Passa l'inventario statico a un playbook ansible

ansible-playbook -i path/to/static-inventory-file -l myhost myplaybook.yml

Passa l'inventario dinamico a un playbook ansible

ansible-playbook -i path/to/dynamic-inventory-script.py -l myhost myplaybook.yml

Vedi inventario dinamico per maggiori dettagli.

Inventario, gruppo Vars e te

struttura del progetto (best practice ansible).

project/
  group_vars/
     development
  inventory.development
  playbook.yaml

tutto inizia con inventory.development

[development]
dev.fakename.io

[development:vars]
ansible_host: 192.168.0.1
ansible_user: dev
ansible_pass: pass
ansible_port: 2232

[api:children]
development

che ti consente di collegarti a group_vars. Tenere i dati "specifici" per quell'ambiente ...

---
app_name: NewApp_Dev
app_url: https://dev.fakename.io
app_key: f2390f23f01233f23f

che consente di eseguire la seguente playbook CONTRO il file di inventario:

---
- name: Install api.
  hosts: api
  gather_facts: true
  sudo: true
  tags:
    - api
  roles:
    - { role: api,         tags: ["api"]         }

con la seguente retta:

ansible-playbook playbook.yaml -i  inventory.development

File degli host

Il file host viene utilizzato per archiviare le connessioni per i playbook Anisble. Ci sono opzioni per definire i parametri di connessione:

ansible_host è il nome host o l'indirizzo IP

ansible_port è la porta che la macchina utilizza per SSH

ansible_user è l'utente remoto a cui connettere come

ansible_ssh_pass se si utilizza una password per SSH

ansible_ssh_private_key_file se è necessario utilizzare più chiavi specifiche per gli host

Queste sono le opzioni più comunemente usate. Altro può essere trovato nella documentazione ufficiale di Ansible .

Ecco un esempio di file hosts :

# Consolidation of all groups
[hosts:children]
web-servers
offsite
onsite
backup-servers

[web-servers]
server1 ansible_host=192.168.0.1 ansible_port=1600
server2 ansible_host=192.168.0.2 ansible_port=1800

[offsite]
server3 ansible_host=10.160.40.1 ansible_port=22 ansible_user=root
server4 ansible_host=10.160.40.2 ansible_port=4300 ansible_user=root

# You can make groups of groups
[offsite:children]
backup-servers

[onsite]
server5 ansible_host=10.150.70.1 ansible_ssh_pass=password

[backup-servers]
server6 ansible_host=10.160.40.3 ansible_port=77


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow