Ansible è un popolare strumento di automazione utilizzato da amministratori di sistema e sviluppatori per portare i computer in uno stato specifico. I moduli Ansible sono, in un certo senso, ciò che i comandi sono per un computer Linux. Forniscono soluzioni a problemi specifici e un'attività comune durante la manutenzione dei computer è mantenerli aggiornati e coerenti. In questo articolo, ti mostro come installare i pacchetti software con Ansible.
Requisiti
Per eseguire comandi e playbook ad hoc di Ansible sui nodi gestiti, è necessario un utente remoto con accesso SSH su ogni nodo gestito . Per questo esempio, chiamerò quell'utente tux . Tux ha bisogno dell'autorizzazione per eseguire comandi con privilegi elevati per installare i pacchetti. Quindi il file /etc/sudoers.d/tux
con il seguente contenuto deve esistere su tutti i nodi gestiti:
tux ALL=(ALL) NOPASSWD:ALL
Usa visudo
per modificare il /etc/sudoers
voci di file.
Installazione del pacchetto
Supponiamo di aver trovato un nuovo fantastico pacchetto chiamato sysstat
che ora vuoi installare su tutti i tuoi host contemporaneamente. È un lavoro facile per Ansible:
$ ansible all --user tux --become \
--module-name dnf -a’name=sysstat state=latest’
E hai finito.
[ Potrebbe piacerti anche: Come creare un Playbook Ansible ]
Quella riga è chiamata comando ad hoc di Ansible. Di solito si tratta di attività una tantum che non ti aspetti di ripetere. Tuttavia, nell'interesse della riutilizzabilità, è meglio inserire tali istruzioni in un playbook Ansible, come questo:
---
- hosts: all
tasks:
- name: Make sure the current version of ‘sysstat’ is installed.
dnf:
name: sysstat
state: latest
Salva questo playbook in un file chiamato install_packages.yml
, quindi puoi eseguirlo con il seguente comando:
$ ansible-playbook -u tux -b install_packages.yml
Puoi programmarlo con cron
, assicurandoti che il pacchetto desiderato venga installato e reinstallato se qualcuno lo rimuove.
Installa diversi pacchetti
E se volessi installare un elenco di pacchetti su tutti i tuoi host? Anche questo è facile:
---
- hosts: all
tasks:
- name: Package installation
dnf:
name:
- sysstat
- httpd
- mariadb-server
state: latest
Esegui il playbook:
$ ansible-playbook -u tux -b install_packages.yml
Sono sicuro che avrai l'idea. Hai bisogno di più pacchetti? Basta aggiungerli all'elenco.
Concludi
La gestione del software con Ansible è piuttosto semplice. È possibile utilizzare il modulo DNF per gestire l'installazione effettiva e un playbook Ansible basato su YAML per distribuire le istruzioni di installazione ai nodi gestiti. Questo è un altro eccellente esempio di come Ansible semplifichi la vita agli amministratori di sistema che gestiscono molti sistemi.
[ Ottieni questo ebook gratuito:Gestione dei cluster Kubernetes per i manichini. ]