Ansible Ssh-Copy-ID

Ansible Ssh Copy Id



Ansible is een gratis en open-source automatiseringstool die het beheer van de configuratie en applicatie-implementatie op meerdere machines vereenvoudigt.

Ansible gebruikt de declaratieve taal om de gewenste staat van systemen te beschrijven en voert automatisch de taken uit die nodig zijn om die staat te bereiken.

Ansible gebruikt SSH als de standaardverbindingsmethode om verbinding te maken met een doelmachine. SSH biedt een veilig en gecodeerd communicatiekanaal tussen het Ansible-controleknooppunt en de doelhosts.







Normaal gesproken is de meest gebruikelijke methode voor het configureren van de op SSH-sleutels gebaseerde authenticatie voor de doelhost de opdracht ssh-copy-id. De opdracht kopieert de openbare sleutel van het besturingsknooppunt naar het bestand “authorized_keys” op de doelhost.



Wanneer u echter een systeem voor de eerste keer configureert, heeft u mogelijk Ansible nodig om dit in een draaiboek te doen. Dit is waar de Ansible-gemeenschap te hulp schiet.



In de Ansible-gemeenschap hebben we toegang tot de rol ssh_id_copy waarmee we de systemen kunnen autoriseren voor wachtwoordloze SSH-authenticatie.





Deze rol zorgt voor de installatie van de SSH-sleutels op de externe machine, waardoor we een Ansible-inventarisbestand kunnen maken met de externe machine. We kunnen dan snel elk Ansible-playbook tegen de externe machine oproepen.

Ansible Ssh_Copy_Id-rol

De rol heeft variabelen waarmee Ansible de SSH-sleutels op de externe host kan configureren. Dergelijke variabelen zijn onder meer:



Hostnaam – Het definieert het externe systeem waarmee verbinding moet worden gemaakt (FQDN of IP).

Gebruikersnaam – Het specificeert de gebruikersnaam om verbinding te maken met het externe systeem.

Wachtwoord – Het definieert het wachtwoord van de gebruikersnaam om verbinding te maken met het externe systeem.

ssh_public_key – Het definieert het absolute pad naar het openbare sleutelbestand dat op de externe host moet worden geconfigureerd.

Haven – Het definieert de SSH-poort.

De rol Ssh_Copy_Id installeren

VOORZICHTIGHEID: We kunnen de geldigheid en veiligheid van gemeenschapsgestuurde rollen en modules niet bieden. Controleer en verifieer de werking van een rol/module voordat u deze in productie en op echte machines gebruikt. Er wordt geen veiligheid gegarandeerd bij het werken met de stappen die in dit bericht worden beschreven.

Zoals gezegd is de ssh_copy_id een door de gemeenschap geleverde rol die wordt geleverd door Ryan. De link naar de repository is als volgt:

https://github.com/ryankwilliams/ansible-ssh-copy-id

Voordat we het kunnen gebruiken, moeten we ervoor zorgen dat het is geïnstalleerd door de volgende opdracht uit te voeren:

$ weerbaardstelsel installeren rywillia.ssh-kopie-id

Voorbeeld gebruik

Eenmaal geïnstalleerd, kunnen we de rol in een draaiboek gebruiken, zoals hieronder wordt gedemonstreerd:

---
- naam
: configureer wachtwoordloze ssh-authenticatie op een externe machine
gastheren
: lokalehost
worden
: Ja
rollen
:
- rol
: ryankwilliams.ssh_copy_id
van wie
:
hostnaam
: 172.168.112.23
gebruikersnaam
: ubuntu
wachtwoord
: wachtwoord
ssh_public_key
: /home/debian12/.ssh/id_rsa.pub
ssh_poort
: 22

Het vorige voorbeeld-playbook laat zien hoe u de rol kunt gebruiken om de wachtwoordloze SSH-authenticatie in te stellen, een gebruiker die is gedefinieerd op de externe machine.

Conclusie

In deze inleidende tutorial heb je geleerd hoe je kunt profiteren van door de community geleverde rollen en modules om de wachtwoordloze SSH-authenticatie op externe hosts te configureren met behulp van een Ansible-playbook.