Creating You’re Own Ansible Modules

Vince Sesto

Follow

Mar 20, 2019 – 4 min read

Customising Ansible For Your Needs Is So Easy

.

Każdego dnia liczba modułów Ansible stale rośnie, a dodatkowa pomoc jest dodawana w miarę dalszego używania aplikacji. Dlaczego więc miałbyś tworzyć własne moduły Ansible. Cóż, jest wiele powodów, ale myślę, że najważniejszym z nich jest to, że możesz zrozumieć, jak działają te moduły. Nawet jeśli ta nowo znaleziona umiejętność może nie pojawić się zbyt często, istnieje większe prawdopodobieństwo, że będziesz musiał rozwiązywać błędy lub problemy z istniejącymi modułami Ansible, więc wiedza o tym, jak wszystko działa, może być cenną umiejętnością.

Musisz również pamiętać, że istnieje wiele starszych aplikacji lub aplikacji wewnętrznych, z których Twoja organizacja może korzystać, a które nie mają własnych modułów. Istnieją inne opcje wdrażania tych aplikacji za pomocą Ansible i dostarczania szablonów do ich konfigurowania, ale być może łatwiej będzie stworzyć własny moduł dla tych aplikacji. Tak czy inaczej, poniższy dokument dostarczy ci szczegółów, które pozwolą ci zacząć i mam nadzieję, że będziesz mógł je dalej rozszerzać.

Jeśli szukasz świetnego sposobu, aby dowiedzieć się więcej o Ansible, przejdź do naszej najnowszej książki, Ansible Answers

To jest dość podstawowy przykład, ale mam nadzieję, że zobaczysz, że wszystko, czego potrzebujesz, to odrobina znajomości Pythona, połączona z umiejętnościami Ansible i będziesz mógł zacząć tworzyć własne moduły Ansible…Nie martw się, jeśli twoja wiedza jest trochę niewystarczająca, wszystko zostanie wyjaśnione, gdy przejdziemy przez to razem.

Zajmiemy się tylko podstawowym modułem „Hello World”, aby pokazać, jakie to proste. Ten post nie będzie dotyczył instalacji i podstaw Ansible, więc nie krępuj się sprawdzić naszych poprzednich postów po więcej szczegółów.

1.Zacznij od dostępu do swojego środowiska pracy, które ma już zainstalowane Ansible. W katalogu, w którym pracujesz, utwórz katalog biblioteki:

mkdir library

2.W katalogu biblioteki utwórz nowy plik modułu o nazwie hello_module.py:

touch library/hello_module.py

3. Za pomocą swojego ulubionego edytora tekstu, otwórz nowy plik i dodaj następujący kod (numery po lewej stronie są tylko dla odniesienia i nie powinny być dodawane do pliku):

Nie ma tu nic zbyt skomplikowanego, ale jeśli nie jesteś zaznajomiony z Pythonem, oto podział każdej z linii. Linia 1 określa, że musi używać lokalnie zainstalowanej wersji Pythona. Linia 3 importuje określone moduły, które będą działały z Ansible. Linie od 5 do 8 to funkcje, które będą uruchamiane jako część twojego modułu, a konkretnie linia 6 dostarcza klasę AnsibleModule, która pozwala nam na obsługę przychodzących parametrów i pozwala nam na wyjście z programu, gdzie odpowiedzią jest „hello”, a następnie „world!” w linii 7. Linia 10 i 11 uruchamia funkcję, gdy moduł jest wywoływany.

4.Możemy teraz utworzyć playbook, aby uruchomić moduł. W swoim katalogu roboczym, utwórz plik newmodule_test.yml:

touch newmodule_test.yml

5.Możesz teraz odpalić edytor tekstu i dodać następujące szczegóły, aby twój playbook został uruchomiony

 1 ---
2 - hosts: 127.0.0.1
3 tasks:
4 - name: testing our new module
5 hello_module:
6 register: result
7
8 - debug: var=result

Jeśli nie pracowałeś wcześniej z Ansible, powyższy kod jest w stanie przypisać hosta w linii 2 do tego, na którym pracujesz. Linie od 3 do 6 uruchamiają nowy moduł, przy czym linia 4 nazywa zadanie, linia 5 wywołuje moduł, a linia 6 rejestruje wynik jako zmienną o nazwie result. Następnie w końcu linia 8 używa funkcji debug do wyprowadzenia wyników, aby pokazać, że wszystko zadziałało.

6.Możemy teraz uruchomić nowy playbook następującym poleceniem:

ansible-playbook newmodule_test.yml

What gets you the following output:

Jeśli wszystko poszło dobrze, powinieneś zobaczyć wyżej wymienione wyjście dające ładne „hello”: „world!” jako output.

Ok, byliśmy dość szybcy i brudni tutaj i to był cel tego postu, ale wszystko, czego potrzebujesz, to rozszerzyć swoją wiedzę o Pythonie, a także będziesz w stanie rozszerzyć to, co twoje moduły mogą zrobić.

Found this post useful? Proszę dotknąć przycisku klaskania poniżej! 🙂

About The Author

.

Dodaj komentarz