Netwerk topologie:
Hier de linuxhint-711ea is een Ubuntu 20.04 LTS-machine waar ik Ansible zal installeren.
Dan zal ik de hosts configureren gastheer1 (IP-adres 192.168.20.162) en gastheer2 (IP-adres 192.168.20.153) voor Ansible-automatisering en voer er opdrachten op uit met behulp van Ansible vanaf de linuxhint-711ea machine.
ik bel gewoon gastheer1 en gastheer2 als Ansible-hosts in dit artikel.
Ansible installeren:
U kunt Ansible eenvoudig installeren op Ubuntu 20.04 LTS vanuit de officiële pakketrepository van Ubuntu.
Werk eerst de cache van de APT-pakketrepository bij met de volgende opdracht:
$sudogeschikte update
De cache van de pakketrepository van APT moet worden bijgewerkt.
Installeer nu Ansible met de volgende opdracht:
$sudogeschiktinstallerenweerbaarOm de installatie te bevestigen, drukt u op EN en druk vervolgens op .
Ansible moet worden geïnstalleerd.
Voer nu de volgende opdracht uit om te controleren of ansible correct werkt.
$weerbaar--versieZoals u kunt zien, is het ansible-commando beschikbaar en werkt het correct.
SSH-sleutel genereren:
Nu moet je een SSH-sleutel genereren op de computer waarop je Ansible hebt geïnstalleerd.
Voer de volgende opdracht uit om een SSH-sleutel te genereren:
$ssh-keygenDruk nu op .
druk op .
druk op .
Er moet een SSH-sleutel worden gegenereerd.
Ubuntu-hosts configureren voor Ansible-automatisering:
In dit gedeelte laat ik u zien hoe u een Ubuntu-host configureert ( gastheer1 ) voor Ansible-automatisering. Als je meer dan één host hebt die je wilt automatiseren met Ansible, herhaal dan hetzelfde proces op elk van de hosts.
Op de Ubuntu Ansible-hosts (die u wilt configureren voor Ansible-automatisering) moet een SSH-serverpakket zijn geïnstalleerd.
Werk eerst de cache van de APT-pakketrepository bij met de volgende opdracht:
$sudogeschikte updateInstalleer vervolgens de OpenSSH-server met de volgende opdracht:
$sudogeschiktinstallerenopenssh-server-enIn mijn geval is het OpenSSH-serverpakket al geïnstalleerd. Als het in uw geval niet is geïnstalleerd, moet het worden geïnstalleerd.
Controleer nu of de sshd service wordt uitgevoerd met het volgende commando:
$sudosystemctl-status sshdZoals je kunt zien, is de sshd service is actief (rennen) en ingeschakeld (start automatisch bij het opstarten van het systeem).
Als de sshd service is niet actief (in uw geval actief), start het handmatig met de volgende opdracht:
$sudosystemctl start sshdAls de sshd service is niet ingeschakeld (niet toegevoegd aan het opstarten van het systeem) in uw geval, voeg het in uw geval handmatig toe aan het opstarten van het systeem met de volgende opdracht:
$sudosystemctlinschakelensshdConfigureer nu de firewall om SSH-toegang toe te staan met de volgende opdracht:
$sudoufw toestaansshJe moet ook een maken weerbaar gebruiker en sta wachtwoordloze sudo-toegang toe tot de weerbaar gebruiker.
om een te maken weerbaar gebruiker, voer de volgende opdracht uit:
$sudoadduser ansibleTyp nu een wachtwoord voor de weerbaar gebruiker en druk op .
Typ nu het wachtwoord opnieuw en druk op .
Druk nu op .
Druk nu op .
Druk nu op .
Druk nu op .
Druk nu op .
Typ nu in en en druk vervolgens op .
Een weerbaar gebruiker moet worden aangemaakt.
Configureer nu wachtwoordloze sudo-toegang tot de weerbaar gebruiker met het volgende commando:
$gooide uit 'ansible ALL=(ALL) NOPASSWD:ALL' | sudo tee /enzovoort/sudoers.d/weerbaarZoek nu het IP-adres van de Ansible-host ( gastheer1 ) met het volgende commando:
$hostnaam -LHier is het IP-adres in mijn geval: 192.168.20.162 . Het zal voor jou anders zijn. Zorg er dus voor dat u het nu vervangt door uw formulier.
Kopieer nu vanaf de computer waarop u Ansible hebt geïnstalleerd de openbare SSH-sleutel naar de Ansible-host ( gastheer1 ) als volgt:
$ssh-copy-id ansible@192.168.20.162Typ in Ja en druk op .
Typ nu het wachtwoord voor de weerbaar gebruiker en druk op .
De openbare SSH-sleutel moet worden gekopieerd naar: gastheer1 .
Schakel nu op wachtwoord gebaseerde login uit voor de weerbaar gebruiker met het volgende commando:
$sudogebruikersmod-DEweerbaarNu kunt u alleen SSH naar de Ansible-host ( gastheer1 ) als weerbaar gebruiker zonder wachtwoord van de computer waarvan u de openbare SSH-sleutel hebt gekopieerd (in dit geval de computer waarop u Ansible hebt geïnstalleerd). Maar u kunt SSH niet naar de Ansible-host ( gastheer1 ) als weerbaar gebruiker vanaf een andere computer. Ik heb de Ansible-hosts om veiligheidsredenen op deze manier geconfigureerd. als de weerbaar gebruiker heeft geen wachtwoord nodig voor het uitvoeren van administratieve opdrachten, het is riskant om op wachtwoord gebaseerde login toe te staan voor de weerbaar gebruiker.
Nu zou je in staat moeten zijn om te SSH naar de ansible host gastheer1 vanaf de computer waarop u Ansible als volgt hebt geïnstalleerd:
$sshweerbaar@192.168.20.162Zoals je kunt zien, heb ik toegang tot de Ansible-host ( gastheer1 ) als ansible-gebruiker zonder wachtwoord. Dus de Ansible-host ( gastheer1 ) is klaar voor Ansible-automatisering.
Als u om de een of andere reden aanmelding op basis van een wachtwoord wilt toestaan voor de weerbaar gebruiker opnieuw, voer de volgende opdracht uit in de Ansible-host ( gastheer1 ):
$sudogebruikersmod-UweerbaarU kunt op dezelfde manier zoveel hosts configureren als u wilt voor Ansible-automatisering.
In dit artikel heb ik slechts 2 hosts geconfigureerd, gastheer1 en gastheer2 voor de demonstratie.
Ansible testen:
Maak nu een nieuwe projectdirectory aan ~/ansible-demo/ op de computer waarop u Ansible als volgt hebt geïnstalleerd:
$mkdir~/ansible-demoNavigeer nu naar de ~/ansible-demo/ map als volgt:
$CD~/ansible-demo/Maak nu een nieuwe gastheren bestand in de projectdirectory als volgt:
$nanogastherenTyp nu de IP-adressen of DNS-namen van de Ansible-hosts ( gastheer1 en gastheer2 in mijn geval) in de gastheren bestand als volgt:
192.168.20.162192.168.20.153
Sla het bestand nu op door op te drukken + X gevolgd door EN en dan .
Probeer nu als volgt alle hosts te pingen met Ansible:
$weerbaar allemaal-l./gastheren-uweerbaar-m pingOPMERKING: Hier wordt de optie -u gebruikt om de gebruikersnaam (in dit geval ansible) op te geven die Ansible zal gebruiken om SSH naar de hosts te sturen.
Zoals u kunt zien, kunnen alle hosts worden gepingd. De hosts zijn dus klaar voor Ansible-automatisering.
Op dezelfde manier kunt u elk commando in de hosts als volgt uitvoeren met Ansible:
$weerbaar allemaal-l./gastheren-uweerbaar-mschelp-tot 'echo '$(hostnaam) - $(hostnaam -I)''Zoals u kunt zien, is de opdracht met succes uitgevoerd in elk van de hosts en wordt de uitvoer weergegeven.
Dit is dus hoe u Ansible op Ubuntu 20.04 LTS installeert en Ubuntu 20.04 LTS-hosts configureert voor Ansible-automatisering. Bedankt voor het lezen van dit artikel.