Ansible Provisioning: Smartere og ubesværet måde at levere på



Denne Ansible Provisioning-blog påpeger en af ​​de mest nyttige Ansible-funktioner. Det demonstrerer, hvordan man opretter en LAMP-stak og er vært for en wensite på Ubuntu.

Det første trin i automatisering af enhver operationel livscyklus i applikationen er automatisering af tilvejebringelsen af ​​infrastrukturen. Provisioning er en irriterende proces med opsætning af konfigurationer, tildeling af hukommelse, diskplads osv., Før de faktisk bruges. Lad os se, hvordan Ansible Provisioning gør dette enklere og hurtigere.

De fleste af de store implementeringer kræver, at du har en identisk miljøopsætning på flere systemer.Så hvordan gør du det? Udfør det samme sæt kommandoer på hundrede systemer manuelt ?? Nahh .. Det er for gammel skole. Dette er noget, maskiner er gode til, ikke mennesker. Hvad hvis jeg fortalte dig, at denne lange og kedelige proces kunne udføres ved bare at udføre en enkelt Ansible playbook?Det er det, vi skal tale om i denne blog - Ansible Provisioning.





Emnerne er:

Hvis du ønsker at mestre DevOps, ' kursus skal være din go-to-mulighed.



Hvad er Ansible?

DevOps er en kultur, hvor automatisering prioriteres virkelig højt. Når der kan være værktøjer til automatisering af implementeringen og testprocessen, hvorfor ikke have værktøjer til konfigurationsstyring og klargøring. Der er en million måder at blive smartere på, og brug af Ansible er en af ​​dem. Det er et af de mest anvendte værktøjer.

Ansible bruger YAML-baserede playbøger, der endda kan forstås af en nybegynder. Det bruger en agentløs arkitektur til at kommunikere med sine klienter, som ikke involverer noget tredjepartsværktøj, der skal installeres på klientens maskine, og bruger i stedet SSH-baserede forbindelser. Ansible er et automatiseringsværktøj, og lad os finde ud af, hvad det kan automatisere.

Hvad kan Ansible Automate?

Navngiv et trin i udviklingscyklussen, og Ansible hjælper dig med det, det være sig konfigurationsstyring, klargøring, orkestrering, kontinuerlig levering, sikkerhed eller endda applikationsinstallation. Ansible forener arbejdsprocessen i udviklingscyklussen til en enkelt agent uden automatiseringsplatform.



  1. Forsyning: Det er nødvendigt at skabe et passende miljø, hvor applikationen / softwaren kan leve. Ansible giver en måde at automatisere det miljø, der er skabt til applikationens eksistens.
  2. Konfigurationsstyring: Udfør en lang række konfigurationsopgaver, såsom start / stop-tjenester, skift konfiguration af et system, enheden eller en applikation osv.
  3. Applikationsudrulning: Automatiser definitionen af ​​implementering med Ansible, og administrer implementeringen ved hjælp af Synligt tårn . Dette gør hele applikationscyklussen fra produktion til implementering effektiv og håndterbar.
  4. Kontinuerlig levering: Oprettelse og styring af en kontinuerlig integrations- / kontinuerlig leveringsrørledning kan blive besværlig. Det er her, Ansible træder ind og gør udviklerens liv lettere.
  5. Sikkerhed og overholdelse: Arbejdet med projekterne sætter altid grænser og er integreret med virksomhedens sikkerhedspolitikker. At have sikkerhedspolitikker integreret automatisk med implementeringen kan gøre det nemmere at overholde politikker.
  6. Orkestrering: Et helt projekt er en samling af mange forskellige forekomster med en anden konfiguration. Ansible fusionerer og styrer disse forskellige forekomster som en helhed.

Behov for hensigtsmæssig levering

