Jak używać tagów w Ansible

Jak używać tagów w Ansible

Play, role i zadania są strukturą Ansible, a ta nieobliczalna struktura zawiera ważny atrybut, który nazywa się znacznikami w Ansible. Ilekroć uruchamiamy podręcznik w Ansible, możesz zastosować polecenia -TAGS i -KIP. Jeśli mamy podręcznik, który zawiera tak wiele zadań, ale nie chcemy wykonywać wszystkich zadań z podręcznika, zamiast wykonywać cały podręcznik, po prostu przeprowadzimy kilka zadań, używając polecenia tag w Playbook Ansible Playbook.

W tym temacie omówimy znaczniki, które służą jako jeden z najważniejszych aspektów Ansible. Postaramy się wyjaśnić, jakie są tagi i jak działają tagi w Ansible, ponieważ jest to kłopotliwa funkcja platformy Ansible.

Na przykład podręcznik może zawierać trzy obowiązki: instalowanie modułu, konfiguracja go i sprawdzanie statusu wdrożonego modułu, na przykład, czy usługa jest uruchomiona i dostępna. Ponieważ musimy po prostu zobaczyć stan modułów na kilku zdalnych maszynach, używamy w tej sytuacji. Umożliwia nam wyłączenie określonej operacji, pozwalając nam skrócić czas trwania, utrzymując wszystkie powiązane działania w jednym podręczniku.

Wymagania wstępne wykorzystania tagów w Ansible Playbook

Aby umieścić praktyczne przykłady w oprogramowaniu Ansible, musimy spełnić następujące wymagania.

Musi być wymagany serwer kontrolujący ansible, aby wprowadził zmiany. Aby wykorzystać parametr znacznika w oprogramowaniu Ansible, potrzebujemy lokalnych hostów, aby się z nimi komunikować. W takim przypadku używamy lokalnego hosta podczas wykonywania jako docelowy serwer zdalny. Utworzymy podręczniki, wykonamy polecenia ansible tag i monitorujemy wyniki na zdalnych hostach z urządzenia ansible-controller.

Będziemy starać się zastosować różne scenariusze do zbadania kilku tagów Ansible, aby uczeń mógł łatwo zrozumieć koncepcję tagów w Ansible Playbook.

Przykład 01: Dostęp do jednego zadania w Ansible Playbook

Zamierzamy zaimplementować w Ansible, dostarczając wiele zadań w podręczniku, a następnie uzyskamy dostęp tylko do jednego zadania, wykorzystując w nim znaczniki. Aby to zrobić, najpierw utworzymy podręcznik, pisząc następujące polecenie:

[root@master ansible]# nano ansible_tags.yml

Po utworzeniu i uruchomieniu ansible_tags.Playbook YML. Teraz zaczniemy pisać polecenia w podręczniku. Najpierw przekazamy dostarczone hosty w parametrze „hostów”, którego użyjemy „LocalHost”. Następnie napiszemy wartość „fałszywych” w parametrze „Zebraj_facty”, abyśmy nie mogli uzyskać dodatkowych informacji o hostu Local, kiedy wykonamy podręcznik.

Następnie zaczniemy wymieniać czynności w parametrze „zadań” jeden po drugim, który chcemy wykonać. Zdecydujemy, czy dokument jest dostępny na maszynie LocalHost w pierwszym procesie. Jeśli jest dostępny, przechowujemy go w parametrze „Zarejestruj się”, a następnie podamy unikalną nazwę tagu, aby po wykonaniu podręcznika będzie nam łatwo uzyskać dostęp do znacznika. W drugim zadaniu zrobimy to samo, co w pierwszym zadaniu, ale tag musi być wyjątkowy, a następnie użyjemy opcji debugowania, aby zaprezentować zadanie wraz z powiązaną wiadomość.

- zastępy niebieskie:
- Lokalny Gospodarz
GACED_FAFTS: FAŁSZ
Zadania:
- Nazwa: Sprawdź istnienie pliku x '
STAT: Path =./gospodarz.yml
Zarejestruj się: pliki
Tagi: check_file
- odpluskwić:
MSG: „'plik istnieje”, jeśli fileExists.Stat.istnieje w przeciwnym razie „nie znaleziono pliku” ”
Tagi: check_file
- Nazwa: Sprawdź, czy host.YML jest dostępny przez obecnego użytkownika
Shell: STAT -C „%A” ./gospodarz.yml
Zarejestruj się: AccessPath
Tagi: check_access
- odpluskwić:
MSG: "'plik dostępny' if (accessath.stdout | int) < 660 else 'File is not accessible' "
Tagi: check_access

