Topologia sieci:
Tutaj linuxhint-711ea to maszyna Ubuntu 20.04 LTS, na której zainstaluję Ansible.
Następnie skonfiguruję hosty host1 (adres IP 192.168.20.162) i host2 (adres IP 192.168.20.153) dla automatyzacji Ansible i uruchamiaj na nich polecenia za pomocą Ansible z linuxhint-711ea maszyna.
po prostu zadzwonię host1 oraz host2 jako gospodarze Ansible w tym artykule.
Instalowanie Ansible:
Możesz łatwo zainstalować Ansible na Ubuntu 20.04 LTS z oficjalnego repozytorium pakietów Ubuntu.
Najpierw zaktualizuj pamięć podręczną repozytorium pakietów APT za pomocą następującego polecenia:
$sudotrafna aktualizacja
Pamięć podręczna repozytorium pakietów APT powinna zostać zaktualizowana.
Teraz zainstaluj Ansible za pomocą następującego polecenia:
$sudotrafnyzainstalowaćansiblAby potwierdzić instalację, naciśnij ORAZ a następnie naciśnij .
Należy zainstalować Ansible.
Teraz uruchom następujące polecenie, aby sprawdzić, czy ansible działa poprawnie.
$ansibl--wersjaJak widać, polecenie ansible jest dostępne i działa poprawnie.
Generowanie klucza SSH:
Teraz musisz wygenerować klucz SSH na komputerze, na którym zainstalowałeś Ansible.
Aby wygenerować klucz SSH, uruchom następujące polecenie:
$ssh-keygenTeraz naciśnij .
naciskać .
naciskać .
Należy wygenerować klucz SSH.
Konfigurowanie hostów Ubuntu do automatyzacji Ansible:
W tej sekcji pokażę, jak skonfigurować hosta Ubuntu ( host1 ) dla automatyki Ansible. Jeśli masz więcej niż jeden host, który chcesz zautomatyzować za pomocą Ansible, powtórz ten sam proces na każdym z hostów.
Hosty Ubuntu Ansible (które chcesz skonfigurować do automatyzacji Ansible) muszą mieć zainstalowany pakiet serwera SSH.
Najpierw zaktualizuj pamięć podręczną repozytorium pakietów APT za pomocą następującego polecenia:
$sudotrafna aktualizacjaNastępnie zainstaluj serwer OpenSSH za pomocą następującego polecenia:
$sudotrafnyzainstalowaćopensh-serwer-orazW moim przypadku pakiet serwera OpenSSH jest już zainstalowany. Jeśli nie jest zainstalowany w twoim przypadku, powinien zostać zainstalowany.
Teraz sprawdź, czy sshd usługa działa z następującym poleceniem:
$sudosystemctl status sshdJak widać, sshd usługa jest aktywny (bieganie) i włączony (uruchamia się automatycznie przy starcie systemu).
Jeśli sshd usługa nie jest aktywny (uruchomiony) w twoim przypadku uruchom go ręcznie za pomocą następującego polecenia:
$sudosystemctl uruchom sshdJeśli sshd usługa nie jest włączony (nie dodany do uruchamiania systemu) w Twoim przypadku dodaj go do uruchamiania systemu ręcznie za pomocą następującego polecenia:
$sudosystemowywłączyćsshdTeraz skonfiguruj zaporę, aby umożliwić dostęp SSH za pomocą następującego polecenia:
$sudoufw zezwólciszaPowinieneś także stworzyć ansibl użytkownika i zezwalaj na dostęp sudo bez hasła do ansibl użytkownik.
Aby stworzyć ansibl użytkownika, uruchom następujące polecenie:
$sudoadduser ansibleTeraz wpisz hasło dla ansibl użytkownik i naciśnij .
Teraz wpisz ponownie hasło i naciśnij .
Teraz naciśnij .
Teraz naciśnij .
Teraz naciśnij .
Teraz naciśnij .
Teraz naciśnij .
Teraz wpisz oraz a następnie naciśnij .
jakiś ansibl należy utworzyć użytkownika.
Teraz skonfiguruj dostęp sudo bez hasła do ansibl użytkownik za pomocą następującego polecenia:
$wyrzucił 'ansible ALL=(ALL) NOPASSWD:ALL' | sudo trójnik /itp/sudoers.d/ansiblTeraz znajdź adres IP hosta Ansible ( host1 ) za pomocą następującego polecenia:
$nazwa hosta -ITutaj adres IP w moim przypadku to 192.168.20.162 . Dla ciebie będzie inaczej. Więc pamiętaj, aby zastąpić go teraz swoim formularzem.
Teraz z komputera, na którym zainstalowałeś Ansible, skopiuj klucz publiczny SSH do hosta Ansible ( host1 ) w następujący sposób:
$ssh-copy-id ansible@192.168.20.162Wpisz tak i naciśnij .
Teraz wpisz hasło dla ansibl użytkownik i naciśnij .
Publiczny klucz SSH należy skopiować do host1 .
Teraz wyłącz logowanie oparte na hasłach dla ansibl użytkownik za pomocą następującego polecenia:
$sudomod użytkownika-TENansiblTeraz możesz tylko SSH do hosta Ansible ( host1 ) jak ansibl użytkownika bez hasła z komputera, z którego skopiowałeś klucz publiczny SSH (w tym przypadku komputera, na którym zainstalowałeś Ansible). Ale nie będziesz w stanie SSH do hosta Ansible ( host1 ) jak ansibl użytkownika z dowolnego innego komputera. Skonfigurowałem hosty Ansible w ten sposób ze względów bezpieczeństwa. Jako ansibl użytkownik nie potrzebuje hasła do uruchamiania poleceń administracyjnych, ryzykowne jest zezwolenie na logowanie oparte na hasłach dla ansibl użytkownik.
Teraz powinieneś być w stanie połączyć się przez SSH z hostem ansible host1 z komputera, na którym zainstalowałeś Ansible w następujący sposób:
$ciszaansibl@192.168.20.162Jak widzisz, mam dostęp do hosta Ansible ( host1 ) jako użytkownik ansible bez hasła. Tak więc host Ansible ( host1 ) jest gotowy do automatyzacji Ansible.
Jeśli z jakiegoś powodu chcesz zezwolić na logowanie oparte na hasłach dla ansibl ponownie, uruchom następujące polecenie na hoście Ansible ( host1 ):
$sudomod użytkownika-UansiblW ten sam sposób możesz skonfigurować dowolną liczbę hostów dla automatyzacji Ansible.
W tym artykule skonfigurowałem tylko 2 hosty, host1 oraz host2 do demonstracji.
Testowanie Ansible:
Teraz utwórz nowy katalog projektu ~/Ansible-demo/ na komputerze, na którym zainstalowałeś Ansible w następujący sposób:
$mkdir~/ansible-demoTeraz przejdź do ~/Ansible-demo/ katalog w następujący sposób:
$Płyta CD~/ansible-demo/Teraz utwórz nowy zastępy niebieskie plik w katalogu projektu w następujący sposób:
$nanozastępy niebieskieTeraz wpisz adresy IP lub nazwy DNS hostów Ansible ( host1 oraz host2 w moim przypadku) w zastępy niebieskie plik w następujący sposób:
192.168.20.162192.168.20.153
Teraz zapisz plik, naciskając + X śledzony przez ORAZ i wtedy .
Teraz spróbuj pingować wszystkie hosty za pomocą Ansible w następujący sposób:
$ansibl wszystko-i./zastępy niebieskie-uansibl-m świstNOTATKA: Tutaj opcja -u służy do określenia nazwy użytkownika (w tym przypadku ansible), której Ansible użyje do SSH do hostów.
Jak widać, wszystkie hosty można pingować. Tak więc hosty są gotowe do automatyzacji Ansible.
W ten sam sposób możesz uruchomić dowolne polecenie na hostach za pomocą Ansible w następujący sposób:
$ansibl wszystko-i./zastępy niebieskie-uansibl-mpowłoka-do 'echo '$(nazwa hosta) - $(nazwa hosta -I)''Jak widać, polecenie przebiegło pomyślnie na każdym z hostów i wyświetlone zostaną dane wyjściowe.
W ten sposób instalujesz Ansible na Ubuntu 20.04 LTS i konfigurujesz hosty Ubuntu 20.04 LTS do automatyzacji Ansible. Dziękuję za przeczytanie tego artykułu.