Ansible Provisioning: modalità di provisioning più intelligente e semplice



Questo blog Ansible Provisioning evidenzia una delle funzionalità Ansible più utili. Dimostra come configurare uno stack LAMP e ospitare un wensite su Ubuntu.

Il primo passo per automatizzare qualsiasi ciclo di vita operativo dell'applicazione è automatizzare il provisioning dell'infrastruttura. Il provisioning è un fastidioso processo di impostazione delle configurazioni, allocazione di memoria, spazio su disco, ecc. Prima di utilizzarli effettivamente. Vediamo come Ansible Provisioning lo rende più semplice e veloce.

come usare i poteri in java

La maggior parte delle distribuzioni su larga scala richiedono la configurazione di un ambiente identico su più sistemi.Allora, come lo fai? Eseguire manualmente lo stesso insieme di comandi su un centinaio di sistemi ?? Nahh .. È troppo vecchia scuola. Questo è qualcosa in cui le macchine sono brave, non gli umani. E se ti dicessi che questo processo lungo e noioso potrebbe essere fatto semplicemente eseguendo un singolo playbook Ansible?Questo è ciò di cui parleremo in questo blog: Ansible Provisioning.





Gli argomenti trattati sono:

Se desideri padroneggiare DevOps, ' Ovviamente dovrebbe essere la tua opzione preferita.



Cos'è Ansible?

DevOps è una cultura in cui all'automazione viene data una priorità davvero elevata. Quando possono essere disponibili strumenti per automatizzare la distribuzione e il processo di test, perché non disporre di strumenti per la gestione della configurazione e il provisioning. Esistono milioni di modi per diventare più intelligenti e l'utilizzo di Ansible è uno di questi. È uno degli strumenti più utilizzati.

Ansible utilizza playbook basati su YAML che possono essere compresi anche da un principiante. Utilizza un'architettura senza agenti per comunicare con i suoi client che non implica l'installazione di strumenti di terze parti sulla macchina del client e utilizza invece connessioni basate su SSH. Essendo Ansible uno strumento di automazione, scopriamo cosa può automatizzare.

Cosa può automatizzare Ansible?

Assegna un nome a una fase del ciclo di sviluppo e Ansible ti aiuterà con esso, che si tratti di gestione della configurazione, provisioning, orchestrazione, distribuzione continua, sicurezza o persino distribuzione di applicazioni. Ansible unisce il flusso di lavoro del ciclo di sviluppo in un'unica piattaforma di automazione senza agente.



  1. Approvvigionamento: È necessario creare un ambiente adatto per l'applicazione / software da vivere. Ansible fornisce un modo per automatizzare l'ambiente creato per l'esistenza dell'applicazione.
  2. Gestione della configurazione: Eseguire un'ampia varietà di attività di configurazione, come avviare / arrestare servizi, modificare la configurazione di un sistema, dispositivo o applicazione, ecc.
  3. Distribuzione dell'applicazione: Automatizza la definizione della distribuzione con Ansible e gestisci la distribuzione utilizzando Torre Ansible . Ciò rende l'intero ciclo dell'applicazione, dalla produzione alla distribuzione, efficiente e gestibile.
  4. Consegna continua: La creazione e la gestione di una pipeline di integrazione continua / distribuzione continua può diventare complicata. È qui che entra in gioco Ansible e semplifica la vita dello sviluppatore.
  5. Sicurezza e conformità: Lavorare con i progetti, definisce sempre i confini ed è integrato con le politiche di sicurezza dell'azienda. L'integrazione automatica delle policy di sicurezza con la distribuzione può semplificare la conformità alle policy.
  6. Orchestrazione: Un intero progetto è una raccolta di molte istanze diverse con una configurazione diversa. Ansible unisce e gestisce queste diverse istanze nel loro insieme.

Necessità di Ansible Provisioning

