Nätverks topologi:
Här, linuxhint-711ea är en Ubuntu 20.04 LTS -maskin där jag kommer att installera Ansible.
Sedan kommer jag att konfigurera värdarna värd1 (IP -adress 192.168.20.162) och värd2 (IP -adress 192.168.20.153) för Ansible automatisering och kör kommandon på dem med Ansible från linuxhint-711ea maskin.
Jag ringer helt enkelt värd1 och värd2 som Ansible -värdar i denna artikel.
Installera Ansible:
Du kan enkelt installera Ansible på Ubuntu 20.04 LTS från det officiella paketförvaret för Ubuntu.
Uppdatera först APT -paketets förvaringscache med följande kommando:
$sudolämplig uppdatering
APT -pakets lagringscache bör uppdateras.
Installera nu Ansible med följande kommando:
$sudobenägenInstalleraansibleFör att bekräfta installationen, tryck på OCH och tryck sedan på .
Ansible bör installeras.
Kör nu följande kommando för att kontrollera om ansible fungerar korrekt.
$ansible--versionSom du kan se är ansible -kommandot tillgängligt och fungerar korrekt.
Genererar SSH -nyckel:
Nu måste du generera en SSH -nyckel på datorn där du har installerat Ansible.
Kör följande kommando för att generera en SSH -nyckel:
$ssh-keygenTryck nu .
Tryck .
Tryck .
En SSH -nyckel bör genereras.
Konfigurera Ubuntu -värdar för Ansible Automation:
I det här avsnittet kommer jag att visa dig hur du konfigurerar en Ubuntu -värd ( värd1 ) för Ansible automation. Om du har mer än en värd som du vill automatisera med Ansible, upprepa samma process på var och en av värdarna.
Ubuntu Ansible -värdar (som du vill konfigurera för Ansible -automatisering) måste ha SSH -serverpaket installerat.
Uppdatera först APT -paketets förvaringscache med följande kommando:
$sudolämplig uppdateringInstallera sedan OpenSSH -servern med följande kommando:
$sudobenägenInstalleraopenssh-server-ochI mitt fall är OpenSSH -serverpaketet redan installerat. Om den inte är installerad i ditt fall bör den installeras.
Kontrollera nu om sshd tjänsten körs med följande kommando:
$sudosystemctl status sshdSom du kan se, sshd tjänsten är aktiva (springer) och aktiverad (startar automatiskt vid systemstart).
Om sshd tjänsten är inte aktiva (kör) i ditt fall, starta det manuellt med följande kommando:
$sudosystemctl start sshdOm sshd tjänsten är inte aktiverad (läggs inte till i systemstart) i ditt fall, lägg till den i systemstart manuellt med följande kommando:
$sudosystemctlGör det möjligtsshdKonfigurera nu brandväggen för att tillåta SSH -åtkomst med följande kommando:
$sudoufw tillåtsshDu bör också skapa en ansible användare och tillåta sudo-åtkomst utan lösenord till ansible användare.
Att skapa en ansible användare, kör följande kommando:
$sudoadduser ansibleSkriv nu in ett lösenord för ansible användare och tryck på .
Skriv nu in lösenordet igen och tryck på .
Tryck nu .
Tryck nu .
Tryck nu .
Tryck nu .
Tryck nu .
Skriv nu in och och tryck sedan på .
Ett ansible användaren bör skapas.
Konfigurera nu sudo-åtkomst utan lösenord till ansible användare med följande kommando:
$kastade ut 'ansible ALL = (ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/ansibleHitta nu IP -adressen till Ansible -värden ( värd1 ) med följande kommando:
$värdnamn -JagHär är IP -adressen i mitt fall 192.168.20.162 . Det blir annorlunda för dig. Så se till att ersätta det med ditt formulär nu.
Nu, från datorn där du har installerat Ansible, kopierar du SSH -nyckeln till Ansible -värden ( värd1 ) som följer:
$ssh-copy-id ansible@192.168.20.162Skriv in ja och tryck på .
Skriv nu in lösenordet för ansible användare och tryck på .
Den offentliga SSH -nyckeln ska kopieras till värd1 .
Inaktivera nu lösenordsbaserad inloggning för ansible användare med följande kommando:
$sudoanvändarmod-DEansibleNu kan du bara SSH in i Ansible -värden ( värd1 ) som ansible användare utan något lösenord från den dator du har kopierat SSH -nyckeln från (i det här fallet datorn där du har installerat Ansible). Men du kommer inte att kunna SSH in i Ansible -värden ( värd1 ) som ansible användare från någon annan dator. Jag har konfigurerat Ansible -värdarna på detta sätt av säkerhetsskäl. Som den ansible användaren behöver inget lösenord för att köra administrativa kommandon, det är riskabelt att tillåta lösenordsbaserad inloggning för ansible användare.
Nu borde du kunna SSH till den ansible värden värd1 från datorn där du har installerat Ansible enligt följande:
$sshansible@192.168.20.162Som du kan se har jag tillgång till Ansible -värden ( värd1 ) som ansvarsfull användare utan något lösenord. Så Ansible -värden ( värd1 ) är redo för Ansible automation.
Om du av någon anledning vill tillåta lösenordsbaserad inloggning för ansible användaren igen, kör följande kommando i Ansible -värden ( värd1 ):
$sudoanvändarmod-UansibleDu kan konfigurera så många värdar du vill för Ansible -automatisering på samma sätt.
I den här artikeln har jag bara konfigurerat två värdar, värd1 och värd2 för demonstrationen.
Testar Ansible:
Skapa nu en ny projektkatalog ~/ansible-demo/ på datorn där du har installerat Ansible enligt följande:
$mkdir~/ansible-demoNu, navigera till ~/ansible-demo/ katalog enligt följande:
$CD~/ansible-demo/Skapa nu en ny värdar filen i projektkatalogen enligt följande:
$nanovärdarSkriv nu in IP -adresserna eller DNS -namnen på Ansible -värdarna ( värd1 och värd2 i mitt fall) i värdar filen enligt följande:
192.168.20.162192.168.20.153
Spara nu filen genom att trycka på + X följd av OCH och då .
Försök nu att pinga alla värdar med Ansible enligt följande:
$ansvarsfullt allt-i./värdar-uansible-m pingNOTERA: Här används -u -alternativet för att ange användarnamnet (ansible i det här fallet) som Ansible ska använda för att SSH in i värdarna.
Som du kan se kan alla värdar pinga. Så värdarna är redo för Ansible automation.
På samma sätt kan du köra vilket kommando som helst i värdarna med Ansible enligt följande:
$ansvarsfullt allt-i./värdar-uansible-mskal-till 'echo' $ (värdnamn) - $ (värdnamn -I) ''Som du kan se kördes kommandot framgångsrikt i var och en av värdarna och utdata visas.
Så här installerar du Ansible på Ubuntu 20.04 LTS och konfigurerar Ubuntu 20.04 LTS -värdar för Ansible -automatisering. Tack för att du läste denna artikel.