Provizionare Ansible: Mod mai inteligent și fără efort de aprovizionare



Acest blog Ansible Provisioning indică una dintre cele mai utile caracteristici Ansible. Acesta demonstrează cum să configurați o stivă LAMP și să găzduiți un site web pe Ubuntu.

Primul pas în automatizarea oricărui ciclu de viață operațional al aplicației este automatizarea aprovizionării infrastructurii. Provizionarea este un proces enervant de configurare a configurațiilor, alocarea memoriei, spațiului pe disc etc., înainte de a le utiliza efectiv. Să vedem cum Ansible Provisioning face acest lucru mai simplu și mai rapid.

Majoritatea implementărilor la scară largă necesită să aveți o configurare de mediu identică pe mai multe sisteme.Deci, cum faci asta? Executați același set de comenzi pe o sută de sisteme manual ?? Nahh .. E o școală prea veche. La asta sunt bune mașinile, nu oamenii. Ce se întâmplă dacă ți-aș spune că acest proces lung și plictisitor ar putea fi realizat doar prin executarea unui singur manual Ansible?Despre asta vom vorbi în acest blog - Ansible Provisioning.





Subiectele abordate sunt:

cum se folosește iteratorul în java

Dacă doriți să stăpâniți DevOps, ' Desigur, ar trebui să fie opțiunea dvs. preferată.



Ce este Ansible?

DevOps este o cultură în care automatizarea are o prioritate foarte mare. Când pot exista instrumente pentru automatizarea implementării și a procesului de testare, de ce să nu avem instrumente pentru gestionarea configurației și aprovizionarea. Există un milion de modalități de a deveni mai inteligent și utilizarea Ansible este una dintre ele. Este unul dintre cele mai utilizate instrumente.

Ansible folosește cărți de joc bazate pe YAML, care pot fi chiar înțelese de un începător. Folosește o arhitectură fără agent pentru a comunica cu clienții săi, ceea ce nu implică niciun instrument terță parte care să fie instalat pe computerul clientului și utilizează în schimb conexiuni bazate pe SSH. Ansible fiind un instrument de automatizare, să aflăm ce poate automatiza.

Ce poate Ansible Automate?

Denumiți o etapă din ciclul de dezvoltare și Ansible vă va ajuta cu aceasta, fie că este vorba de gestionarea configurației, aprovizionare, orchestrare, livrare continuă, securitate sau chiar implementarea aplicației. Ansible reunește fluxul de lucru al ciclului de dezvoltare într-o singură platformă de automatizare cu un singur agent.



  1. Provizionare: Este necesară crearea unui mediu adecvat pentru ca aplicația / software-ul să fie live. Ansible oferă o modalitate de automatizare a mediului creat pentru existența aplicației.
  2. Managementul configurației: Efectuați o mare varietate de sarcini de configurare, cum ar fi serviciile de pornire / oprire, schimbarea configurației unui sistem, dispozitiv sau aplicație etc.
  3. Implementarea aplicației: Automatizați definirea implementării cu Ansible și gestionați implementarea folosind Turnul Ansible . Acest lucru face ca întregul ciclu de aplicație de la producție la implementare să fie eficient și ușor de gestionat.
  4. Livrare continua: Crearea și gestionarea unei conducte de integrare continuă / livrare continuă pot deveni greoaie. Acolo intervine Ansible și ușurează viața dezvoltatorului.
  5. Securitate și conformitate: Lucrul cu proiectele stabilește întotdeauna limite și este integrat cu politicile de securitate ale companiei. Integrarea automată a politicilor de securitate cu implementarea poate facilita respectarea politicilor.
  6. Instrumentare: Un întreg proiect este o colecție de instanțe diferite, având o configurație diferită. Ansible fuzionează și gestionează aceste instanțe diferite în ansamblu.

Nevoia de aprovizionare Ansible

