Netwerk topologie
Hier, ansible-pc is een Debian 10-machine waarop we Ansible zullen installeren.
de servers 6f7c2 en 6b219 zijn Debian 10-machines die we zullen configureren voor Ansible-automatisering. Ik zal deze servers gewoon Ansible-hosts noemen voor het doel van dit artikel.
We kunnen Ansible gebruiken van ansible-pc om verschillende taken in de te automatiseren 6f7c2 en 6b219 Debian-servers.
Ansible installeren
In deze sectie laat ik je zien hoe je Ansible installeert op ansible-pc.
U kunt Ansible op Debian 10 installeren vanuit de officiële pakketrepository van Debian.
Werk eerst de cache van de APT-pakketrepository bij met de volgende opdracht:
$ sudo apt-update
Installeer nu Ansible met de volgende opdracht:
$ sudo apt install ansible
Om de installatie te bevestigen, drukt u op Y en druk vervolgens op
Ansible moet worden geïnstalleerd.
Voer nu de volgende opdracht uit om te controleren of Ansible correct werkt:.
$ ansible --versieZoals je kunt zien, is het ansible-commando beschikbaar en werkt het correct. Ansible 2.7.7 is de nieuwste versie van Ansible die beschikbaar was in de pakketrepository van Debian op het moment dat dit artikel werd geschreven.
SSH-sleutel genereren
Op de Debian 10-machine (ansible-pc) waar je Ansible hebt geïnstalleerd, moet je eerst een SSH-sleutel genereren.
Voer de volgende opdracht uit om een SSH-sleutel te genereren:
$ ssh-keygen
Druk nu op
druk op
druk op
Er moet een SSH-sleutel worden gegenereerd.
Debian-hosts configureren voor Ansible-automatisering
In deze sectie laat ik u zien hoe u een Debian-host configureert voor Ansible-automatisering. Als je meerdere hosts hebt die je wilt automatiseren met Ansible, herhaal dan hetzelfde proces voor elk van de hosts.
Op de hosts die u wilt configureren voor Ansible-automatisering moet het SSH-serverpakket vooraf zijn geïnstalleerd.
Werk eerst de cache van de APT-pakketrepository bij met de volgende opdracht:
$ sudo apt-update
Installeer vervolgens de OpenSSH-server met de volgende opdracht:
$ sudo apt install openssh-server -y
In mijn geval is het OpenSSH-serverpakket al geïnstalleerd. Als het in uw geval niet is geïnstalleerd, moet het voorafgaand aan deze stap worden geïnstalleerd.
Controleer nu of de sshd service wordt uitgevoerd via de volgende opdracht:
$ sudo systemctl 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 (actief), start het handmatig met de volgende opdracht:
$ sudo systemctl start sshd
Als 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:
$ sudo systemctl sshd inschakelen
Maak nu een weerbaar gebruiker en sta wachtwoordloze sudo-toegang toe tot de weerbaar gebruiker.
om een te maken weerbaar gebruiker, voer de volgende opdracht uit:
$ sudo adduser --shell /bin/bash --gecos "" ansible
Typ een wachtwoord voor de weerbaar gebruiker en druk op
Typ het wachtwoord opnieuw en druk op
Een weerbaar gebruiker moet worden aangemaakt.
Nu, om wachtwoordloze sudo-toegang tot de weerbaar gebruiker, bewerk de /etc/sudoers bestand met het volgende commando:
$ sudo visudo
Voeg nu de volgende regel toe aan de /etc/sudoers het dossier.
ansible ALL=(ALL) NOPASSWD:ALLSla het bestand vervolgens op door op te drukken
Zoek nu het IP-adres van de Ansible-host 6f7c2 met het volgende commando:
$ hostnaam -IHier is het IP-adres in mijn geval: 192.168.20.167. Het zal voor jou anders zijn. Zorg er dus voor dat u dit adres nu vervangt door uw eigen formulier.
Openbare SSH-sleutel kopiëren naar de Ansible-host
Vanaf de computer waarop je Ansible hebt geïnstalleerd (ansible-pc), kopieer de openbare SSH-sleutel naar de Ansible-host 6f7c2 als volgt:
$ ssh-copy-id [email protected]
Typ in Ja en druk op
Typ vervolgens het wachtwoord voor de weerbaar gebruiker en druk op
De openbare SSH-sleutel moet worden gekopieerd naar de Ansible-host 6f7c2.
Je zou in staat moeten zijn om te SSH naar de Ansible-host 6f7c2 als de gebruiker weerbaar zonder wachtwoord, zoals je kunt zien in de onderstaande schermafbeelding:
$ ssh [email protected]
Je zou ook sudo-commando's moeten kunnen uitvoeren zonder dat je om een wachtwoord wordt gevraagd.
$ sudo ls /
Sluit ten slotte de SSH-sessie als volgt af:
$ afsluiten
Ansible-hosts beveiligen
als de weerbaar gebruiker kan elke sudo-opdracht uitvoeren zonder om een wachtwoord te worden gevraagd, we hebben de op SSH-sleutel gebaseerde login geconfigureerd voor de Ansible-hosts. Maar je kunt nog steeds SSH naar de Ansible-hosts als weerbaar gebruiker met het wachtwoord van de of weerbaar gebruiker. Dit is dus niet erg veilig.
Om de beveiliging te verbeteren, voert u de volgende opdracht uit op de Ansible-hosts om op wachtwoord gebaseerde aanmelding uit te schakelen voor de weerbaar gebruiker:
$ sudo usermod -L ansible
Als u later besluit om op wachtwoord gebaseerde aanmelding in te schakelen voor de weerbaar gebruiker, voert u de volgende opdracht uit op de Ansible-host:
$ sudo usermod -U ansibleAnsible testen
Een nieuwe projectdirectory maken ~/project/ op de Debian-machine waarop u Ansible hebt geïnstalleerd (ansible-pc) met de volgende code:
$ mkdir ~/project
Navigeer naar de ~/project/ directory met de volgende code:
$ cd ~/project/
Maak een nieuwe gastheren bestand in de projectdirectory als volgt:
$ nano-hosts
Maak nu een lijst van de IP-adressen of DNS-namen van de Ansible-hosts (6f7c2 en 6b219 in mijn geval) in de gastheren het dossier:
192.168.20.167192.168.20.168
Als u klaar bent, slaat u het bestand op door op . te drukken
Probeer om te testen alle hosts met Ansible te pingen met de volgende code:
$ ansible -i ./hosts alle -u ansible -m pingOPMERKING: Hier de -jij optie wordt gebruikt om de gebruikersnaam (weerbaar in dit geval) die Ansible zal gebruiken om SSH naar de hosts te sturen.
Zoals je kunt zien, heeft Ansible toegang tot alle hosts. Dus de hosts zijn klaar voor Ansible-automatisering.
Dus zo installeer je Ansible op Debian 10 en configureer je Debian-hosts voor Ansible-automatisering. Bedankt voor het lezen van dit artikel.