Ansible Provisioning: Smartere og uanstrengt måte å klargjøre



Denne Ansible Provisioning-bloggen peker på en av de mest nyttige Ansible-funksjonene. Det demonstrerer hvordan du setter opp en LAMP-stabel og er vert for en wensite på Ubuntu.

Det første trinnet i å automatisere en hvilken som helst operativ livssyklus i applikasjonen er å automatisere tilretteleggingen av infrastrukturen. Provisioning er en irriterende prosess med å sette opp konfigurasjoner, tildele minne, diskplass osv. Før du faktisk bruker dem. La oss se hvordan Ansible Provisioning gjør dette enklere og raskere.

De fleste store distribusjoner krever at du har et identisk miljøoppsett på flere systemer.Så hvordan gjør du det? Utføre det samme settet med kommandoer på hundre systemer manuelt ?? Nahh .. Det er for gammel skole. Dette er noe maskiner er gode på, ikke mennesker. Hva om jeg fortalte deg at denne lange og kjedelige prosessen kan gjøres ved å bare utføre en enkelt Ansible-spillbok?Det er det vi skal snakke om i denne bloggen - Ansible Provisioning.





Temaene som dekkes er:

Hvis du ønsker å mestre DevOps, ' kurset bør være ditt valg.



Hva er Ansible?

DevOps er en kultur der automatisering prioriteres veldig høyt. Når det kan være verktøy for å automatisere distribusjonen og testprosessen, hvorfor ikke ha verktøy for konfigurasjonsadministrasjon og klargjøring. Det er en million måter å bli smartere, og bruk av Ansible er en av dem. Det er et av de mest brukte verktøyene.

Ansible bruker YAML-baserte spillbøker som til og med kan forstås av en nybegynner. Den bruker en agentløs arkitektur for å kommunisere med sine klienter som ikke involverer noe tredjepartsverktøy som skal installeres på klientens maskin, og bruker i stedet SSH-baserte tilkoblinger. Ansible er et automatiseringsverktøy, og la oss finne ut hva det kan automatisere.

Hva kan Ansible Automate?

Navngi et trinn i utviklingssyklusen, og Ansible vil hjelpe deg med det, det være seg konfigurasjonsadministrasjon, klargjøring, orkestrering, kontinuerlig levering, sikkerhet eller til og med applikasjonsdistribusjon. Ansible forener arbeidsflyten i utviklingssyklusen til en enkelt agent uten automatiseringsplattform.



  1. Avsetning: Å lage et passende miljø for at applikasjonen / programvaren skal leve er nødvendig. Ansible gir en måte å automatisere miljøet som er opprettet for applikasjonens eksistens.
  2. Konfigurasjonsstyring: Utfør et bredt utvalg av konfigurasjonsoppgaver, for eksempel start / stopp-tjenester, endre konfigurasjonen til et system, enhet eller et program, etc.
  3. Søknad distribusjon: Automatiser definering av distribusjon med Ansible og administrer distribusjonen ved hjelp av Synlig tårn . Dette gjør hele applikasjonssyklusen fra produksjon til distribusjon effektiv og håndterbar.
  4. Kontinuerlig levering: Å lage og administrere en kontinuerlig integrasjons- / kontinuerlig leveringsrørledning kan bli tungvint. Det er her Ansible går inn og gjør utviklernes liv enklere.
  5. Sikkerhet og samsvar: Arbeid med prosjektene setter alltid grenser og er integrert med selskapets sikkerhetspolitikk. Å ha sikkerhetspolicyer integrert automatisk med distribusjonen kan gjøre det enklere å overholde retningslinjene.
  6. Orkestrering: Et helt prosjekt er en samling av mange forskjellige forekomster som har en annen konfigurasjon. Ansible fusjonerer og administrerer disse forskjellige forekomster som en helhet.

Behov for Ansible Provisioning