Som nævnt tidligere, det første skridt tilautomatisering af applikationernes operationelle livscyklusgør miljøet klar, dvs. klargøring. Store implementeringer kræver flere værter med nøjagtig de samme konfigurationer. Efter tilvejebringelsen af ​​en vært, hvad er chancerne for, at du får de næste 10 værter til at have nøjagtig de samme konfigurationer, hvis de udføres manuelt? Også hvor meget tid bruger du på at gøre den samme gentagne opgave? Det er her Ansible kommer til vores service. Du kan sørge for hundredvis af værter bare ved at udføre en enkelt playbook. Magi? Haha! Nej, bare evolution inden for automatisering.

Demo: Opret en LAMP-stak og implementer en webside

Antag, at du forsøger at implementere et websted på 30 systemer, hver implementering af et websted kræver et operativsystem, en webserver, en database og PHP. Vi bruger ansible playbook til at installere disse forudsætninger på alle 30 systemer på én gang.

I denne Ansible provisioning-demo vil jeg vise dig, hvordan du tilvejebringer webhostingmiljøet ved hjælp af Ansible. Vi installerer stakken LAMP (Linux, Apache, MySQL og PHP) og distribuerer derefter et websted.

Til denne demo har jeg brugt en Linux VirtualBox med Ubuntu version 17.04. Jeg har brugt to virtuelle maskiner, den ene som min server, hvor Ansible er installeret, og den anden maskine fungerer som min fjernhost. Lad os starte med at indstille Ansible på serveren.

Jeg har oprettet en simpel statisk webside gemt i en mappe indeks som har to filer, index.html og style.css.

index.html:

  Hjemmeside ved hjælp af HTML og CSS                Vedtag nu        

style.css

* { margen: 0 polstring: 0 } header { baggrundsbillede: lineær gradient (rgba (0,0,0,0.5), rgba (0,0,0,0.5)), url ('puppie.jpg') højde: 100vh baggrundsstørrelse: dækning baggrund-position: center } .nav-menu { flyde: højre liste-stil: ingen margin-top: 30 px } .nav-menu li { display: inline-blok } .nav-menu li a { farve: turkis tekst-dekoration: ingen polstring: 5px 20px font-familie: 'Verdana', 'sans-serif' skriftstørrelse: 20 px } .homebtn a { kant: 1 pixel grå baggrundsfarve: hvid } .nav-menu li a: svæver { kant: 1 pixel grå baggrundsfarve: hvid } .tagline { position: absolut bredde: 1200 px margin-venstre: 0 margin-top: 0 } h1 { farve: hvid skriftstørrelse: 50 px font-familie: 'Verdana', 'sans-serif' tekstjustering: center margin-top: 275 px } . vedtage { margin-top: 30 px margen til venstre: 540 px } .bttn { kant: 1 px solid hvid polstring: 10px 30px farve: gul font-familie: 'Verdana', 'sans-serif' skriftstørrelse: 22 px tekst-dekoration: ingen } . vedtage en: svæve { baggrundsfarve: burlywood }

Trin 1: Udfør følgende kommandoer for at opdatere repositories, tilføje de nødvendige repositories og konfigurere PPA på din maskine til Ansible installation:

$ sudo apt-get opdatering $ sudo apt-get install software-egenskaber-fælles $ sudo apt-add-repository ppa: ansible / ansible

Tryk på Enter for at acceptere PPA-tilføjelsen, og installer endelig Ansible efter opdatering af arkiverne.

hvad er en blockchain-udvikler
$ sudo apt-get opdatering $ sudo apt-get install ansible

Trin 2: Gå til din servers / etc / hosts-fil, og tilføj værtsnavnet og IP-adressen til værten.

etc værter - Ansible provisioning - EdurekaFig. 1 - Føj eksterne værter til / etc / hosts File - Ansible Provisioning

Trin 3: Da Ansible arbejder på den agentløse arkitektur ved at bruge SSH til at kommunikere med sine værter, skal du opsætte ssh-tasterne. Dybest set har vi en server og en vært. Vi styrer værten med vores server, og derfor opretter vi en offentlig ssh-nøgle på serveren og kopierer den på værtsmaskinen. Udfør følgende kommando på serveren:

$ ssh-keygen

Du bliver bedt om at indtaste filnavnethvor jegdu vil gerne gemme din nøgle og også bede dig om at oprette en adgangskode for at få adgang til den genererede nøgle, som er valgfri. Som standard gemmes den offentlige nøgle i .ssh / id_rsa.pub-filen, og den private nøgle gemmes i .ssh / id_rsa.

Fig. 2 - Opret ssh-nøgle - Ansible klargøring

Nu skal denne genererede nøgle være til stede i din vært. Kopiering af nøglen til værten kan udføres på to måder, enten manuelt kopiere til værten eller bruge kommandoen ssh-copy-id. I dette tilfælde vil jeg kopiere det ved hjælp af kommandoen ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Bemærk- Sørg for, at du er i stand til at ssh ind i din vært, før du udfører denne kommando.

Trin 4: Konfigurer Ansible-værter. Gå til / etc / ansible / hosts-filen, og tilføj værtsnavnet. Dette vil variere alt efter antallet af værter og servere, du har. Du kan også have mere enden serverher.

Fig. 3 - Tilføj fjernværter i lagerfilen - Ansvarlig klargøring

Trin 5: Kontroller, om dine værter er klar. Udfør denne kommando, du skal få en lignende output.

$ ansible -m ping alle

Fig. 4 - Kontroller fjernhostens status - Ansible provisioning

Trin 6: Nu er vores Ansible klar, lad os gøre miljøet klar til at implementere et websted. Vi skal bruge en enkelt Ansible-playbog til at installere Apache, MySql og PHP. Lad os se på det.

Bemærk: Hvis du er nybegynder, skal du kigge på det dette blog, der forklarer, hvordan man skriver en playbook.

--- # Opsæt LAMP Stack - værter: host1 opgaver: - navn: Tilføj ppa-lager bliver: ja apt_repository: repo = ppa: ondrej / php - navn: Installer lampestak bliver: ja apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql-tilstand: nuværende opdateringscache: ja - navn: start apache-server bliver: ja service: navn: apache2-tilstand: startet aktiveret: ja - navn: start mysql-tjeneste bliver: ja tjenester: navn: mysql-tilstand: startet aktiveret: ja - navn: opret målkatalogfil: sti = / var / www / html-tilstand = katalogtilstand = 0755 - navn: implementer index.html blev: ja kopi: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Her som du kan se, har vi 6 opgaver, hver opgave udfører en bestemt funktion.

  • Den første opgave tilføjer det arkiv, der kræves for at installere MySQL og PHP.
  • Den anden opgave installerer apache2, MySQL-server, PHP og PHP-MySQL.
  • Den tredje og fjerde opgave starter Apache og MySQL-tjenesten.
  • Den femte opgave opretter en målkatalog i værtsmaskinen og
  • Endelig udfører den sjette opgave index.html-filen, den henter filen fra servermaskinen og kopierer den til værtsmaskinen.

Udfør denne playbook med følgende kommando:

$ ansible-playbook lamp.yml -K

Linjerne blive: ja i playbook fortæller, at det skal udføres som root, og når du udfører kommandoen, vil den bede om sudo-adgangskode.

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

Nu kan du gå ind på værtsmaskinen og kontrollere, om hjemmesiden er vært.

Fig. 6 - vært for webstedet på Localhost - Ansible Provisioning

Nu er det en webside, der ville blive implementeret i alle værter, der interagerer med serveren (i vores tilfælde havde vi kun en vært), men det samme ville være muligt selv for 100 fjernværter.

Dette bringer os til slutningen af ​​Ansible Provisioning-bloggen. Hvis du finder denne artikel nyttig, skal du tjekke ' tilbudt af Edureka. Det dækker alle de værktøjer, der har gjort it-branchen smartere.

Har du et spørgsmål til os? Send det venligst på og vi vender tilbage til dig.

til strengmetode i java