După cum sa menționat anterior, primul pas cătreautomatizarea ciclului de viață operațional al aplicațiilorpregătește mediul, adică aprovizionarea. Implementările mari necesită mai multe gazde având exact aceleași configurații. După ce ați furnizat o singură gazdă, care sunt șansele ca următoarele 10 gazde să aibă exact aceleași configurații dacă sunt realizate manual? De asemenea, cât timp veți petrece făcând aceeași sarcină repetitivă? Aici vine Ansible în serviciul nostru. Puteți furniza sute de gazde doar executând un singur playbook. Magie? Haha! Nu, doar evoluție în automatizare.

Demo: creați o stivă LAMP și implementați o pagină web

Să presupunem că încercați să implementați un site web pe 30 de sisteme, fiecare implementare a site-ului web va necesita un sistem de operare de bază, un server web, o bază de date și PHP. Folosim ansible playbook pentru a instala aceste condiții prealabile pe toate cele 30 de sisteme simultan.

În această demonstrație privind provizionarea Ansible, vă voi arăta cum să provocați mediul de găzduire a site-ului web utilizând Ansible. Instalăm stiva LAMP (Linux, Apache, MySQL și PHP) și apoi implementăm un site web.

Pentru această demonstrație, am folosit un Linux VirtualBox cu versiunea Ubuntu 17.04. Am folosit două mașini virtuale, una ca serverul meu unde Ansible este instalat și cealaltă mașină îmi acționează ca gazdă la distanță. Să începem cu setarea Ansible pe server.

Am creat o pagină web statică simplă salvată într-un dosar index care are două fișiere, index.html și style.css.

index.html:

  Site web folosind HTML și CSS                Adoptați acum        

stil.css

* { marja: 0 umplutură: 0 } antet { imagine de fundal: gradient liniar (rgba (0,0,0,0,5), rgba (0,0,0,0,5)), url („puppie.jpg”) înălțime: 100vh fundal-dimensiune: copertă fundal-poziție: centru } .nav-menu { plutitor: dreapta stil listă: nici unul marginea de sus: 30 px } .nav-menu li { afișaj: bloc în linie } .nav-menu li a { culoare: turcoaz text-decor: nici unul umplutură: 5 px 20 px font-family: 'Verdana', 'sans-serif' dimensiunea fontului: 20 px } .homebtn a { chenar: 1px gri solid culoare de fundal: alb } .nav-menu li a: hover { chenar: 1px gri solid culoare de fundal: alb } .tagline { poziție: absolută lățime: 1200 px margine-stânga: 0 marginea-sus: 0 } h1 { culoare albă dimensiunea fontului: 50 px font-family: 'Verdana', 'sans-serif' text-align: centru marginea de sus: 275 px } .adopt { marginea de sus: 30 px margine-stânga: 540 px } .bttn { chenar: 1px alb solid umplutură: 10 px 30 px culoare: galben font-family: 'Verdana', 'sans-serif' dimensiunea fontului: 22 px text-decor: nici unul } .adopt a: hover { culoare de fundal: burlywood }

Pasul 1: Executați următoarele comenzi pentru a actualiza depozitele, adăugați depozitele necesare și configurați PPA pe mașina dvs. pentru instalarea Ansible:

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

Apăsați Enter pentru a accepta adăugarea PPA și apoi instalați Ansible după actualizarea depozitelor.

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

Pasul 2: Accesați fișierul / etc / hosts al serverului dvs. și adăugați numele gazdei și adresa IP a gazdei.

etc hosts - Provizionare Ansible - EdurekaFig. 1 - Adăugați gazde la distanță în fișierul / etc / hosts - Provizionare Ansible

Pasul 3: Pe măsură ce Ansible lucrează la arhitectura fără agent a utilizării SSH pentru a comunica cu gazdele sale, configurați tastele ssh. Practic, avem un server și o gazdă. Controlăm gazda cu serverul nostru și, prin urmare, creăm o cheie ssh publică pe server și o copiem în mașina gazdei. Executați următoarea comandă pe server:

$ ssh-keygen

