Aprovisionament Ansible: forma de proveïment més intel·ligent i senzilla

Aquest bloc Ansible Provisioning assenyala una de les funcions Ansible més útils. Demostra com configurar una pila LAMP i allotjar un lloc web a Ubuntu.

El primer pas per automatitzar qualsevol cicle de vida operatiu de l'aplicació és automatitzar el subministrament de la infraestructura. El subministrament és un molest procés de configuració de configuracions, assignació de memòria, espai al disc, etc., abans d’utilitzar-les realment. Vegem com Ansible Provisioning ho fa més senzill i ràpid.



La majoria dels desplegaments a gran escala requereixen que tingueu una configuració d'entorn idèntica en diversos sistemes.Llavors, com ho fas? Executeu el mateix conjunt d'ordres en un centenar de sistemes manualment ?? Nahh .. És una escola massa antiga. Això és una cosa que les màquines són bones, no els humans. Què passa si us digués que aquest llarg i avorrit procés es podria fer només executant un sol llibre Ansible?D’això parlarem en aquest bloc: Ansible Provisioning.



Els temes tractats són:

cadena fins a la data en Java

Si voleu dominar DevOps, ' per descomptat, hauria de ser la vostra opció preferida.



Què és Ansible?

DevOps és una cultura en què l’automatització té una prioritat real. Quan hi pot haver eines per automatitzar el desplegament i el procés de proves, per què no disposar d'eines per a la gestió de configuracions i el subministrament. Hi ha un milió de maneres de ser més intel·ligents i fer servir Ansible n’és una. És una de les eines més utilitzades.

Ansible utilitza llibres de joc basats en YAML que fins i tot poden ser entesos per un principiant. Utilitza una arquitectura sense agent per comunicar-se amb els seus clients que no implica cap eina de tercers que s’instal·li a la màquina del client i, en canvi, utilitza connexions basades en SSH. Com que Ansible és una eina d'automatització, esbrinem què pot automatitzar.

Què pot automatitzar Ansible?

Anomeneu una etapa del cicle de desenvolupament i Ansible us ajudarà, ja sigui la gestió de configuracions, el subministrament, l'orquestració, el lliurament continu, la seguretat o fins i tot el desplegament d'aplicacions. Ansible uneix el flux de treball del cicle de desenvolupament en una única plataforma sense automatització d’agents.



  1. Aprovisionament: És necessari crear un entorn adequat perquè l’aplicació o el programari es puguin publicar. Ansible proporciona una manera d’automatitzar l’entorn creat per a l’existència de l’aplicació.
  2. Gestió de la configuració: Realitzeu una àmplia varietat de tasques de configuració, com ara serveis d'inici / aturada, canvieu la configuració d'un sistema, dispositiu o aplicació, etc.
  3. Desplegament de l'aplicació: Automatitzeu la definició del desplegament amb Ansible i gestioneu el desplegament mitjançant Torre Ansible . Això fa que tot el cicle de l’aplicació, des de la producció fins al desplegament, sigui eficient i manejable.
  4. Lliurament continu: Crear i gestionar una integració contínua / distribució contínua pot ser molest. Allà és on Ansible intervé i facilita la vida del desenvolupador.
  5. Seguretat i compliment: Treballar amb els projectes sempre marca límits i s’integra amb les polítiques de seguretat de l’empresa. Tenir polítiques de seguretat integrades automàticament amb el desplegament pot facilitar el compliment de les polítiques.
  6. Orquestració: Tot un projecte és una col·lecció de moltes instàncies diferents que tenen una configuració diferent. Ansible combina i gestiona aquestes diferents instàncies en conjunt.

Necessitat d'aprovisionament responsable

