ansible tutorial installation
Hands-on Ansible Tutorial med Ansible installation, användning och konfiguration med Ansible Modules:
Vi diskuterade om AWS elastisk bönstång i vår tidigare handledning.
LISTA över självstudier i denna Ansible-serie:
Handledning nr 1: Ansible installation och moduler
Handledning nr 2: Ansible Playbooks and Valv
Självstudie 3: Ansible Rolls och Integration med Jenkins
Ansible är ett öppen källkodsverktyg som hjälper till med automatisering av uppgifter, applikationsdistribution, molnadministration och konfigurationshantering.
Läs också => DevOps Training Tutorial lista
Så vi pratar om IT-orkestrering där uppgifter körs i sekvens i flera olika maskiner eller servrar.
Ansible gör detta genom att ansluta till flera maskiner via SSH och kör de uppgifter som har konfigurerats i spelböcker och använder ett enkelt språk som kallas YAML (Yet Another Markup Language) .
Vad du kommer att lära dig:
- Översikt över Ansible
- Ansible installationsprocess
- Ansibel användning
- Ansible Modules
- Sammanfattning
- Rekommenderad läsning
Översikt över Ansible
Viktigast av allt använder Ansible inte en agent för att automatisera uppgifter på olika maskiner.
Ansible säkerställer att exakta versioner och uppdaterad information till programvarupaketet bibehålls.
Till exempel , om du vill installera JDK 8 eller Tomcat eller något annat mjukvarupaket i 10 eller 20 olika maskiner är det faktiskt inte möjligt att gå till alla maskiner och installera dem istället använda Ansible för att automatisera installationen eller till och med mjukvarudistribution med Playbooks and Inventory skrivet på ett mycket enkelt språk.
Så Ansible är:
- Gratis och öppen källkod
- Underhålls av Redhat
- I huvudsak en serverkonfiguration
- Konfigurationshantering
I denna 3-deliga Ansible Tutorial-serie kommer vi att diskutera praktisk tillvägagångssätt om följande ämnen:
- Installations- och konfigurationsprocess
- Lager
- Ansible Modules
- Ad-hoc-kommandon,
- Uppgiftsautomatisering med hjälp av spelböcker
- Ansynliga roller
- Ansible valv
- Ansible och AWS
Ansible installationsprocess
Ansible kan installeras och köras från vilken maskin som helst.
Vanligtvis behöver du en Kontrollmaskin för installation som ska vara Linux. Windows-maskin stöder inte att vara en kontrollmaskin. Kontrollmaskinen hanterar de andra fjärrmaskinerna. Som tidigare nämnts använder Ansible SSH för att hantera fjärrmaskiner.
Under hela denna handledning kommer jag att använda AWS EC2-instanser för att visa upp exemplen. Jag har använt två instanser (en styrmaskin och en annan som ett mål för automatisering av uppgifter) och Redhat Linux 7.5.
Oavsett om det är lokalt eller molnfall måste du öppna portar på lämpligt sätt baserat på de uppgifter som automatiseras. Jag har följande portar öppna som en del av säkerhetsgruppen för EC2-instanser för att demonstrera exemplen som nämns i handledningen.
standard undernätmask för klass d
I ovanstående skärm har jag nämnt öppningsport 8080 eftersom jag kommer att visa om automatisering av programvarudistributionsautomatisering med Tomcat vilket kommer att vara användbart ur DevOps-synvinkel, särskilt under den kontinuerliga leveransprocessen.
Installation av Ansible med YUM
Som nämnts tidigare kommer jag att använda en styrmaskin och en målmaskin. Börja med installationen genom att utföra stegen som visas nedan på båda maskinerna.
till) Skapa ett gemensamt id på båda maskinerna för Exempel , ansible med SUDO-privilegier. Detta ID kommer att användas för att kommunicera över alla inblandade maskiner för automatisering av uppgifter.
# useradd ansible # passwd ansible
b) Redigera / etc / ssh / sshd_config fil på kontrollmaskin och avmarkera raderna för PasswordAuthentication and PermitRootLogin
Utför stegen ovan på båda maskinerna. Starta om när du är klar sshd service på båda maskinerna.
# systemctl restart sshd
c) För fullständig automatisering av uppgifter behöver vi lösenordsfri SSH-autentisering annars kommer inte hela processen att användas om du måste ange lösenordet varje gång.
Så lägg upp de ändringar som gjorts ovan om vi kör kommandot ssh och ssh måste vi ange lösenordet varje gång vilket inte är rätt procedur för att utföra Ansible-uppgifter.
d) För att aktivera lösenordsfri autentisering för att utföra stegen som visas nedan. Lägg först till användaren ansible till / etc / sudoers fil på båda maskinerna som gör det möjligt för användaren ansible för att köra alla kommandon som kräver root-behörigheter.
Spara och avsluta filen efter att ha lagt till användaren.
är) Framöver kommer vi att använda användaren ansible för att utföra alla steg. Så byt till användaren ansible.
Kontrollmaskin lämpligt OCH Målmaskin lämpligt
Kontrollmaskin ssh-keygen
Målmaskin ssh-keygen
Kopiera ssh-tangenten till målmaskinen och vice versa.
Kontrollmaskin ssh-copy-id
Målmaskin ssh-copy-id
etl testar intervjufrågor och svar
Vi kan nu logga in utan att ange lösenordet. Efter utcheckningen av ssh-anslutningen på båda maskinerna och vara inloggad som användbar användare.
Kontrollmaskin: ssh ansible @
Målmaskin: ssh ansible @
f) Installera wget om det inte är installerat på båda maskinerna.
$ sudo yum install wget -y
g) Vi kan nu installera ansible endast på kontrollmaskinen genom att aktivera EPEL repo från fedora som tillhandahåller tilläggsprogramvarupaket. Utför följande steg för att installera ANSIBL.
$ wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh epel-release-latest-7.noarch.rpm $ sudo yum install ansible -y $ ansible --version
Den användbara versionen som används är 2.5.3
h) Redigera ansible.cfg filen och aktivera inventeringsfilparametern på kontrollmaskinen.
$ sudo vi /etc/ansible/ansible.cfg
i) Ansible använder konceptet Inventory för att hantera och spåra målmaskinerna. Som standard finns den här filen i / etc / ansible / värdar och kan också ändras. En värdfil består av grupper för bättre klassificering och flera maskiner under gruppen. Alla nödvändiga maskiner kan läggas till i dessa grupper.
Varje grupp betecknas med en hakparentes och ett gruppnamn inom. En server kan faktiskt finnas i flera grupper.
Redigera inventeringsfilen / etc / ansible / värdar och lägg till alla servrar som behöver hanteras.
j) För att testa anslutningen till servrarna under webbserverns grupp kör du ansible ping kommandot som visas. Här ping är en modul som utför en viss funktion för att testa om värdarna kan anslutas enligt definitionen i inventeringsfilen eller inte. Vi kommer att se mer om olika moduler och dess exempel i nästa avsnitt.
$ ansible webservers –m ping
För att lista värdarna i inventeringsfilen kan du köra kommandot nedan
$ ansible webservers --list-hosts
Ansibel användning
Ansible består av tre huvudkomponenter
- Kontrollmaskin
- Lager
- Playbook
Kontrollmaskinen hanterar körningen av Playbook. Den kan installeras på din bärbara dator eller på vilken maskin som helst på internet.
Inventariefilen ger en fullständig lista över alla målmaskiner som olika moduler körs på genom att göra en ssh-anslutning och installera nödvändig programvara.
Spelboken består av steg som kontrollmekanismen kommer att utföra på de servrar som definieras i inventeringsfilen.
Mycket viktigt att förstå här är att Ansible interagerar med alla servrar som är definierade i inventeringen genom SSH-protokollet, vilket är en säker metod för fjärranloggning. Varje åtgärd är klar och filöverföringen krypteras.
Så som du skulle ha sett i föregående avsnitt använder Ansible inte någon form av databas för installation och är väldigt lätt att installera, kommer vi nu att fortsätta med den faktiska användningen av Ansible från början med moduler som är huvudbyggnaden.
Ansible Modules
Moduler är huvudbyggstenarna i Ansible och är i princip återanvändbara manus som används av Ansible-spelböcker. Ansible kommer med ett antal återanvändbara moduler. Dessa inkluderar funktionalitet för kontroll av tjänster, installation av programvarupaket, arbete med filer och kataloger etc.
Syntaxen är som följer när du kör ad-hoc-kommandon som hjälper till att köra enstaka eller enkla uppgifter bara en gång och som inte behöver köras senare. För T.ex. bara installera Tomcat på alla servrar.
ansible hostORgroup -m module_name -a 'arguments' -u username --become
Låt oss titta på några av de mest populära Ansible-modulerna och deras användning genom ad hoc-kommandona och senare i spelboken.
# 1) Installationsmodul
För att få information om nätverket eller maskinvaran eller OS-versionen eller minnesrelaterad information kommer installationsmodulen att hjälpa till att samla samma om målmaskinerna. På kontrollen kör maskinen kommandot nedan.
$ ansible webservers –m setup
# 2) Kommandomodul
Kommandomodulen kör bara ett specifikt kommando på målmaskinen och ger utdata.
Några av exemplen ges nedan
$ ansible webservers –m command - an ‘uptime’ $ ansible webservers –m command –a ‘hostname’
# 3) Skallmodul
För att utföra alla kommandon i skalet du väljer kan du använda Shell-modulen. Kommandona för skalmodulen körs i / bin / sh-skal och du kan använda operatörerna som '>' eller '|' (rörsymbol eller till och med miljövariabler.
Så främst är skillnaden mellan Shell- och Command-modulen att om du faktiskt inte behöver använda operatörerna som de som nämnts kan du använda kommandomodulen.
$ ansible webservers -m shell -a 'ls -l > temp.txt'
På maskinerna under webbserversgruppen letar du efter den skapade filen och kör kommandot för att visa textfilen.
$ ansible webservers –m command -a ‘cat temp.txt’
# 4) Användarmodul
Med den här modulen kan man skapa eller ta bort användare.
För att lägga till användare
$ ansible webservers -m user -a 'name=user1 password=user1' --become
För att radera användare
$ ansible webservers -m user -a 'name=user1 state=absent' --become
Alternativ:
- bli - Behörighet för superanvändaren att köra kommandot
- tillstånd = frånvarande för att radera användaren
# 5) Filmodul
Den här modulen används för att skapa filer, kataloger, ställa in eller ändra filbehörigheter och äganderätt etc.
Exempel 1: Skapa en fil
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=touch mode=600 owner=ansible group=ansible'
Exempel 2: Skapa en katalog
För att skapa en katalog med filmodulen måste du ställa in två parametrar.
- Path (alias - name, dest) - Detta är den absoluta sökvägen till katalogen som ska skapas.
- Stat - Du ska ange värdet som ”katalog.” Som standard är värdet ”fil”.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=directory mode=755'
Exempel 3: Ta bort en fil
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=absent'
Exempel 4: Ta bort en katalog
Du kan radera en katalog genom att ställa in tillståndsparametervärdet till frånvarande . Katalogen och allt dess innehåll kommer att raderas.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=absent'
bästa diskrensning för Windows 10
# 6) Kopieringsmodul
Den används för att kopiera filer till flera målmaskiner.
$ ansible webservers -m copy -a 'src=sample.txt dest=/home/ansible/sample.txt'
# 7) Hantera programvarupaket
Om du behöver installera programvarupaket via 'yum' eller 'apt' kan du använda kommandona nedan.
Exempel 1: Installera GIT
$ ansible webservers –m yum -a “name=git state=present” --become
I det högra fönstret kan du se om git inte är installerat kommer det att ge kommandot som inte hittades och när det är installerat kommer det att visa utdata.
I detta kommando, tillstånd = närvarande kommer att kontrollera om paketet är installerat eller inte och om det inte är installerat kommer det att installera den senaste versionen.
Exempel 2: Kontrollera om paketet är installerat och uppdatera det till den senaste versionen.
$ ansible webservers -m yum -a “name=git state=latest”
I ovanstående kommando, state = senaste uppdaterar endast paketet till den senaste versionen.
Exempel 3: Installera Apache webbserver
$ ansible webservers -m yum -a 'name=httpd state=present' –become
Exempel 4: Kontrollera om Maven är installerad eller inte.
$ ansible webservers -m yum -a 'name=maven state=absent' –become
# 8) Managing Services Module
För att hantera tjänster med ansible använder vi en modul 'service'.
Starta en tjänst
$ ansible webservers -m service -a “name=httpd state=started” --become
Avbryta en tjänst
$ ansible webservers -m service -a “name=httpd state=stopped” --become
Startar om en tjänst
$ ansible webservers -m service -a “name=httpd state=restarted --become
Klick här för att få en komplett modullista.
Sammanfattning
I den här handledningen introducerade jag dig till de grundläggande begreppen och komponenterna i Ansible och vi har också sett mer om installation, konfiguration och användning av Ansible med hjälp av Ansible-moduler som är huvudkomponenten i Ansible-utförande.
I vår kommande handledning kommer vi att fokusera på den mycket viktiga aspekten av att skriva spelböcker för uppgiftsautomation och Ansible valv för att hålla känslig data i krypterade filer.
PREV-handledning | NÄSTA självstudie
Rekommenderad läsning
- Fördjupade förmörkningsövningar för nybörjare
- Ansible Rolles, Integration med Jenkins i DevOps och EC2-moduler
- Uppgiftsautomatisering med Ansible Playbooks och Ansible Valv med exempel
- Steg-för-steg-installation och installation av Appium Studio
- Introduktion till Java-programmeringsspråk - Videohandledning
- WebDriver Hela installationen och installationen med Eclipse - Selen Tutorial # 9
- Jira nedladdning och installation med Jira License Setup
- Python introduktions- och installationsprocess