Ansible Ssh-Copy-Id

Ansible Ssh Copy Id



Ang Ansible ay isang libre at open-source na automation tool na pinapasimple ang pamamahala ng configuration at pag-deploy ng application sa maraming machine.

Ginagamit ng Ansible ang deklaratibong wika upang ilarawan ang nais na estado ng mga system at awtomatikong pinangangasiwaan ang mga gawaing kinakailangan upang makamit ang estadong iyon.

Ginagamit ng Ansible ang SSH bilang default na paraan ng koneksyon upang kumonekta sa isang target na makina. Nagbibigay ang SSH ng secure at naka-encrypt na channel ng komunikasyon sa pagitan ng Ansible control node at ng mga target na host.







Karaniwan, ang pinakakaraniwang paraan ng pag-configure ng SSH key-based na authentication para sa target na host ay ang ssh-copy-id command. Kinokopya ng command ang pampublikong key ng control node sa 'authorized_keys' na file sa target na host.



Gayunpaman, kapag nag-configure ng system sa unang pagkakataon, maaaring kailanganin mong gawin ito ng Ansible sa isang playbook. Dito sumagip ang komunidad ng Ansible.



Sa komunidad ng Ansible, mayroon kaming access sa ssh_id_copy na tungkulin na nagbibigay-daan sa amin na pahintulutan ang mga system para sa walang password na pagpapatunay ng SSH.





Pinangangasiwaan ng papel na ito ang pag-setup ng mga SSH key sa remote na makina na nagbibigay-daan sa amin na gumawa ng Ansible na file ng imbentaryo gamit ang remote na makina. Pagkatapos ay maaari naming mabilis na tawagan ang anumang Ansible playbook laban sa remote na makina.

Ansible Ssh_Copy_Id Role

Ang tungkulin ay may mga variable na nagbibigay-daan sa Ansible na i-configure ang mga SSH key sa remote host. Kabilang sa mga naturang variable ang:



Hostname – Tinutukoy nito ang malayuang sistema upang kumonekta sa (FQDN o IP).

Username – Tinutukoy nito ang username upang kumonekta sa remote system.

Password – Tinutukoy nito ang password ng username para kumonekta sa remote system.

ssh_public_key – Tinutukoy nito ang absolute path sa public key file para i-configure sa remote host.

Port – Tinutukoy nito ang SSH port.

Pag-install ng Ssh_Copy_Id Role

MAG-INGAT: Hindi namin maibibigay ang bisa at seguridad ng mga tungkulin at module na hinihimok ng komunidad. Mangyaring i-audit at i-verify ang mga gawain ng isang tungkulin/module bago ito gamitin sa produksyon at sa mga tunay na makina. Walang seguridad ang garantisadong kapag nagtatrabaho sa mga hakbang na nakabalangkas sa post na ito.

Gaya ng nabanggit, ang ssh_copy_id ay isang tungkuling ibinigay ng komunidad na ibinigay ni Ryan. Ang link sa repository ay ibinigay tulad ng sumusunod:

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

Bago natin ito magamit, kailangan nating tiyakin na ito ay naka-install sa pamamagitan ng pagpapatakbo ng sumusunod na command:

$ ansible-galaxy i-install rywillia.ssh-copy-id

Halimbawa ng Paggamit

Kapag na-install na, maaari naming gamitin ang papel sa isang playbook gaya ng ipinapakita sa sumusunod:

---
- pangalan
: i-configure ang passwordless ssh authentication sa isang remote na makina
mga host
: localhost
maging
: oo
mga tungkulin
:
- tungkulin
: ryankwilliams.ssh_copy_id
kaninong
:
hostname
: 172.168.112.23
username
: ubuntu
password
: password
ssh_public_key
: /home/debian12/.ssh/id_rsa.pub
ssh_port
: 22

Ang nakaraang halimbawang playbook ay nagpapakita kung paano gamitin ang tungkulin upang i-set up ang walang password na pagpapatunay ng SSH, isang user na tinukoy sa remote na makina.

Konklusyon

Sa panimulang tutorial na ito, natutunan mo kung paano mo masusulit ang mga tungkulin at module na ibinigay ng komunidad para i-configure ang walang password na pagpapatotoo ng SSH sa mga malalayong host gamit ang Ansible playbook.