Som nevnt tidligere, det første trinnet tilautomatisere den operasjonelle livssyklusen til applikasjonenegjør miljøet klart, dvs. klargjøring. Store distribusjoner krever flere verter som har nøyaktig samme konfigurasjoner. Når du har klargjort en vert, hva er sjansene for at du får de neste 10 vertene til å ha nøyaktig samme konfigurasjoner hvis du gjør det manuelt? Også hvor mye tid vil du bruke på å gjøre den samme repetitive oppgaven? Dette er hvor Ansible kommer til vår tjeneste. Du kan sørge for hundrevis av verter bare ved å utføre en enkelt spillbok. Magi? Ha ha! Nei, bare evolusjon innen automatisering.

Demo: Lag en LAMPESTABEL og distribuer en webside

Anta at du prøver å distribuere et nettsted på 30 systemer, hver distribusjon av nettsteder vil kreve et grunnleggende operativsystem, webserver, database og PHP. Vi bruker ansible playbook for å installere disse forutsetningene på alle 30 systemene samtidig.

I denne demonstrasjonen av Ansible-klargjøring skal jeg vise deg hvordan du tilrettelegger webhotellvertmiljøet ved hjelp av Ansible. Vi installerer LAMP (Linux, Apache, MySQL og PHP) -stakken og distribuerer deretter et nettsted.

For denne demoen har jeg brukt en Linux VirtualBox med Ubuntu versjon 17.04. Jeg har brukt to virtuelle maskiner, en som serveren min hvor Ansible er installert, og den andre maskinen fungerer som min eksterne vert. La oss begynne med å sette Ansible på serveren.

Jeg har opprettet en enkel statisk webside som er lagret i en mappe indeks som har to filer, index.html og style.css.

index.html:

  Nettsted som bruker HTML og CSS                Adopter nå        

style.css

* { margin: 0 polstring: 0 } Overskrift { bakgrunnsbilde: lineær gradient (rgba (0,0,0,0.5), rgba (0,0,0,0,5)), url ('puppie.jpg') høyde: 100vh bakgrunnsstørrelse: omslag bakgrunn-posisjon: sentrum } .nav-meny { flyte: høyre liste-stil: ingen margin-top: 30px } .nav-meny li { display: inline-block } .nav-meny li a { farge: turkis tekstdekorasjon: ingen polstring: 5px 20px font-family: 'Verdana', 'sans-serif' skriftstørrelse: 20 px } .homebtn a { kant: 1px solid grå bakgrunnsfarge: hvit } .nav-menu li a: hover { kant: 1px solid grå bakgrunnsfarge: hvit } .tagline { posisjon: absolutt bredde: 1200px margin-venstre: 0 margin-topp: 0 } h1 { farge: hvit skriftstørrelse: 50px font-family: 'Verdana', 'sans-serif' tekstjustering: sentrum margin-top: 275px } .adopter { margin-top: 30px margin-venstre: 540 px } .bttn { kant: 1px solid hvit polstring: 10px 30px farge: gul font-family: 'Verdana', 'sans-serif' skriftstørrelse: 22px tekstdekorasjon: ingen } .adopter a: hover { bakgrunnsfarge: burlywood }

Trinn 1: Utfør følgende kommandoer for å oppdatere repositories, legg til nødvendige repositories og konfigurer PPA på maskinen din for Ansible installasjon:

$ sudo apt-get update $ sudo apt-get install software-egenskaper-vanlig $ sudo apt-add-repository ppa: ansible / ansible

Trykk på Enter for å godta PPA-tillegget, og installer til slutt Ansible etter oppdatering av repositoriene.

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

Steg 2: Gå til serverens / etc / hosts-fil og legg til vertsnavnet og IP-adressen til verten.

etc verter - Ansible provisioning - EdurekaFig. 1 - Legg til eksterne verter til / etc / hosts File - Ansible Provisioning

Trinn 3: Da Ansible jobber med den agentløse arkitekturen for å bruke SSH til å kommunisere med vertene, setter du opp ssh-tastene. I utgangspunktet har vi en server og en vert. Vi kontrollerer verten med serveren vår og lager derfor en offentlig ssh-nøkkel på serveren og kopierer den til vertsmaskinen. Utfør følgende kommando på serveren:

$ ssh-keygen

Du blir bedt om å angi filnavnethvor jegdu vil lagre nøkkelen din og be deg om å opprette et passord for å få tilgang til den genererte nøkkelen, som er valgfri. Som standard blir den offentlige nøkkelen lagret i .ssh / id_rsa.pub-filen, og den private nøkkelen blir lagret i .ssh / id_rsa.

Fig. 2 - Opprett ssh-nøkkel - Ansible Provisioning

Nå må denne genererte nøkkelen være til stede i verten din. Kopiering av nøkkelen til verten kan gjøres på to måter, enten manuelt kopiere til verten eller bruke kommandoen ssh-copy-id. I dette tilfellet skal jeg kopiere den ved hjelp av kommandoen ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Merk- Forsikre deg om at du kan ssh inn i verten din før du utfører denne kommandoen.

Trinn 4: Konfigurer Ansible-verter. Gå til / etc / ansible / hosts-filen og legg til vertsnavnet. Dette vil variere avhengig av antall verter og servere du har. Du kan også ha mer ennen serverher.

hvordan du implementerer hashmap i java

Fig. 3 - Legg til eksterne verter i lagerfilen - Ansvarlig klargjøring

Trinn 5: Sjekk om vertene dine er klare. Utfør denne kommandoen, du skal få en lignende utgang.

$ ansible -m ping all

Fig. 4 - Kontroller statusen til den eksterne verten - Ansible Provisioning

Trinn 6: Nå er Ansible klar, la oss gjøre miljøet klart til å distribuere et nettsted. Vi skal bruke en enkelt Ansible-spillbok for å installere Apache, MySql og PHP. La oss se på det.

Merk: Hvis du er nybegynner, kan du ta en titt på det dette blogg som forklarer hvordan du skriver en lekebok.

--- # Oppsett LAMP Stack - verter: host1 oppgaver: - navn: Legg til ppa repository bli: ja apt_repository: repo = ppa: ondrej / php - navn: Installer lampestabel bli: ja apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql-tilstand: nåværende oppdateringsbuffer: ja - navn: start apache-server blir: ja tjeneste: navn: apache2-tilstand: startet aktivert: ja - navn: start mysql-tjeneste blir: ja tjenester: navn: mysql-tilstand: startet aktivert: ja - navn: opprett målkatalogfil: sti = / var / www / html tilstand = katalogmodus = 0755 - navn: distribuer indeks.html ble: ja kopi: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Her som du kan se har vi 6 oppgaver, hver oppgave utfører en bestemt funksjon.

  • Den første oppgaven legger til depotet som kreves for å installere MySQL og PHP.
  • Den andre oppgaven installerer apache2, MySQL-server, PHP og PHP-MySQL.
  • Den tredje og fjerde oppgaven starter Apache og MySQL-tjenesten.
  • Den femte oppgaven oppretter en målkatalog i vertsmaskinen og
  • Til slutt kjører den sjette oppgaven index.html-filen, den henter filen fra servermaskinen og kopierer den til vertsmaskinen.

Utfør denne spillboken med følgende kommando:

$ ansible-playbook lamp.yml -K

Linjene bli: ja i lekeboken forteller at den må kjøres som root, og når du utfører kommandoen, vil den be om sudo-passord.

Fig. 5 - Utfør Ansible Playbook - Ansible Provisioning

Nå kan du gå inn på vertsmaskinen og sjekke om nettstedet er vert.

Fig. 6 - Vert nettstedet på Localhost - Ansible Provisioning

Nå er det en webside som vil bli distribuert i alle vertene som samhandler med serveren (i vårt tilfelle hadde vi bare en vert), men det samme ville være mulig selv for 100 eksterne verter.

Dette bringer oss til slutten av Ansible Provisioning-bloggen. Hvis du synes denne artikkelen er nyttig, kan du sjekke ut ' tilbudt av Edureka. Den dekker alle verktøyene som har gjort IT-bransjen smartere.

Har du spørsmål til oss? Vennligst legg den ut på og vi kommer tilbake til deg.