Teraz zapiszymy podręcznik, a następnie zamkniemy go. Chcemy uruchomić ansible_tags.Playbook YML, abyśmy napisać następujące polecenie w terminalu Ansible, aby zaprezentować dane wyjściowe użytkownikom.

[root@master ansible]# ansible-playbook ansible_tags.YML -TAGS Check_file

Po uruchomieniu powyższego polecenia otrzymamy żądane wyjście w zamian. Jak pokazano poniżej, wykonywane jest tylko jedno zadanie, które jest wyświetlane na wyjściu, które jest „sprawdź istnienie pliku”.

Przykład 02: Zignoruj ​​konkretny tag w Ansible Playbook

Oto drugi przykład znacznika Ansible, w którym idziemy do znacznika „Skip”. Od ciebie zależy, czy chcesz zignorować wszystkie zadania, czy też chcesz zignorować określone zadanie podręcznika w Ansible. Korzystamy z implementacji przykładu 1, a następnie po prostu pominiemy zadanie, po prostu pisząc poniższe stwierdzenie w terminalu Ansible.

[root@master ansible]# ansible-playbook ansible_tags.yml-Skip-Tags Check_file

Z powyższego polecenia po prostu zignorowaliśmy zadanie „sprawdź plik istnienia pliku”. Teraz w wyjściu wyświetlane jest tylko jedno zadanie, które jest „plik dostępny” w zielonej czcionce.

Przykład 03: Zawsze uruchamiaj zadanie w Ansible Playbook

Zamierzamy zaimplementować trzeci przykład na podstawie znacznika Ansible. W tym przykładzie użyjemy znacznika „zawsze”, co oznacza, że ​​dany tag zawsze będzie wykonywał w Ansible Playbook. Aby uruchomić podręcznik, użyj następującego polecenia:

[root@master ansible]# nano ansible_tags.yml

W podręczniku stworzyliśmy wiele zadań do uruchomienia, ale przeszliśmy tag „zawsze” w ostatnim zadaniu, którym jest „usuń hasło z zapasów”. Poniżej przedstawiono polecenie zaimplementowane w podręczniku:

- Gospodarze: Wszyscy
GACED_FAFTS: FAŁSZ
Zadania:
- Nazwa: Sprawdź istnienie pliku
STAT: Path =./gospodarz.yml
Zarejestruj się: pliki
deleGate_to: LocalHost
Tagi: check_file
- odpluskwić:
MSG: „'plik istnieje”, jeśli fileExists.Stat.istnieje w przeciwnym razie „nie znaleziono pliku” ”
Tagi: check_file
- Nazwa: Sprawdź, czy host.YML jest dostępny przez obecnego użytkownika
Shell: STAT -C „%A” ./gospodarz.yml
Zarejestruj się: AccessPath
deleGate_to: LocalHost
Tagi: check_access
- odpluskwić:
MSG: "'plik dostępny' if (accessath.stdout | int) < 660 else 'File is not accessible' "
Tagi: check_access
- Nazwa: Usuń hasło z zapasów
lineinfile:
Ścieżka: "Inventory_file"
Regexp: '\ b item.*\B'
Stan: nieobecny
deleGate_to: LocalHost
stać się: fałszywy
Tagi: Zawsze
Z_ITEMS:
- ansible_password

Następnie utworzymy plik zapasów, aby zbudować połączenie między kontrolerem a docelowym hostem zdalnym. Poniżej jest polecenie:

[root@master ansible]# nano host.yml

Oto plik zapasowy zawierający informacje związane z „Linux_host” w Ansible.

Wszystko:
zastępy niebieskie:
Linux_host:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ******
ansible_connection: ssh
ansible_port: 22

Aby uzyskać pożądane dane wyjściowe, uruchomimy następujące polecenie w terminalu Ansible:

[root@master ansible]# ansible-playbook ansible_tags.yml - -tags check_file -i host.yml

Wniosek

Tagi w Ansible zostały wyjaśnione w tym artykule. Teraz rozumiemy funkcję tagów i miejsc w Ansible, gdzie je zastosujemy. Aby pomóc uczniowi zrozumieć pojęcie tagów Ansible, opracowaliśmy różne przykłady.