ansible tutorial installation
Tutorial pratico su Ansible con installazione, utilizzo e configurazione di Ansible con moduli Ansible:
Ne abbiamo discusso AWS Elastic Beanstalk nel nostro precedente tutorial.
ELENCO dei tutorial in questa serie Ansible:
Tutorial n. 1: Installazione e moduli Ansible
Tutorial n. 2: Playbook e Vault Ansible
Tutorial n. 3: Ruoli Ansible e integrazione con Jenkins
Ansible è uno strumento open source che aiuta nell'automazione delle attività, nella distribuzione delle applicazioni, nel provisioning del cloud e nella gestione della configurazione.
Leggi anche => Elenco dei tutorial di formazione DevOps
Quindi stiamo parlando dell'orchestrazione IT in cui le attività vengono eseguite in sequenza su più macchine o server diversi.
Ansible lo fa connettendosi a più macchine tramite SSH ed esegue le attività che sono state configurate in playbook e utilizza un linguaggio semplice chiamato YAML (Yet Another Markup Language) .
Cosa imparerai:
- Panoramica di Ansible
- Processo di installazione Ansible
- Utilizzo ansible
- Moduli Ansible
- Sommario
- Lettura consigliata
Panoramica di Ansible
Ancora più importante, Ansible non utilizza un agente per automatizzare le attività su macchine diverse.
Ansible garantisce il mantenimento di versioni esatte e informazioni aggiornate sui pacchetti software.
Per esempio , se si desidera installare JDK 8 o Tomcat o qualsiasi altro pacchetto software in 10 o 20 macchine diverse, non è effettivamente possibile andare su tutte le macchine e installarle piuttosto utilizzare Ansible per automatizzare l'installazione o anche le distribuzioni software utilizzando Playbook e Inventory scritto in un linguaggio molto semplice.
Quindi Ansible è:
- Gratuito e Open Source
- Mantenuto da Redhat
- Essenzialmente una configurazione del server
- Gestione della configurazione
In questa serie di tutorial Ansible in 3 parti, discuteremo l'approccio pratico sui seguenti argomenti:
- Processo di installazione e configurazione
- Inventario
- Moduli Ansible
- Comandi ad-hoc,
- Automazione delle attività tramite playbook
- Ruoli ansible
- Ansible vault
- Ansible e AWS
Processo di installazione Ansible
Ansible può essere installato ed eseguito da qualsiasi macchina.
In genere avrai bisogno di un file Macchina di controllo per l'installazione che dovrebbe essere Linux. La macchina Windows non supporta l'essere una macchina di controllo. La macchina di controllo gestirà le altre macchine remote. Come accennato in precedenza, Ansible utilizza SSH per gestire le macchine remote.
Durante questo tutorial, userò le istanze di AWS EC2 per mostrare gli esempi. Ho usato 2 istanze (una macchina di controllo e l'altra come destinazione per l'automazione delle attività) e Redhat Linux 7.5.
Che si tratti di istanze on-premise o cloud, sarà necessario aprire le porte in modo appropriato in base alle attività automatizzate. Ho le seguenti porte aperte come parte del gruppo di sicurezza per le istanze EC2 per dimostrare gli esempi menzionati nel tutorial.
scarica mongodb per windows 10 64 bit
Nella schermata sopra, ho menzionato l'apertura della porta 8080 come mostrerò sull'automazione dell'automazione della distribuzione del software utilizzando Tomcat che sarà utile dal punto di vista DevOps, specialmente durante il processo di consegna continua.
Installazione di Ansible utilizzando YUM
Come accennato prima, userò una macchina di controllo e una macchina di destinazione. Per iniziare con l'installazione, eseguire i passaggi come mostrato di seguito in entrambe le macchine.
per) Crea un ID comune su entrambe le macchine, per Esempio , ansible con privilegi SUDO. Questo ID verrà utilizzato per la comunicazione tra tutte le macchine coinvolte per l'automazione delle attività.
# useradd ansible # passwd ansible
b) Modifica il file / etc / ssh / sshd_config file sul macchina di controllo e rimuovere il commento dalle righe per PasswordAuthentication e PermitRootLogin
Eseguire i passaggi precedenti su entrambe le macchine. Una volta completato, riavvia il file sshd servizio su entrambe le macchine.
# systemctl restart sshd
c) Per una completa automazione delle attività, avremo bisogno di un'autenticazione SSH senza password, altrimenti l'intero processo non verrà utilizzato se devi digitare la password ogni volta.
Quindi pubblica le modifiche fatte sopra se eseguiamo il comando ssh e ssh avremo bisogno di digitare la password ogni volta che non è la procedura giusta per eseguire attività Ansible.
d) Per abilitare l'autenticazione senza password eseguire i passaggi indicati di seguito. Innanzitutto aggiungi l'utente ansible al / etc / sudoers file su entrambe le macchine che abiliterà l'utente ansible per eseguire qualsiasi comando che richieda i privilegi di root.
Salva ed esci dal file dopo aver aggiunto l'utente.
e) Andando avanti useremo l'utente ansible per eseguire tutti i passaggi. Quindi passa all'utente ansible.
Macchina di controllo sopportabile AND Macchina di destinazione sopportabile
Macchina di controllo ssh-keygen
Macchina di destinazione ssh-keygen
Copia la chiave ssh sul computer di destinazione e viceversa.
Macchina di controllo ssh-copy-id
Macchina di destinazione ssh-copy-id
il meglio del web oggi archivio
Ora siamo in grado di accedere senza inserire la password. Dopo il check out della connettività ssh su entrambe le macchine ed essere loggato come utente ansible.
Macchina di controllo: ssh ansible @
Macchina di destinazione: ssh ansible @
f) Installa wget se non è installato su entrambe le macchine.
$ sudo yum install wget -y
g) Ora possiamo installare ansible solo sulla macchina di controllo abilitando il repository EPEL da fedora che fornisce pacchetti software aggiuntivi. Eseguire i seguenti passaggi per l'installazione ANSIBILE.
$ wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh epel-release-latest-7.noarch.rpm $ sudo yum install ansible -y $ ansible --version
La versione ansible utilizzata è 2.5.3
h) Modifica il file ansible.cfg file e abilitare il parametro del file di inventario sulla macchina di controllo.
$ sudo vi /etc/ansible/ansible.cfg
io) Ansible utilizza il concetto di inventario per gestire e monitorare le macchine di destinazione. Per impostazione predefinita, questo file si trova in / etc / ansible / hosts e può anche essere modificato. Un file host è costituito da gruppi per una migliore classificazione e più macchine nel gruppo. Tutte le macchine richieste possono essere aggiunte a questi gruppi.
Ogni gruppo è indicato da una parentesi quadra e da un nome di gruppo all'interno. Un server può effettivamente esistere in più gruppi.
Modifica il file di inventario / etc / ansible / hosts e aggiungi tutti i server che devono essere gestiti.
j) Per testare la connettività dei server nel gruppo del server web, esegui il file ping ansible comando come mostrato. Qui ping è un modulo che esegue una particolare funzione per verificare se gli host possono essere collegati come definito nel file di inventario o meno. Vedremo di più sui vari moduli e sui suoi esempi nella prossima sezione.
$ ansible webservers –m ping
Per elencare gli host nel file di inventario, puoi eseguire il comando seguente
$ ansible webservers --list-hosts
Utilizzo ansible
Ansible è costituito da 3 componenti principali
- Macchina di controllo
- Inventario
- Playbook
La macchina di controllo gestisce l'esecuzione del Playbook. Può essere installato sul tuo laptop o su qualsiasi macchina su Internet.
Il file Inventory fornisce un elenco completo di tutte le macchine di destinazione su cui vengono eseguiti i vari moduli eseguendo una connessione ssh e installando il software necessario.
Il playbook è costituito da passaggi che il meccanismo di controllo eseguirà sui server definiti nel file di inventario.
Molto importante da capire qui è che Ansible interagisce con tutti i server definiti nell'inventario tramite il protocollo SSH che è un metodo sicuro di login remoto. Ogni operazione viene eseguita e il trasferimento dei file viene crittografato.
Quindi, come avrai visto nella sezione precedente Ansible non utilizza alcun tipo di database per l'installazione ed è molto facile da installare, procederemo ora con l'utilizzo effettivo di Ansible a partire da Modules che è l'elemento principale.
Moduli Ansible
I moduli sono gli elementi costitutivi principali di Ansible e sono fondamentalmente script riutilizzabili utilizzati dai playbook Ansible. Ansible viene fornito con una serie di moduli riutilizzabili. Questi includono funzionalità per il controllo dei servizi, l'installazione del pacchetto software, l'utilizzo di file e directory, ecc.
La sintassi è la seguente durante l'esecuzione dei comandi ad-hoc che aiutano nell'esecuzione di attività singole o semplici solo una volta e che non devono essere eseguite successivamente. Per Per esempio. semplicemente installando Tomcat su tutti i server.
ansible hostORgroup -m module_name -a 'arguments' -u username --become
Diamo un'occhiata ad alcuni dei moduli Ansible più popolari e al loro utilizzo tramite i comandi ad-hoc e più avanti nel playbook.
# 1) Modulo di configurazione
Per ottenere informazioni sulla rete o sull'hardware o sulla versione del sistema operativo o sulla memoria, il modulo di installazione aiuterà a raccogliere le stesse informazioni sulle macchine di destinazione. Sul controllo, la macchina esegue il comando seguente.
$ ansible webservers –m setup
# 2) Modulo di comando
Il modulo di comando esegue semplicemente un comando specifico sulla macchina di destinazione e fornisce l'output.
Alcuni degli esempi sono forniti di seguito
$ ansible webservers –m command - an ‘uptime’ $ ansible webservers –m command –a ‘hostname’
# 3) Modulo Shell
Per eseguire qualsiasi comando nella shell di tua scelta puoi usare il modulo Shell. I comandi del modulo shell vengono eseguiti in / bin / sh shell e puoi utilizzare operatori come '>' o '|' (simbolo pipe o anche variabili di ambiente.
Quindi principalmente la differenza tra il modulo Shell e Command è che se in realtà non è necessario utilizzare gli operatori come quelli menzionati, è possibile utilizzare il modulo di comando.
$ ansible webservers -m shell -a 'ls -l > temp.txt'
Sulle macchine sotto il gruppo server web, controllare il file creato ed eseguire il comando per visualizzare il file di testo.
$ ansible webservers –m command -a ‘cat temp.txt’
# 4) Modulo utente
Utilizzando questo modulo è possibile creare o eliminare utenti.
Per aggiungere utente
$ ansible webservers -m user -a 'name=user1 password=user1' --become
Per eliminare l'utente
$ ansible webservers -m user -a 'name=user1 state=absent' --become
Opzioni:
- diventare - Privilegio al superutente per eseguire il comando
- stato = assente per eliminare l'utente
# 5) Modulo file
Questo modulo viene utilizzato per creare file, directory, impostare o modificare le autorizzazioni e la proprietà dei file, ecc
Esempio 1: Crea un file
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=touch mode=600 owner=ansible group=ansible'
Esempio 2: Crea una directory
Per creare una directory utilizzando il modulo file, è necessario impostare due parametri.
- Path (alias - name, dest) - Questo è il percorso assoluto della directory da creare.
- Stato: immettere il valore come 'directory'. Per impostazione predefinita, il valore è 'file'.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=directory mode=755'
Esempio 3: Elimina un file
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=absent'
Esempio 4: Elimina una directory
È possibile eliminare una directory impostando il valore del parametro state su assente . La directory e tutto il suo contenuto verranno eliminati.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=absent'
passare un array a un metodo java
# 6) Copia modulo
Viene utilizzato per copiare file su più macchine di destinazione.
$ ansible webservers -m copy -a 'src=sample.txt dest=/home/ansible/sample.txt'
# 7) Gestione dei pacchetti software
Se è necessario installare pacchetti software tramite 'yum' o 'apt', è possibile utilizzare i comandi seguenti.
Esempio 1: Installa GIT
$ ansible webservers –m yum -a “name=git state=present” --become
Nella finestra di destra, puoi vedere se git non è installato darà il comando non trovato e una volta installato mostrerà l'output.
In questo comando, stato = presente controllerà se il pacchetto è installato o meno e se non è installato installerà l'ultima versione.
Esempio 2: Controlla se il pacchetto è installato e aggiornalo alla versione più recente.
$ ansible webservers -m yum -a “name=git state=latest”
Nel comando precedente, stato = più recente aggiornerà il pacchetto solo all'ultima versione.
Esempio 3: Installa Apache Webserver
$ ansible webservers -m yum -a 'name=httpd state=present' –become
Esempio 4: Controlla se Maven è installato o meno.
$ ansible webservers -m yum -a 'name=maven state=absent' –become
# 8) Modulo di gestione dei servizi
Per gestire i servizi con ansible, utilizziamo un modulo 'servizio'.
Avvio di un servizio
$ ansible webservers -m service -a “name=httpd state=started” --become
Interruzione di un servizio
$ ansible webservers -m service -a “name=httpd state=stopped” --become
Riavvio di un servizio
$ ansible webservers -m service -a “name=httpd state=restarted --become
Clic Qui per ottenere l'elenco completo dei moduli.
Sommario
In questo tutorial, ti ho presentato i concetti ei componenti di base di Ansible e abbiamo anche visto di più sull'installazione, la configurazione e l'utilizzo di Ansible con l'aiuto dei moduli Ansible che è il componente principale nell'esecuzione di Ansible.
Nel nostro prossimo tutorial, ci concentreremo sull'aspetto molto importante della scrittura di playbook per l'automazione delle attività e i vault Ansible per mantenere i dati sensibili in file crittografati.
Tutorial PREV | PROSSIMO Tutorial
Lettura consigliata
- Tutorial approfonditi su Eclipse per principianti
- Ruoli Ansible, integrazione con Jenkins in DevOps e moduli EC2
- Automazione delle attività utilizzando Ansible Playbook e Ansible Vault con esempi
- Installazione e configurazione passo passo di Appium Studio
- Introduzione al linguaggio di programmazione Java - Tutorial video
- WebDriver intera configurazione e installazione con Eclipse - Selenium Tutorial # 9
- Download e installazione di Jira con configurazione della licenza Jira
- Introduzione a Python e processo di installazione