Ansible Provisioning: smartare och enklare sätt att tillhandahålla



Den här Ansible Provisioning-bloggen pekar på en av de mest användbara Ansible-funktionerna. Det visar hur man ställer in en LAMP-stack och är värd för en wensite på Ubuntu.

Det första steget i att automatisera applikationens livscykel är att automatisera tillhandahållandet av infrastrukturen. Provisioning är en irriterande process för att ställa in konfigurationer, fördela minne, diskutrymme etc. innan du använder dem. Låt oss se hur Ansible Provisioning gör det enklare och snabbare.

De flesta storskaliga implementeringar kräver att du har en identisk miljöinstallation på flera system.Så, hur gör du det? Kör samma uppsättning kommandon på hundra system manuellt ?? Nahh .. Det är för gammal skola. Det här är något maskiner är bra på, inte människor. Vad händer om jag sa till dig att den här långa och tråkiga processen kan göras genom att bara köra en enda Ansible-spelbok?Det är vad vi ska prata om i den här bloggen - Ansible Provisioning.





Ämnen som behandlas är:

komma igång med visuell studio

Om du vill behärska DevOps, ' kursen bör vara ditt alternativ.



Vad är Ansible?

DevOps är en kultur där automatisering prioriteras väldigt högt. När det kan finnas verktyg för att automatisera distributionen och testprocessen, varför inte ha verktyg för konfigurationshantering och provisionering. Det finns en miljon sätt att bli smartare och att använda Ansible är ett av dem. Det är ett av de mest använda verktygen.

Ansible använder YAML-baserade spelböcker som till och med kan förstås av en nybörjare. Den använder en agentlös arkitektur för att kommunicera med sina klienter, vilket inte involverar något verktyg från tredje part som ska installeras på klientens maskin, utan använder SSH-baserade anslutningar. Ansible är ett automatiseringsverktyg, låt oss ta reda på vad det kan automatisera.

Vad kan Ansible Automate?

Namnge ett steg i utvecklingscykeln och Ansible hjälper dig med det, vare sig det är konfigurationshantering, provisionering, orkestrering, kontinuerlig leverans, säkerhet eller till och med applikationsdistribution. Ansible förenar utvecklingscykelns arbetsflöde till en enda agent utan automatiseringsplattform.



  1. Provisionering: Det är nödvändigt att skapa en lämplig miljö för att applikationen / programvaran ska leva. Ansible ger ett sätt att automatisera miljön som skapats för applikationens existens.
  2. Konfigurationshantering: Utför en mängd olika konfigurationsuppgifter, till exempel start / stopp-tjänster, ändra konfigurationen för ett system, en enhet eller ett program etc.
  3. Applikationsdistribution: Automatisera definitionen av distribution med Ansible och hantera distributionen med Ansible tower . Detta gör hela applikationscykeln från produktion till distribution effektiv och hanterbar.
  4. Kontinuerlig leverans: Att skapa och hantera en kontinuerlig integrations- / kontinuerlig leveransrörledning kan bli besvärligt. Det är där Ansible går in och gör utvecklarens liv enklare.
  5. Säkerhet och efterlevnad: Att arbeta med projekten sätter alltid gränser och är integrerat med företagets säkerhetspolicy. Att ha säkerhetspolicyer integrerade automatiskt med distributionen kan göra det enklare att följa policyn.
  6. Orkestrering: Ett helt projekt är en samling av många olika instanser med en annan konfiguration. Ansible slår samman och hanterar dessa olika instanser som helhet.

Behov av Ansible Provisioning

Som nämnts tidigare, det första steget tillautomatisera applikationernas livscykelgör miljön redo, dvs avsättning. Stora distributioner kräver flera värdar med exakt samma konfigurationer. När du har tillhandahållit en värd, vilka är chansen att du får de nästa 10 värdarna att ha exakt samma konfigurationer om du gör det manuellt? Hur mycket tid kommer du också att göra på samma upprepade uppgift? Det är här Ansible kommer till vår tjänst. Du kan tillhandahålla hundratals värdar bara genom att köra en enda spelbok. Magi? Haha! Nej, bara utveckling inom automatisering.

Demo: Skapa en LAMP Stack och distribuera en webbsida

Antag att du försöker distribuera en webbplats på 30 system, varje webbplatsdistribution kräver ett grundläggande operativsystem, webbserver, databas och PHP. Vi använder ansible playbook för att installera dessa förutsättningar på alla 30 systemen samtidigt.

I den här Ansible provisioning-demonstrationen ska jag visa dig hur du tillhandahåller webbhotellmiljön med Ansible. Vi installerar stacken LAMP (Linux, Apache, MySQL och PHP) och distribuerar sedan en webbplats.

För denna demo har jag använt en Linux VirtualBox med Ubuntu version 17.04. Jag har använt två virtuella maskiner, en som min server där Ansible är installerad och den andra fungerar som min fjärrvärd. Låt oss börja med att ställa in Ansible på servern.

Jag har skapat en enkel statisk webbsida som sparats i en mapp index som har två filer, index.html och style.css.

index.html:

  Webbplats med HTML och CSS                Anta nu        

style.css