Vi se va solicita să introduceți numele fișieruluiunde idoriți să vă salvați cheia și, de asemenea, vă solicită să creați o parolă pentru accesarea cheii generate, care este opțională. În mod implicit, cheia publică este salvată în fișierul .ssh / id_rsa.pub, iar cheia privată este salvată în .ssh / id_rsa.

cum se folosește atomul pentru python

Fig. 2 - Creați cheia ssh - Provisioning Ansible

Acum, această cheie generată trebuie să fie prezentă în gazda dvs. Copierea cheii în gazdă se poate face în două moduri, fie copierea manuală în gazdă, fie utilizarea comenzii ssh-copy-id. În acest caz, îl voi copia folosind comanda ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Notă - Asigurați-vă că sunteți capabil să vă conectați la gazdă înainte de a executa această comandă.

Pasul 4: Configurați gazdele Ansible. Accesați fișierul / etc / ansible / hosts și adăugați numele gazdei. Acest lucru va varia în funcție de numărul de gazde și servere pe care le aveți. De asemenea, puteți avea mai mult deun serverAici.

Fig. 3 - Adăugați gazde la distanță în fișierul de inventar - Provizionare Ansible

Pasul 5: Verificați dacă gazdele dvs. sunt gata. Executați această comandă ar trebui să obțineți o ieșire similară.

$ ansible -m ping all

Fig. 4 - Verificați starea gazdei de la distanță - Provizionare răspunzătoare

Pasul 6: Acum Ansible este gata, să pregătim mediul pentru a implementa un site web. Vom folosi un singur manual Ansible pentru a instala Apache, MySql și PHP. Să aruncăm o privire.

Notă: dacă sunteți începător, aruncați o privire acest blog care explică cum să scrii un playbook.

--- # Setup LAMP Stack - hosts: host1 tasks: - nume: Adăugați depozitul ppa devenit: da apt_repository: repo = ppa: ondrej / php - nume: Instalați stiva lampă devenită: da apt: pkg: - apache2 - mysql-server - php7.0 - starea php7.0-mysql: actualizare cache actuală: da - nume: pornește serverul apache devine: da serviciu: nume: stare apache2: începe activat: da - nume: pornește serviciul mysql devine: da servicii: nume: starea mysql: pornit activat: da - nume: creați fișierul director țintă: cale = / var / www / html stare = modul director = 0755 - nume: implementați index.html a devenit: da copiați: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Aici, după cum puteți vedea, avem 6 sarcini, fiecare sarcină îndeplinește o funcție specifică.

  • Prima sarcină adaugă depozitul necesar pentru instalarea MySQL și PHP.
  • A doua sarcină instalează apache2, MySQL-server, PHP și PHP-MySQL.
  • A treia și a patra sarcină pornește serviciul Apache și MySQL.
  • A cincea sarcină creează un director țintă în mașina gazdă și
  • În cele din urmă, a șasea sarcină execută fișierul index.html, preia fișierul de pe computerul server și îl copiază în computerul gazdă.

Executați acest manual cu următoarea comandă:

$ ansible-playbook lamp.yml -K

Liniile devenit: da în playbook spune că trebuie să se execute ca root și, prin urmare, când executați comanda, va solicita parola sudo.

Fig. 5 - Executați Ansible Playbook - Ansible Provisioning

arhitectura mvc în java cu diagramă

Acum puteți accesa mașina gazdă și puteți verifica dacă site-ul web a fost găzduit.

Fig. 6 - Găzduiește site-ul web pe Localhost - Provisioning Ansible

Acum este o pagină web care ar fi implementată în toate gazdele care interacționează cu serverul (în cazul nostru, am avut doar o gazdă), dar același lucru ar fi posibil chiar și pentru 100 de gazde la distanță.

Acest lucru ne aduce la sfârșitul blogului Ansible Provisioning. Dacă vi se pare util acest articol, consultați ' oferit de Edureka. Acoperă toate instrumentele care au făcut industria IT mai inteligentă.

Ai o întrebare pentru noi? Vă rugăm să o postați pe și ne vom întoarce la tine.