ansible
Inventario
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