Come accennato in precedenza, il primo passo perautomatizzando il ciclo di vita operativo delle applicazionista preparando l'ambiente, ovvero il provisioning. Le distribuzioni di grandi dimensioni richiedono più host con le stesse identiche configurazioni. Dopo aver eseguito il provisioning di un host, quali sono le possibilità che i successivi 10 host abbiano le stesse identiche configurazioni se eseguiti manualmente? Inoltre, quanto tempo impiegherai a svolgere lo stesso compito ripetitivo? È qui che Ansible arriva al nostro servizio. Puoi eseguire il provisioning di centinaia di host semplicemente eseguendo un singolo playbook. Magia? Haha! No, solo evoluzione nell'automazione.

Demo: crea uno stack LAMP e distribuisci una pagina web

Supponiamo che tu stia tentando di distribuire un sito web su 30 sistemi, ogni distribuzione del sito web richiederà un sistema operativo di base, un server web, un database e PHP. Usiamo ansible playbook per installare questi prerequisiti su tutti i 30 sistemi contemporaneamente.

In questa demo del provisioning di Ansible, ti mostrerò come eseguire il provisioning dell'ambiente di hosting del sito web utilizzando Ansible. Installiamo lo stack LAMP (Linux, Apache, MySQL e PHP) e quindi distribuiamo un sito Web.

Per questa demo, ho utilizzato un VirtualBox di Linux con Ubuntu versione 17.04. Ho utilizzato due macchine virtuali, una come server in cui è installato Ansible e l'altra macchina funge da host remoto. Cominciamo con l'impostazione di Ansible sul server.

Ho creato una semplice pagina web statica salvata in una cartella indice che ha due file, index.html e style.css.

index.html:

  Sito web che utilizza HTML e CSS                Adotta ora        

style.css

* { margine: 0 imbottitura: 0 } intestazione { immagine di sfondo: gradiente lineare (rgba (0,0,0,0.5), rgba (0,0,0,0.5)), url ('puppie.jpg') altezza: 100vh dimensione dello sfondo: copertina background-position: center } .nav-menu { galleggiante: a destra stile elenco: nessuno margin-top: 30px } .nav-menu li { display: blocco in linea } .nav-menu li a { colore: turchese text-decoration: nessuno imbottitura: 5px 20px famiglia di caratteri: 'Verdana', 'sans-serif' dimensione del carattere: 20 px } .homebtn a { bordo: 1px grigio solido colore di sfondo: bianco } .nav-menu li a: hover { bordo: 1px grigio solido colore di sfondo: bianco } .tagline { posizione: assoluta larghezza: 1200 px margine sinistro: 0 margin-top: 0 } h1 { colore bianco dimensione del carattere: 50 px famiglia di caratteri: 'Verdana', 'sans-serif' text-align: center margin-top: 275 px } .adopt { margin-top: 30px margine sinistro: 540 px } .bttn { bordo: 1px bianco pieno imbottitura: 10px 30px colore: giallo famiglia di caratteri: 'Verdana', 'sans-serif' dimensione del carattere: 22px text-decoration: nessuno } .adopt a: hover { colore di sfondo: burlywood }

Passo 1: Esegui i seguenti comandi per aggiornare i repository, aggiungere i repository richiesti e configurare PPA sulla tua macchina per l'installazione di Ansible:

$ sudo apt-get update $ sudo apt-get install software-proprietà-common $ sudo apt-add-repository ppa: ansible / ansible

Premere Invio per accettare l'aggiunta PPA e quindi installare finalmente Ansible dopo aver aggiornato i repository.

$ sudo apt-get update $ sudo apt-get install ansible

Passo 2: Vai al file / etc / hosts del tuo server e aggiungi il nome host e l'indirizzo IP dell'host.

etc hosts - Ansible provisioning - EdurekaFig.1 - Aggiungi host remoti al file / etc / hosts - Ansible Provisioning

