Jak utworzyć katalog w Ansible

Jak utworzyć katalog w Ansible

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:

  • Surowe polecenie ansible z modułem poleceń
  • Moduł pliku w Ansible Playbook

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.