Generowanie klucza
Przed rozpoczęciem pracy z Ansible, należy na swoim komputerze wygenerować certyfikat za pomocą którego będziemy się łączyć z naszymi serwerami.
ssh-keygen -f ~/.ssh/ansible -t rsa -C ansible -b 4096
Musi też on mieć odpowiednie uprawnienia. Inaczej klucz nie zostanie wzięty pod uwagę przez ssh:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
Wdrażanie klucza na zewnętrznym serwerze
Nasz klucz możemy skopiować na zewnętrzny serwer po przez program ssh-copy-id:
ssh-copy-id -i ~/.ssh/ansible.pub ansible@10.0.0.1
Następnie celem sprawdzenia poprawności wykonania się polecenia możemy wykonać próbę logowania:
ssh -i ~/.ssh/ansible.pub ansible@10.0.0.1
Następnie po zalogowaniu się na zewnętrzny serwer, możemy wykonać poniższe polecenia (dla ułatwienia kopiowania, zapisałem go w formie kopiuj-wklej do konsoli ssh):
# Dodanie użytkownika ansible
adduser ansible
# Usunięcie mu hasła
passwd -d ansible
# Dodanie możliwości by wykonywał polecenia z poziomu sudo, bez hasła
cat << EOF >/etc/sudoers.d/ansible
ansible ALL = (ALL) NOPASSWD:ALL
EOF
chmod 0440 /etc/sudoers.d/ansible
Bonus
Przy posiadaniu wielu serwerów, ciągłe logowanie po przez ssh-copy-id, może być męczące. Poniżej przestawiam metodę, która pozwoli na wklejanie kluczy na zasadzie kopiuj-wklej.
Metoda da korzysta z jednego klucza (co jest bardzo niebezpieczne i nie zalecane), lecz dzięki niej możemy za pomocą Ansible dostać się na maszyny. Po czym możemy zmienić klucze za pomocą naszych playbooków na bardziej bezpieczne, przy założeniu jeden klucz na jedną maszynę.
# Logujemy się jako użytkownik ansible:
su ansible
# Tworzymy na nim nasz folder do logowania się:
mkdir -p /home/ansible/.ssh
# Wklejamy zawartość pliku ~/.ssh/ansible z naszego komputera:
cat << EOF >/home/ansible/.ssh/authorized_keys
ssh-rsa <tu_bedzie__wartosc pliku_ssh_ansible> ansible
EOF
# Ustawiamy odpowiednie uprawnienia:
chmod 700 /home/ansible/.ssh
chmod 600 /home/ansible/.ssh/authorized_keys
chown ansible:ansible /home/ansible/.ssh -R
*Czasami wymagane jest róznież zezwolenie na logowanie się po przez ssh, w pliku /etc/sshd/sshd.conf, dodając wpis do AllowUsers. Oczywiście taka zmiana, wymaga zrestartowania usługi.
Komentarze