* { marginal: 0 stoppning: 0 } rubrik { bakgrundsbild: linjär gradient (rgba (0,0,0,0.5), rgba (0,0,0,0,5)), url ('puppie.jpg') höjd: 100vh bakgrundsstorlek: omslag bakgrundsposition: centrum } .nav-meny { flyta: höger liststil: ingen margin-top: 30px } .nav-menu li { display: inline-block } .nav-menu li a { färg: turkos text-dekoration: ingen stoppning: 5px 20px font-family: 'Verdana', 'sans-serif' font-storlek: 20px } .homebtn a { kant: 1px fast grå bakgrundsfärg: vit } .nav-menu li a: sväva { kant: 1px fast grå bakgrundsfärg: vit } .Tagline { position: absolut bredd: 1200px marginal till vänster: 0 marginal-topp: 0 } h1 { färg vit font-storlek: 50px font-family: 'Verdana', 'sans-serif' text-align: center margin-top: 275px } . adoptera { margin-top: 30px marginal till vänster: 540 pixlar } .bttn { kant: 1px fast vit stoppning: 10px 30px färg: gul font-family: 'Verdana', 'sans-serif' fontstorlek: 22 pixlar text-dekoration: ingen } . adopter a: sväva { bakgrundsfärg: burlywood }

Steg 1: Utför följande kommandon för att uppdatera förvar, lägg till nödvändiga förvar och konfigurera PPA på din dator för Ansible-installation:

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

Tryck på Enter för att acceptera PPA-tillägget och installera äntligen Ansible efter uppdatering av förvar.

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

Steg 2: Gå till serverns / etc / hosts-fil och lägg till värdnamnet och IP-adressen för värden.

etc värdar - Ansible provisioning - EdurekaFig. 1 - Lägg till fjärrvärdar till / etc / hosts-fil - Ansible Provisioning

Steg 3: Eftersom Ansible arbetar med den agentlösa arkitekturen för att använda SSH för att kommunicera med sina värdar, ställ in ssh-tangenterna. I grund och botten har vi en server och en värd. Vi kontrollerar värden med vår server och därmed skapar vi en offentlig ssh-nyckel på servern och kopierar den till värdens maskin. Utför följande kommando på servern:

$ ssh-keygen

Du uppmanas att ange filnamnetdär jagdu vill spara din nyckel och uppmana dig också att skapa ett lösenord för åtkomst till den genererade nyckeln som är valfri. Som standard sparas den offentliga nyckeln i .ssh / id_rsa.pub-filen och den privata nyckeln sparas i .ssh / id_rsa.

slå samman sorteringskod c ++

Fig. 2 - Skapa ssh-nyckel - Ansible Provisioning

Nu måste den här genererade nyckeln finnas i din värd. Kopiering av nyckeln till värden kan göras på två sätt, antingen manuellt kopiera till värden eller använda kommandot ssh-copy-id. I det här fallet kommer jag att kopiera det med kommandot ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Obs! Se till att du kan ssh in i din värd innan du kör det här kommandot.

Steg 4: Konfigurera Ansible-värdar. Gå till / etc / ansible / hosts-filen och lägg till värdnamnet. Detta varierar beroende på antalet värdar och servrar du har. Du kan också ha mer änen serverhär.

Fig. 3 - Lägg till fjärrvärdar i inventeringsfilen - Ansible Provisioning

Steg 5: Kontrollera om dina värdar är redo. Utför det här kommandot, du ska få en liknande utdata.

$ ansible -m ping all

Fig. 4 - Kontrollera fjärrvärdens status - Ansible Provisioning

Steg 6: Nu är vårt Ansible klart, låt oss göra miljön redo att distribuera en webbplats. Vi ska använda en enda Ansible-spelbok för att installera Apache, MySql och PHP. Låt oss titta på det.

Obs! Om du är nybörjare, ta en titt på det detta blogg som förklarar hur man skriver en spelbok.

--- # Inställning LAMP Stack - värdar: värd1-uppgifter: - namn: Lägg till ppa-förråd blir: ja apt_repository: repo = ppa: ondrej / php - namn: Installera lampstack bli: ja apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql-tillstånd: nuvarande uppdateringscache: ja - namn: starta apache-servern bli: ja tjänst: namn: apache2-tillstånd: startad aktiverad: ja - namn: starta mysql-tjänsten bli: ja tjänster: namn: mysql-tillstånd: startat aktiverat: ja - namn: skapa målkatalogfil: sökväg = / var / www / html tillstånd = katalogläge = 0755 - namn: distribuera index.html blev: ja kopia: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Här, som du kan se, har vi 6 uppgifter, varje uppgift utför en specifik funktion.

  • Den första uppgiften lägger till förvaret som krävs för att installera MySQL och PHP.
  • Den andra uppgiften installerar apache2, MySQL-server, PHP och PHP-MySQL.
  • Den tredje och fjärde uppgiften startar Apache och MySQL-tjänsten.
  • Den femte uppgiften skapar en målkatalog i värdmaskinen och
  • Slutligen kör den sjätte uppgiften index.html-filen, den hämtar filen från servermaskinen och kopierar den till värdmaskinen.

Kör denna spelbok med följande kommando:

$ ansible-playbook lamp.yml -K

Linjerna bli: ja i spelboken berättar att den måste köras som root och följaktligen när du kör kommandot kommer det att be om sudo-lösenord.

Fig 5 - Utför Ansible Playbook - Ansible Provisioning

periodiskt system för devops-verktyg

Nu kan du gå in på värdmaskinen och kontrollera om webbplatsen har värd.

Fig 6 - Värd för webbplatsen på Localhost - Ansible Provisioning

Nu är det en webbsida som skulle distribueras i alla värdar som interagerar med servern (i vårt fall hade vi bara en värd) men detsamma skulle vara möjligt även för 100 fjärrvärdar.

Detta tar oss till slutet av Ansible Provisioning-bloggen. Om du tycker att den här artikeln är till hjälp, kolla in ' erbjuds av Edureka. Den täcker alla verktyg som har gjort IT-branschen smartare.

Har du en fråga till oss? Lägg upp det på så återkommer vi till dig.