Autoryzowany_key w ansible

Autoryzowany_key w ansible

W tym samouczku dowiemy się o jednym z ważnych modułów Ansible, który jest autoryzowany. Dowiemy się, w jaki sposób przesyłamy klucz do deszyfrowania SSH, który jest przechowywany w pliku ekwipunku do hostów zdalnych w Ansible.

Aby wykonać zadania w Ansible Playbook na odległych zdalnych urządzeniach hosta, musimy albo usunąć poświadczenia ze połączenia SSH ze zdalnym hostem, albo możemy dostarczyć poświadczenia i klucze do uwierzytelnienia w miarę wykonywania podręcznika. W Ansible mamy dwa różne klucze, które są kluczem publicznym i kluczem prywatnym znanym jako para klucza SSH. Aby nawiązać połączenie z docelowymi zdalnymi hostami, musimy wymienić z nimi nasz publiczny klucz SSH, jednocześnie zachowując prywatny klucz SSH na lokalnych maszynach. OpenSSH jest domyślnym mechanizmem łączności w narzędziu Ansible. Ansible zakłada, że ​​łączymy się z docelowymi zdalnymi hostami za pomocą klawiszy SSH.

Różne kroki połączenia SSH za pomocą kluczy w Ansible

Poniżej znajdują się kroki, których zamierzamy użyć do zbudowania połączenia SSH między kontrolerem Ansible a hostami zdalnymi, wykorzystując klucz publiczny i klucz prywatny:

Krok 1: Zrób parę kluczy, generując klucze prywatne i publiczne z odpowiednimi nazwami, id, RSA i pubem.

Krok 2: Jeśli nic nie określamy, Ansible jest automatycznie produkowana w ramach /.Folder SSH.

Krok 3: Wklejając pub kluczy publicznych na końcu dokumentu /.SSH/autoryzowane klawisze, możesz przekazywać go do odległych zdalnych hostów.

Krok 4: Połącz się przez SSH z docelowym zdalnym hostem. Następnie potwierdź żądanie dodania odcisków palców hostów docelowych do /.Dokument SSH/znany hosty. Jeśli nie przestrzegasz tego, oprogramowanie poprosi o określenie hasła za każdym razem, gdy inicjowane jest połączenie SSH.

Wymagania wstępne ansible autoryzacja_key

Zakładamy, że masz serwer sterowania Ansible z zainstalowaną ansible, a także docelowymi zdalne hosty do konstruowania połączenia SSH między wszystkimi modułami ansible.

Wejdźmy, aby wyjaśnić więcej aspektów, wdrażając prosty przykład klucza autoryzacji w Ansible, ustanawiając połączenie SSH za pomocą kluczy publicznych i prywatnych.

Przykład:

Oto pierwszy przykład, który zamierzamy zaimplementować w Ansible za pomocą modułu autoryzacji_key. Aby zbudować połączenie, potrzebujemy podręcznika, w którym piszemy hosty i zadania, aby ustalić połączenie między serwerem kontroli Ansible a docelowymi hostami zdalnymi. Do utworzenia podręcznika w narzędziu Ansible służy następującego polecenia:

[root@master ansible]# nano autoryzacja_key_1.yml

Po napisaniu podanego polecenia, podręcznik jest tworzony i otwierany. Teraz najpierw podajemy zdalne hosty, z którymi chcemy zbudować połączenie SSH, które jest „wszystkim” docelowym hostami zdalnym. Następnie używamy parametru „Zebraj_Facts” narzędzia Ansible. Argument Gather_Fact służy do wywołania modułu konfiguracji Ansible. W tej sytuacji nie chcemy zbierać faktów, więc podajemy „fałszywe” wartość argumentowi „Zebraj_facts”, ponieważ fakty są domyślnie gromadzone w Ansible.

Następnie wymieniamy zadania w podręczniku, które chcemy wykonać. Piszemy „nazwę” zadania, które jest „zbieraniem faktów”. Następnie piszemy moduł konfiguracyjny i „zgromadzenie_subset”, ponieważ chcemy zebrać niektóre informacje związane z zarządzaniem zdalnymi hostami zamiast uzyskać wszystkie informacje wszystkich zdalnych hostów. Używamy innej zmiennej Ansible, która jest zmienną „rejestr”, która zachowuje wyniki zadań podręcznika i wykorzystuje je do kolejnych zadań.

Teraz chcemy wydrukować nazwę zdalnych urządzeń hosta, dlatego ponownie używamy zmiennej „Nazwa”. Następnie debugujemy zadania. Jeśli zadanie zostanie zakończone, wyświetla dane wyjściowe z powiązanym komunikatem. Poniżej znajdują się pełne zadania autoryzacji_key_1.Piłka YML:

- zastępy niebieskie:
- Wszystko
GACED_FAFTS: FAŁSZ
Zadania:
- Imię: Zbierz fakty
organizować coś:
Zebraj_subset:
- 'Wszystko'
Zarejestruj się: Zebranie_fact_data
- Nazwa: Nazwa hosta komputera Target Drukuj
odpluskwić:
msg: "gain_fact_data.ansible_facts.ansible_hostname "

Następnie używamy przycisków Ctrl+X, aby zakończyć podręcznik. Informacje o ukierunkowanym zdalnym hostie1 są następnie zapisywane do pliku ekwipunku poprzez utworzenie pliku. Piszemy następujące polecenie, aby wygenerować ekwipunek:

[root@master ansible]# nano host.yml

W gospodarze.plik zapasowy YML, podajemy informacje hosta, podając podstawowe informacje, takie jak adres IP ansible, nazwa użytkownika, nazwa połączenia, numer portu hosta ansible itp.

Wszystko:
zastępy niebieskie:
Host1:
ansible_host: 192.168.7.10
ansible_user: Iris
ansible_connection: ssh
ansible_port: 22

Zamknij gospodarza.plik zapasowy YML. Teraz, gdy gospodarz.plik YML jest aktualizowany, wykonujemy podręcznik Ansible, aby sprawdzić, czy połączenie zostało wykonane, czy nie. Piszemy następujące polecenie:

[root@master ansible]# ansible-playbook autoryzowany_key_1.YML -i Host.yml

Po wykonaniu poprzedniego polecenia otrzymujemy następujący wynik. Jak widać, otrzymujemy błąd, który mówi, że nie powiązał się z hostem za pośrednictwem połączenia SSH i jest nieosiągalny. To dlatego, że nie dostarczyliśmy pary klucza SSH do kontrolera Ansible.

Wykonujemy następujące polecenie, aby nadać kontrolerowi parę klucza SSH:

[root@master ansible]# ssh -keygen -q -t rsa

Oto dane wyjścia z poprzednim polecenie:

Po prostu uderzamy Enter. Następnie pokazuje dwa pliki root z klawiszami SSH w wyjściu:

Teraz tworzymy kolejny podręcznik dla serwera kontrolnego Ansible i ustawiamy połączenie SSH serwera kontrolera. Aby stworzyć kolejny podręcznik, piszemy następujące polecenie „Nano”:

[root@master ansible]# nano autoryzowane_key_2.yml

Po wygenerowaniu innego podręcznika wymieniamy teraz hosty, a następnie używamy modułu autoryzowanego Ansible. W tym module najpierw piszemy nazwisko hosta i stan użytkownika. Następnie przekazujemy plik klucza publicznego wyprodukowanego urządzenia kontrolera, który niedawno wygenerowaliśmy do docelowego zdalnego hosta.

- zastępy niebieskie:
- Wszystko
GACED_FAFTS: FAŁSZ
Zadania:
- Nazwa: Dodaj klucz publiczny do autoryzowanych_keysów za pomocą modułu ansible
autoryzowany_key:
Użytkownik: IRIS
Stan: obecny
Klucz: 'item'
Z_FILE:
- ~/.ssh/id_rsa.pub

Użyj następującego polecenia, aby uruchomić autoryzowany_key_2.Piłok YML wraz z gospodarzem.plik zapasowy YML i plik klucza prywatnego:

[root@master ansible]# ansible-playbook autoryzowany_key_2.YML -i Host.YML-PRIVATE-KEY /TMP /Host.pem

Następujące dane wyjściowe jest wynikiem uruchamiania wspomnianego podręcznika z plikiem ekwipunku:

Jak widać z podanego przykładu, z powodzeniem zaimplementowaliśmy drugi podręcznik, który jest autoryzowanym_key_2. Teraz, gdy mamy ustalone połączenie między kontrolerem a zdalnym hostem, sprawdźmy, uruchamiając jeden podręcznik, który jest autoryzowanym podręcznikiem_key_1 i sprawdź, czy jest wykonywany, czy nie:

[root@master ansible]# ansible-playbook autoryzowany_key_1.YML -i Host.yml

Oto dane wyjściowe poprzedniego polecenia, które jest pomyślnie wykonywane:

Wniosek

Nauczyliśmy się, jak podłączyć kontroler do zdalnych hostów za pomocą modułu Klucza autoryzacji Ansible. Opracowaliśmy przykład z dokładnym opisem, aby podstawowe podejście modułu autoryzacji było proste do zrozumienia.