Com es va esmentar anteriorment, el primer pas perautomatitzar el cicle de vida operatiu de les aplicacionsestà preparant l’entorn, és a dir, el subministrament. Els desplegaments grans requereixen diversos amfitrions que tinguin exactament les mateixes configuracions. Després de subministrar un amfitrió, quines són les possibilitats que tingueu els 10 amfitrions següents amb les mateixes configuracions exactes si es fan manualment? A més, quant de temps dedicareu a fer la mateixa tasca repetitiva? Aquí és on Ansible acudeix al nostre servei. Podeu subministrar centenars d’amfitrions només executant un únic llibre de reproducció. Màgia? Jaja No, només evolució en automatització.

Demostració: creeu una pila LAMP i desplegueu una pàgina web

Suposem que proveu de desplegar un lloc web en 30 sistemes, per a cada desplegament de lloc web caldrà un sistema operatiu base, un servidor web, una base de dades i PHP. Utilitzem ansible playbook per instal·lar aquests requisits previs als 30 sistemes alhora.

En aquesta demostració de subministrament d'Ansible, us mostraré com subministrar l'entorn d'allotjament del lloc web mitjançant Ansible. Instal·lem la pila LAMP (Linux, Apache, MySQL i PHP) i després implementem un lloc web.

Per a aquesta demostració, he utilitzat un Linux VirtualBox amb Ubuntu versió 17.04. He utilitzat dues màquines virtuals, una com a servidor on s’instal·la Ansible i l’altra màquina fa de host remot. Comencem per configurar Ansible al servidor.

He creat una pàgina web estàtica senzilla desada en una carpeta índex que té dos fitxers, index.html i style.css.

index.html:

  Lloc web mitjançant HTML i CSS                Adopta ara        

estil.css

* { marge: 0 encoixinat: 0 } capçalera { imatge de fons: gradient lineal (rgba (0,0,0,0,5), rgba (0,0,0,0,5)), url ('puppie.jpg') alçada: 100vh mida de fons: portada posició de fons: centre } .nav-menu { flotador: dret estil de llista: cap marge superior: 30 px } .nav-menu li { pantalla: bloc en línia } .nav-menu li a { color: turquesa decoració de text: cap encoixinat: 5 px 20 px font-family: 'Verdana', 'sans-serif' mida de la lletra: 20 px } .homebtn a { vora: 1 px gris sòlid color de fons: blanc } .nav-menu li a: hover { vora: 1 px gris sòlid color de fons: blanc } .tagline { posició: absoluta amplada: 1200 px marge esquerre: 0 marge superior: 0 } h1 { color: blanc mida de la lletra: 50 px font-family: 'Verdana', 'sans-serif' text-align: centre marge superior: 275 px } .adopt { marge superior: 30 px marge esquerre: 540 px } .bttn { vora: 1 px blanc massís encoixinat: 10 px 30 px color: groc font-family: 'Verdana', 'sans-serif' mida de la lletra: 22 px decoració de text: cap } .adopt a: hover { color de fons: burlywood }

Pas 1: Executeu les ordres següents per actualitzar els repositoris, afegir els repositoris necessaris i configurar PPA al vostre equip per a la instal·lació Ansible:

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

Premeu Intro per acceptar l'addició de PPA i, finalment, instal·leu Ansible després d'actualitzar els repositoris.

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

Pas 2: Aneu al fitxer / etc / hosts del vostre servidor i afegiu el nom de l’amfitrió i l’adreça IP de l’amfitrió.

etc hosts - Aprovisionament Ansible - EdurekaFig. 1 - Afegiu hosts remots al fitxer / etc / hosts - Provisió ansible

Pas 3: Mentre Ansible treballa sobre l'arquitectura sense agents d'utilitzar SSH per comunicar-se amb els seus amfitrions, configureu les claus ssh. Bàsicament, tenim un servidor i un amfitrió. Controlem l’amfitrió amb el nostre servidor i, per tant, creem una clau ssh pública al servidor i la copiem a la màquina de l’amfitrió. Executeu l'ordre següent al servidor:

$ ssh-keygen

