Pierwsze logowania i zmiana hasła za pomocą Ansible i modułu expect

Ostatnio realizowałem szkolenie, w którym dość często musiałem reinstalować system operacyjny Linux na maszynach wirtualnych. Sama reinstalacja systemu i jego późniejsza konfiguracja nie sprawiały mi żadnego problemu. Mam przygotowane playbooki Ansible, które konfigurują system, instalują odpowiednie pakiety i wgrywają ich konfigurację. Problem pojawiał się z jednym krokiem – pierwszym logowaniem i wymuszoną zmianą hasła. Na szczęście w Ansible jest moduł expect.

Moduł expect

W dystrybucji Ubuntu SSH jest domyślnie aktywne. Oznacza to, że po instalacji systemu możemy zalogować się na konto użytkownika ubuntu poprzez SSH. Pierwsze logowanie wymusza jednak zmianę hasła. Tak jak w przypadku wywołania komendy passwd musimy wprowadzić stare hasło oraz dwa razy nowe. Tego kroku nie przeskoczymy – jeżeli nie zmienimy hasła to nie zostaniemy zalogowani i nie uzyskamy dostępu do shella.

Zmianę hasła możemy też zaprogramować. Z pomocą przychodzi nam moduł expect.  Za jego pomocą wywołamy dowolne polecenie powłoki. Moduł następnie będzie analizował to, co wywołany program wypisuje na konsoli. Jeżeli znajdzie podany przez nas wzorzec, to wprowadza na konsoli wskazany przez nas ciąg znaków. W ten sposób wyręcza nas we wprowadzaniu danych.

Z wykorzystaniem modułu expect stworzyłem proste zadanie do playbooka Ansible, które wykorzystuję do zmiany hasła w trakcie pierwszego logowania.

---
- name: Change password on initial login
  delegate_to: 127.0.0.1
  become: no
  expect:
    command: ssh -o "UserKnownHostsFile /dev/null" -o "StrictHostKeyChecking no" {{ ansible_ssh_common_args }} ubuntu@{{ inventory_hostname }}
    timeout: 20
    responses:
      password: "{{ default_password }}"
      Current password: "{{ default_password }}"
      New password: "{{ temporary_password }}"
      new password: "{{ temporary_password }}"
      "\\~\\]\\$": exit
  register: status

E-BOOK

Zaczynasz swój pierwszy projekt związany z automatyzacją?

Ten e-book jest dla Ciebie! Zawiera sprawdzone podejście, które realizowałem w wielu projektach. Sprawdź co możesz zrobić, by odnieść sukces!


Subskrybuj
Powiadom o
guest

Ta strona używa Akismet do redukcji spamu. Dowiedz się, w jaki sposób przetwarzane są dane Twoich komentarzy.

0 Komentarze
Najstarsze
Najnowsze Najwięcej głosów
Opinie w linii
Zobacz wszystkie komentarze

ZdradziĆ Ci sekretY udanego projektu automatyzacji?

(link otwiera się w nowym oknie)