Spesso, a seconda dell’environment in cui ci troviamo e delle restrizioni che dobbiamo affrontare lato sicurezza, dobbiamo effettuare un tuning del nostro inventory file.
Riporto in questo post un po’ di casi diversi che possono essere utili come esempi di configurazione base.
Sono casi molto semplici ma uniti insieme possono essere una visione d’insieme rapida sui parametri disponibili da usare nell’inventory.
Scambio chiavi ssh
Il default user per le connessioni ssh è root. La chiave pubblica dell’utente da cui sto lanciando Ansible è stata inserita in /root/.ssh/authorized_keys di root in ocslave35.
#inventory [nodes] ocslave35 openshift_hostname=ocslave35
ansible nodes -m ping ocslave35 | SUCCESS => { "changed": false, "ping": "pong" }
Autenticazione con password
Definisco la password di root di ocslave35.
#inventory [nodes] ocslave35 openshift_hostname=ocslave35 ansible_ssh_pass=supersecret_password
ansible nodes -m ping ocslave35 | SUCCESS => { "changed": false, "ping": "pong" }
Utilizzo utente operatore con password
Definisco un utente operatore con relativa password.
#inventory [nodes] ocslave35 openshift_hostname=ocslave35 ansible_user=operatore ansible_ssh_pass=foobar.123
[root@ocmaster35 ~]# ansible nodes -m shell -a "whoami" ocslave35 | SUCCESS | rc=0 >> operatore
become_method sudo
L’utente operatore diventa root tramite sudo
[root@ocslave35 ~]# cat /etc/sudoers.d/operatore operatore ALL=(ALL) ALL
#inventory [nodes] ocslave35 openshift_hostname=ocslave35 ansible_user=operatore ansible_ssh_pass=foobar.123 ansible_become_user=root ansible_become=yes ansible_become_method=sudo ansible_become_pass=foobar.123
[root@ocmaster35 ~]# ansible nodes -m shell -a "whoami" ocslave35 | SUCCESS | rc=0 >> root
become_method su
L’utente operatore diventa root tramite il comando su con password definita nell’inventory.
#inventory [nodes] ocslave35 openshift_hostname=ocslave35 ansible_user=operatore ansible_ssh_pass=foobar.123 ansible_become_user=root ansible_become=yes ansible_become_method=su ansible_become_pass=supersecret_password
[root@ocmaster35 ~]# ansible nodes -m shell -a "whoami" ocslave35 | SUCCESS | rc=0 >> root
Accesso locale
Il nodo da cui lanciamo Ansible è lo stesso a cui vogliamo connetterci. Non c’è bisogno di ssh quindi.
[nodes] ocmaster35 ansible_connection=local
ciao!