Se us demanarà que introduïu el nom del fitxerwhere joVoleu desar la vostra clau i també us demanarà que creeu una contrasenya per accedir a la clau generada, que és opcional. Per defecte, la clau pública es desa al fitxer .ssh / id_rsa.pub i la clau privada es guarda a .ssh / id_rsa.

com utilitzar l'àtom per a Python

Fig. 2 - Crea una clau ssh: aprovisionament responsable

Ara cal que aquesta clau generada estigui present al vostre amfitrió. La còpia de la clau a l'amfitrió es pot fer de dues maneres, ja sigui copiant manualment a l'amfitrió o utilitzant l'ordre ssh-copy-id. En aquest cas, el copiaré mitjançant l’ordre ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Nota: assegureu-vos que pugueu introduir ssh al vostre amfitrió abans d'executar aquesta ordre.

Pas 4: Configureu els equips Ansible. Aneu al fitxer / etc / ansible / hosts i afegiu el nom d'amfitrió. Això variarà segons el nombre d'amfitrions i servidors que tingueu. També podeu tenir més deun servidoraquí.

Fig. 3 - Afegiu amfitrions remots al fitxer d'inventari: aprovisionament responsable

Pas 5: Comproveu si els vostres amfitrions estan preparats. Executeu aquesta ordre per obtenir una sortida similar.

$ ansible -m ping tot

Fig. 4: comproveu l’estat de l’amfitrió remot: aprovisionament responsable

Pas 6: Ara el nostre Ansible ja està a punt; preparem l’entorn per desplegar un lloc web. Utilitzarem un sol llibre Ansible per instal·lar Apache, MySql i PHP. Vegem-ho.

Nota: si sou principiant, mireu-ho això bloc que explica com escriure un llibre de jocs.

--- # Configuració de LAMP Stack - hosts: host1 tasques: - nom: Afegiu un repositori ppa convertit: sí apt_repository: repo = ppa: ondrej / php - nom: Instal·leu la pila de làmpada convertit: sí apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-estat mysql: actualització de la memòria cau: sí - nom: inici del servidor apache convertit: sí servei: nom: estat apache2: activat activat: sí - nom: inici del servei mysql convertit: sí serveis: nom: estat mysql: activat activat: sí - nom: crear un fitxer de directori de destinació: ruta = / var / www / html estat = mode de directori = 0755 - nom: desplegar index.html es va convertir: sí copiar: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Aquí, com podeu veure, tenim 6 tasques, cada tasca realitza una funció específica.

  • La primera tasca afegeix el dipòsit necessari per instal·lar MySQL i PHP.
  • La segona tasca instal·la apache2, MySQL-server, PHP i PHP-MySQL.
  • La tercera i quarta tasca inicia el servei Apache i MySQL.
  • La cinquena tasca crea un directori de destinació a la màquina amfitrió i
  • Finalment, la sisena tasca executa el fitxer index.html, recull el fitxer de la màquina servidor i el copia a la màquina host.

Executeu aquest llibre de reproducció amb l'ordre següent:

$ ansible-playbook lamp.yml -K

Les línies esdevenir: sí al llibre de reproducció indica que ha d’executar-se com a root i, per tant, quan executeu l’ordre, us demanarà la contrasenya sudo.

Fig. 5 - Execute Ansible Playbook - Ansible Provisioning

php analitza la cadena a la matriu

Ara podeu entrar a la màquina amfitriona i comprovar si el lloc web ha estat allotjat.

Fig. 6: allotgeu el lloc web a Localhost - Provisioning Ansible

Ara es tracta d’una pàgina web que es desplegaria a tots els hosts que interactuen amb el servidor (en el nostre cas, només en teníem un), però el mateix seria possible fins i tot per a 100 hosts remots.

Això ens porta al final del bloc Ansible Provisioning. Si trobeu útil aquest article, consulteu el ' ofert per Edureka. Cobreix totes les eines que han fet que la indústria de TI sigui més intel·ligent.

Tens alguna pregunta? Envieu-lo a i ens posarem en contacte amb vosaltres.