Passaggio 3: Poiché Ansible lavora sull'architettura senza agenti che utilizza SSH per comunicare con i suoi host, configura le chiavi ssh. Fondamentalmente, abbiamo un server e un host. Controlliamo l'host con il nostro server e quindi creiamo una chiave ssh pubblica sul server e la copiamo nella macchina dell'host. Esegui il seguente comando sul server:

$ ssh-keygen

Ti verrà chiesto di inserire il nome del filedove ioVorresti salvare la tua chiave e anche chiederti di creare una password per accedere alla chiave generata che è facoltativa. Per impostazione predefinita, la chiave pubblica viene salvata nel file .ssh / id_rsa.pub e la chiave privata viene salvata in .ssh / id_rsa.

Fig. 2 - Crea chiave ssh - Provisioning Ansible

Ora questa chiave generata deve essere presente nel tuo host. La copia della chiave nell'host può essere eseguita in due modi, copiando manualmente nell'host o utilizzando il comando ssh-copy-id. In questo caso, lo copierò utilizzando il comando ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Nota: assicurati di essere in grado di accedere al tuo host prima di eseguire questo comando.

Passaggio 4: Configura host Ansible. Vai al file / etc / ansible / hosts e aggiungi il nome host. Ciò varierà in base al numero di host e server di cui disponi. Puoi anche avere più diun serverQui.

Fig. 3 - Aggiungi host remoti nel file inventario - Ansible Provisioning

Passaggio 5: Controlla se i tuoi host sono pronti. Esegui questo comando dovresti ottenere un output simile.

$ ansible -m ping tutto

Fig. 4 - Verifica dello stato dell'host remoto - Provisioning Ansible

Passaggio 6: Ora il nostro Ansible è pronto, rendiamo l'ambiente pronto per distribuire un sito web. Utilizzeremo un unico playbook Ansible per installare Apache, MySql e PHP. Diamo un'occhiata.

Nota: se sei un principiante, dai un'occhiata a Questo blog che spiega come scrivere un playbook.

--- # Setup LAMP Stack - hosts: host1 task: - name: Aggiungi repository ppa diventa: yes apt_repository: repo = ppa: ondrej / php - name: Install lamp stack diventa: yes apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql stato: presente aggiornamento cache: sì - nome: avvia server apache diventa: sì servizio: nome: apache2 stato: avviato abilitato: sì - nome: avvia servizio mysql diventa: sì servizi: nome: stato mysql: avviato abilitato: sì - nome: crea il file della directory di destinazione: percorso = / var / www / html state = modalità directory = 0755 - nome: deploy index.html è diventato: sì copia: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Come puoi vedere, abbiamo 6 attività, ogni attività svolge una funzione specifica.

  • La prima attività aggiunge il repository necessario per installare MySQL e PHP.
  • La seconda attività installa apache2, server MySQL, PHP e PHP-MySQL.
  • La terza e la quarta attività avvia il servizio Apache e MySQL.
  • La quinta attività crea una directory di destinazione nella macchina host e
  • Infine, la sesta attività esegue il file index.html, preleva il file dalla macchina server e lo copia nella macchina host.

Esegui questo playbook con il seguente comando:

$ ansible-playbook lamp.yml -K

Le linee diventare: sì nel playbook dice che deve essere eseguito come root e quindi quando esegui il comando, ti verrà richiesta la password sudo.

Fig.5 - Esegui Ansible Playbook - Ansible Provisioning

Ora puoi accedere alla macchina host e verificare se il sito Web è stato ospitato.

Fig.6 - Ospitare il sito Web su Localhost - Ansible Provisioning

Questa è una pagina web che verrebbe distribuita in tutti gli host che interagiscono con il server (nel nostro caso, avevamo un solo host) ma lo stesso sarebbe possibile anche per 100 host remoti.

Questo ci porta alla fine del blog Ansible Provisioning. Se trovi utile questo articolo, controlla il ' offerto da Edureka. Copre tutti gli strumenti che hanno reso il settore IT più intelligente.

Hai domande per noi? Per favore pubblicalo su e ti risponderemo.