Topologia sieci
Tutaj, ansible-PC to maszyna z Debianem 10, na której zainstalujemy Ansible.
Serwery 6f7c2 i 6b219 to maszyny Debian 10, które skonfigurujemy pod kątem automatyzacji Ansible. Na potrzeby tego artykułu będę po prostu nazywał te serwery hostami Ansible.
Z Ansible możemy korzystać od ansible-PC zautomatyzować różne zadania w 6f7c2 i 6b219 Serwery Debiana.
Instalowanie Ansible
W tej sekcji pokażę, jak zainstalować Ansible na ansible-PC.
Możesz zainstalować Ansible na Debianie 10 z oficjalnego repozytorium pakietów Debiana.
Najpierw zaktualizuj pamięć podręczną repozytorium pakietów APT za pomocą następującego polecenia:
$ sudo apt aktualizacja
Teraz zainstaluj Ansible za pomocą następującego polecenia:
$ sudo apt install ansible
Aby potwierdzić instalację, naciśnij Tak a następnie naciśnij
Należy zainstalować ansible.
Teraz uruchom następujące polecenie, aby sprawdzić, czy Ansible działa poprawnie.
$ ansible --wersjaJak widać, polecenie ansible jest dostępne i działa poprawnie. Ansibl 2.7.7 to najnowsza wersja Ansible dostępna w repozytorium pakietów Debiana w momencie pisania tego artykułu.
Generowanie klucza SSH
Na komputerze z Debianem 10 (ansible-PC) gdzie zainstalowałeś Ansible, musisz najpierw wygenerować klucz SSH.
Aby wygenerować klucz SSH, uruchom następujące polecenie:
$ ssh-keygen
Teraz naciśnij
naciśnij
naciśnij
Należy wygenerować klucz SSH.
Konfigurowanie hostów Debiana pod kątem automatyzacji Ansible
W tej sekcji pokażę, jak skonfigurować hosta Debiana do automatyzacji Ansible. Jeśli masz wiele hostów, które chcesz zautomatyzować za pomocą Ansible, powtórz ten sam proces dla każdego z hostów.
Hosty, które chcesz skonfigurować dla automatyzacji Ansible, muszą mieć wstępnie zainstalowany pakiet serwera SSH.
Najpierw zaktualizuj pamięć podręczną repozytorium pakietów APT za pomocą następującego polecenia:
$ sudo apt aktualizacja
Następnie zainstaluj serwer OpenSSH za pomocą następującego polecenia:
$ sudo apt install openssh-server -y
W moim przypadku pakiet serwera OpenSSH jest już zainstalowany. Jeśli nie jest zainstalowany w twoim przypadku, powinien zostać zainstalowany przed tym krokiem.
Teraz sprawdź, czy sshd usługa jest uruchamiana za pomocą następującego polecenia:
$ sudo systemctl status sshdJak widać, sshd usługa jest aktywny (bieganie) i włączone (uruchamia się automatycznie przy starcie systemu).
Jeśli sshd usługa jest nieaktywny (uruchomiony), uruchom go ręcznie za pomocą następującego polecenia:
$ sudo systemctl start sshd
Jeśli sshd usługa nie jest włączone (nie dodany do startu systemu) w twoim przypadku dodaj go do startu systemu ręcznie za pomocą następującego polecenia:
$ sudo systemctl włącz sshd
Teraz utwórz ansibl użytkownika i zezwól na dostęp sudo bez hasła do ansibl użytkownik.
Aby stworzyć ansibl użytkownika, uruchom następujące polecenie:
$ sudo adduser --shell /bin/bash --gecos "" ansible
Wpisz hasło dla ansibl użytkownik i naciśnij
Wpisz ponownie hasło i naciśnij
Na ansibl należy utworzyć użytkownika.
Teraz, aby umożliwić dostęp sudo bez hasła do ansibl użytkownik, edytuj /etc/sudoers plik za pomocą następującego polecenia:
$ sudo visudo
Teraz dodaj następującą linię do /etc/sudoers plik.
ansible ALL=(ALL) NOPASSWD:ALLNastępnie zapisz plik, naciskając
Teraz znajdź adres IP hosta Ansible 6f7c2 za pomocą następującego polecenia:
$ nazwa hosta -ITutaj adres IP w moim przypadku to 192.168.20.167. Dla ciebie będzie inaczej. Więc pamiętaj, aby teraz zastąpić ten adres własnym formularzem.
Kopiowanie klucza publicznego SSH do hosta Ansible
Z komputera, na którym zainstalowałeś Ansible (ansible-PC), skopiuj klucz publiczny SSH do hosta Ansible 6f7c2 następująco:
$ ssh-copy-id [email protected]
Wpisz tak i naciśnij
Następnie wpisz hasło dla ansibl użytkownik i naciśnij
Publiczny klucz SSH należy skopiować do hosta Ansible 6f7c2.
Powinieneś być w stanie połączyć się przez SSH z hostem Ansible 6f7c2 jako użytkownik ansibl bez hasła, jak widać na poniższym zrzucie ekranu:
$ ssh [email protected]
Powinieneś także móc uruchamiać polecenia sudo bez pytania o hasło.
$ sudo ls /
Na koniec zamknij sesję SSH w następujący sposób:
$ wyjdź
Zabezpieczanie hostów Ansible
Jako ansibl użytkownik może uruchomić dowolne polecenie sudo bez pytania o hasło, skonfigurowaliśmy logowanie oparte na kluczu SSH dla hostów Ansible. Ale nadal możesz SSH do hostów Ansible jakos ansibl użytkownik używający hasła użytkownika of ansibl użytkownik. Więc to nie jest zbyt bezpieczne.
Aby poprawić bezpieczeństwo, uruchom następujące polecenie na hostach Ansible, aby wyłączyć logowanie oparte na hasłach dla ansibl użytkownik:
$ sudo usermod -L ansible
Jeśli później zdecydujesz się włączyć logowanie oparte na hasłach dla ansibl użytkownika, uruchom następujące polecenie na hoście Ansible:
$ sudo usermod -U ansibleTestowanie Ansible
Utwórz nowy katalog projektów ~/projekt/ na maszynie Debian, na której zainstalowałeś Ansible (ansible-PC) za pomocą kodu:
$ mkdir ~/projekt
Przejdź do to ~/projekt/ katalog używając następującego kodu:
$ cd ~/projekt/
Stwórz nowy zastępy niebieskie plik w katalogu projektu w następujący sposób:
$nano hosty
Teraz wypisz adresy IP lub nazwy DNS hostów Ansible (6f7c2 i 6b219 w moim przypadku) w zastępy niebieskie plik:
192.168.20.167192.168.20.168
Gdy skończysz, zapisz plik, naciskając
Aby przetestować, spróbuj pingować wszystkie hosty za pomocą Ansible z następującym kodem:
$ ansible -i ./hosts all -u ansible -m pingUWAGA: Tutaj -ty opcja służy do określenia nazwy użytkownika (ansibl w tym przypadku), których Ansible użyje do SSH do hostów.
Jak widać, Ansible ma dostęp do wszystkich hostów. Tak więc hosty są gotowe na automatyzację Ansible.
Tak więc instalujesz Ansible na Debianie 10 i konfigurujesz hosty Debiana do automatyzacji Ansible. Dziękuję za przeczytanie tego artykułu.