Ansible to jedno z najlepszych dostępnych narzędzi do automatyzacji, oferujące proste, intuicyjne i potężne narzędzia do wykonywania zadań automatyzacji we współczesnym świecie.
W przypadku większości zadań automatyzacji będziesz musiał tworzyć katalogi, szczególnie podczas instalowania różnych narzędzi i aplikacji, kopii zapasowych i przywracania. Chociaż możesz wykonywać te zadania za pomocą zautomatyzowanego skryptu, Ansible zapewnia lepszą funkcjonalność, umożliwiając tworzenie katalogów w określonych hostach.
Ten samouczek pokazuje, jak korzystać z modułu pliku ansible do tworzenia, usuwania i modyfikowania uprawnień do katalogu dla określonych hostów.
Jak utworzyć katalog w Ansible
Do utworzenia katalogu w Ansible można zastosować jedną z poniższych metod:
Aby utworzyć katalog w ansible za pomocą modułu polecenia, wprowadź polecenie pokazane poniżej:
$ ansible all -mdle -a -a "mkdir ~/backups"
Po wprowadzeniu powyższego polecenia należy uzyskać dane wyjściowe pokazane poniżej:
Wprowadź hasło do klucza/domu/użytkownika/.ssh/id_rsa ':
[OSTRZEŻENIE]: Rozważ użycie modułu pliku z Directory = Directory, a nie uruchamianie „mkdir”. Jeśli musisz użyć polecenia, ponieważ plik jest niewystarczający.CFG, aby pozbyć się tej wiadomości.
35.222.210.12 | Zmieniony | rc = 0 >>
Sprawdź, czy Twój hosta ansible w/etc/ansible/hosts zawiera prawidłowe informacje o swoich zdalnych hostach.
Chociaż moduł poleceń jest prosty w użyciu na jednym hoście Ansible, staje się bardzo nieefektywny w przypadku wielu hostów z różnymi katalogami i zadaniami.
Aby przeciwstawić się tej wady, użyjemy modułu pliku ansible i zbudujemy podręcznik zawierający hosty, z których chcemy użyć, oraz katalogi, które chcemy stworzyć.
NOTATKA: Moduł pliku może być również używany jako pojedyncze polecenie w ansible, ale działa podobnie jak moduł poleceń.
Aby użyć poradnika Ansible, utwórz plik YAML i wprowadź następujące wpisy, aby utworzyć katalog:
- Gospodarze: wszystkie zadania:
- Nazwa: moduł pliku ansible Utwórz katalog
plik:
Ścieżka: ~/kopie zapasowe
Stan: Directory
Zapisz plik i użyj Ansible-Playbook, aby utworzyć katalogi:
ansible-playbook mkdir.yml
Powinno to wytworzyć dane wyjściowe, takie jak ten poniżej, co wskazuje, że akcje zostały pomyślnie przeprowadzone za pomocą określonego pliku Playbook.
Odtwórz wszystko] ********************************************** ***************************************************** *************
Zadanie [gromadzenie faktów] ********************************************* ***************************************************** **
Wprowadź hasło do klucza/domu/użytkownika/.ssh/id_rsa ':
OK: [35.222.210.12]
Zadanie [moduł pliku ansible Utwórz katalog] ************************************************************ ************************************
OK: [35.222.210.12]
Zagraj podsumowanie ************************************************ ***************************************************** ***********
35.222.210.12: OK = 2 Zmienione = 0 nieosiągalne = 0 nieudane = 0 pomijane = 0 uratowane = 0 ignorowane = 0
Jak tworzyć wiele katalogów z przedmiotami
Ansible Playbooks pozwala również tworzyć wiele katalogów za pomocą instrukcji with_Items w pliku YAML.
Na przykład, aby utworzyć kopie zapasowe dla trzech usług, MySQL, Repository i Config, możesz zbudować zadanie pokazane w pliku YAML poniżej:
- Gospodarze: wszystkie zadania:
- Nazwa: Ansible Utwórz wiele katalogów z_items
plik:
Ścieżka: ~/Backups/item
Stan: Directory
Z_ITEMS:
- „mysql”
- 'magazyn'
- „konfiguracja”
Zapisz powyższy plik i uruchom go z Ansible-Playbook.
$ ansible-playbook mkdir_multi.YML Play [All] ********************************************* ***************************************************** ***************************************************** ***************************************************** ***
Zadanie [gromadzenie faktów] ********************************************* ***************************************************** ***************************************************** *****************************************
Wprowadź hasło do klucza/domu/użytkownika/.ssh/id_rsa ':
OK: [35.222.210.12]
Zadanie [Ansible Utwórz wiele katalogów z_items] ******************************************* ***************************************************** ***************************************************** *************
Zmieniono: [35.222.210.12] => (item = mysql)
Zmieniono: [35.222.210.12] => (item = repozytorium)
Zmieniono: [35.222.210.12] => (item = config)
Zagraj podsumowanie ************************************************ ***************************************************** ***************************************************** *****************************************************
35.222.210.12: OK = 2 Zmieniony = 1 nieosiągalny = 0 nieudany = 0 pomijany = 0 uratowany = 0 ignorowany = 0
Powyższy podręcznik powinien tworzyć wiele katalogów, takich jak ~/Backups/MySQL, ~/Backups/Repository i ~/Backups/Config.
$ LS -LA
Wyjście listy katalogów jest jak pokazano poniżej:
Całkowita 0
drwxRwxr-x. 5 Debian Debian 51 marca 17:26 .
DRWX------. 6 Debian Debian 117 marca 17: 26…
drwxRwxr-x. 2 Debian Debian 6 marca 6 17:26 Config
drwxRwxr-x. 2 Debian Debian 6 marca 6 17:26 Mysql
drwxRwxr-x. 2 Repozytorium Debian Debian 6 17:26
Jak ustawić uprawnienia do katalogu
Ansible umożliwia określenie uprawnień do katalogu za pomocą dyrektywy w trybie. Rozważ następujący podręcznik, który tworzy katalog i ustawia uprawnienia:
- Gospodarze: Wszyscy
Zadania:
- Nazwa: Ansible Utwórz katalog i ustaw uprawnienia
plik:
ścieżka: /kopie zapasowe
Stan: Directory
Tryb: „u = rw, g = wx, o = rwx”
stać się: tak
W powyższym wpisie stworzyliśmy katalog w /. Musieliśmy również stać się korzeniem, stąd stał się: tak.
$ Ansible-Playbook Zezwolenie.YML Play [All] ********************************************* ***************************************************** ***************************************************** ***************************************************** ***
Zadanie [gromadzenie faktów] ********************************************* ***************************************************** ***************************************************** *****************************************
Wprowadź hasło do klucza/domu/użytkownika/.ssh/id_rsa ':
OK: [35.222.210.12]
Zadanie [Ansible Utwórz katalog i ustaw uprawnienia] ******************************************* ***************************************************** ***************************************************** ****************
Zmieniono: [35.222.210.12]
Zagraj podsumowanie ************************************************ ***************************************************** ***************************************************** *****************************************************
35.222.210.12: OK = 2 Zmieniony = 1 nieosiągalny = 0 nieudany = 0 pomijany = 0 uratowany = 0 ignorowany = 0
Jeśli zobaczysz uprawnienia stworzonego przez nas katalogu, zobaczysz następujące:
$ ls -lrt / | kopie zapasowe Grep
Wyjście jest jak pokazano poniżej:
DRW-WXRWX. 2 Root root 6 marca 6 17:36 kopie zapasowe
Jak rekurencyjnie zmienić uprawnienia w katalogu
Aby zmienić uprawnienia katalogu i jego plików rekurencyjnie, po prostu określ pozycję rekurencyjną, jak pokazano poniżej:
- Gospodarze: Wszyscy
Zadania:
- Nazwa: Ansible Utwórz katalog i ustaw uprawnienia
plik:
ścieżka: /kopie zapasowe
Stan: Directory
Tryb: „u = rw, g = wx, o = rwx”
Recursive: Tak
stać się: tak
Jak ustawić uprawnienia w wielu katalogach
Konfigurowanie uprawnień dla wielu katalogów w Ansible jest również proste, jak kilka wierszy wpisów. Rozważ następujący podręcznik.
- Gospodarze: Wszyscy
Zadania:
- Nazwa: Ansible Utwórz katalog mutliple z uprawnieniami
plik:
ścieżka: "item.ścieżka "
tryb: "item.tryb"
Stan: Directory
Z_ITEMS:
- ścieżka: '~/backups/mysql', tryb: '0777'
- ścieżka: '~/backups/repository', tryb: '0755'
- ścieżka: '~/backups/config', tryb: '0707'
Jak usunąć katalog w Ansible
Aby usunąć katalog i całą jego zawartość za pomocą podręcznika Ansible, określ stan jako nieobecny, jak pokazano poniżej:
- Gospodarze: Wszyscy
Zadania:
- Nazwa: Ansible Delete Directory
plik:
ścieżka: /kopie zapasowe
Stan: nieobecny
stać się: tak
To polecenie usunie katalog i wszystkie pliki i katalogi dzieci.
NOTATKA: Upewnij się, że masz uprawnienia do katalogu, nad którym pracujesz.
Jak utworzyć katalog znacznika
W niektórych przypadkach może być konieczne utworzenie katalogu z dołączonym znacznikiem czasu, co może być bardzo przydatne, szczególnie podczas tworzenia kopii zapasowych. Aby utworzyć katalog znacznikowy, możemy użyć zmiennej ansible_date_time.
Rozważ następujący podręcznik:
- Gospodarze: Wszyscy
Zadania:
- Nazwa: Ansible Dodaj znacznik czasu do katalogu
plik:
ścieżka: "/Backups/mysql ansible_date_time.data"
Stan: Directory
Tryb: „0777”
stać się: tak
Po uruchomieniu podręcznika będziesz mieć katalog ze znacznikiem czasu.
$ ls -l
Lista katalogów powinna być jak pokazana poniżej:
Razem 0 drwxRwxRwx. 2 Root Root 6 marca 6 18:03 Mysql2021-03-06
NOTATKA: Aby uniknąć błędów, zawsze sprawdź składnię pliku YAML, której zamierzasz użyć w Ansible.
Wniosek
Ten samouczek pokazał, że praca z modułami Ansible jest bardzo łatwa i intuicyjna, dzięki czemu automatyczne złożone zadania są prostsze. Korzystając z modułu pliku Ansible, możesz utworzyć jedno lub więcej katalogów i dodać uprawnienia dla każdego. Możesz także użyć tego samego modułu, aby usunąć katalog, aby uzyskać więcej informacji na temat korzystania z modułu pliku ansible, sprawdź oficjalną dokumentację na stronie zasobów.