Tema
Kako koristiti private (secret) i public keys za upravljanje Ansibleom.
Postupak – tl;dr
- kreiraj ključeve (key pair)
- npr. :
ssh-keygen -q -b 2048 -t rsa -N "" -f /etc/ansible/id_rsa
- kreirat će “
id_rsa” (secret) i “id_rsa.pub” (logično – public)
- možeš i ne moraš staviti lozinku, ovisno o razini osjetljivosti servera, tvojoj paranoji, želju da koristiš skripte, …
- privatni ključ (secret key) neka bude npr. u datoteci
/etc/ansible/ansiblekljuc
sudo chmod 600 /etc/ansible/ansiblekljuc
- javni ključ (public key; datoteku
ansiblekljuc.pub koju je kreirao ssh_keygen) kopiraj na svaki server kojime želiš upravljati
- dodaj ga u datoteku (po potrebi ju kreiraj) korisnicima koje koristiš s Ansiblesanom
~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
- npr. to bi bilo:
/home/mirko/.ssh/authorized_keys
/root/.ssh/authorized_keys
- editiraj
/etc/ansible/hosts
- za svaku grupu računala dodaj stavku
ansible_ssh_private_key_file : /etc/ansible/ansiblekljuc
- npr. za YAML oblik:
grp_vamo:
vars:
ansible_ssh_private_key_file : /etc/ansible/ansiblekljuc
hosts:
mirkopc:
ansible_port: 22
ansible_host: 192.168.1.11
ansible_user: korisnik
# ovo možeš kREMirati ... ansible_password: user123
|
- A ako koristiš .INI oblik datoteke /etc/ansible/hosts:
-
[grp_vamo]
192.168.1.11
mirkopc ansible_port=22 ansible_host=192.168.1.11 ansible_user=korisnik
[grp_vamo:vars]
ansible_ssh_private_key_file=/etc/ansible/ansiblekljuc
#
|
- prije uporabe spoji se SSH-om na svaki remote server da uđe u
known_hosts
ssh mirko@mirkopc -p 22
- kad te pita za fingerprint ne misli na pornhub nego odgovori “yes” i stavit će mašinu u
known_hosts
- nakon toga isprobaj
ansible <%ComputerName%> -m ping
ansible <%ComputerName%> -a "whoami"
ansible <%ComputerName%> -a "whatisthepurposeoflife"
ssh -v mirko@<%ComputerName%> -p 22 -i /etc/ansible/private-public-keys/ansiblePrivateKey
|
To bi bilo kao to, jelte.
Razno
- Na žalost, s nekim mašinama mi to nije uspjelo. Zašto? Ne znam. Još uvijek sam premali da bih to znao. U takvim slučajevima sam jednostavno koristio
ansible_password: user123 u datoteci /etc/ansible/hosts za te mašine dok ne naučim
- Javni ključ (public key,
ansiblekljuc.pub) koji treba zakeljiti u authorized_keys izgleda ovako nekako:
ssh-rsa ovdjesadaidegomilanečegablabla== root@glavnipc |
Slike
…
Video
…
ansible xansible ssh xssh private key privatekey xprivate xkey public key publickey xpublic secret xsecret šekret nije pornhub ansiblesan