Отговорни

Как да създадете директория в Ansible

Как да създадете директория в Ansible

Ansible е един от най-добрите налични инструменти за автоматизация, предлагащ прости, интуитивни и мощни инструменти за изпълнение на задачи по автоматизация в съвременния свят.

За повечето задачи по автоматизация ще трябва да създавате директории, особено когато инсталирате различни инструменти и приложения, архивирате и възстановявате. Въпреки че можете да изпълнявате тези задачи с помощта на автоматизиран скрипт, Ansible предоставя по-добра функционалност, което ви позволява да създавате директории в определени хостове.

Този урок ви показва как да използвате файловия модул Ansible за създаване, премахване и промяна на разрешенията за директории за посочени хостове.

Как да създадете директория в Ansible

Всеки от следните методи може да се използва за създаване на директория в Ansible:

За да създадете директория в Ansible с помощта на командния модул, въведете командата, показана по-долу:

$ ansible all -m команда -a "mkdir ~ / архиви"

След въвеждане на горната команда, трябва да получите изхода, показан по-долу:

Въведете парола за ключ „/ начало / потребител /.ssh / id_rsa ':
[ПРЕДУПРЕЖДЕНИЕ]: Помислете за използване на файловия модул с state = директория, вместо да стартирате 'mkdir'.  Ако трябва да използвате команда, тъй като файлът е недостатъчен, можете да добавите „warn: false“ към тази командна задача или да зададете „command_warnings = False“ в ansible.cfg, за да се отървете от това съобщение.
35.222.210.12 | ПРОМЕНЕН | rc = 0 >>

Уверете се, че вашият списък с хостове Ansible в / etc / ansible / hosts съдържа правилната информация за вашите отдалечени хостове.

Въпреки че командният модул е ​​лесен за използване на един Ansible хост, той става много неефективен при работа с множество хостове с различни директории и задачи.

За да се противопоставим на този недостатък, ще използваме файловия модул Ansible и ще изградим книга за игра, съдържаща хостовете, които искаме да използваме, и директориите, които искаме да създадем.

ЗАБЕЛЕЖКА: Файловият модул може да се използва и като единична команда в Ansible, но работи подобно на командния модул.

За да използвате Ansible playbook, създайте YAML файл и въведете следните записи, за да създадете директория:

- домакини: всички задачи:
- name: Ansible file module create directory
файл:
път: ~ / архиви
състояние: директория

Запазете файла и използвайте ansible-playbook, за да създадете директориите:

ansible-playbook mkdir.yml

Това трябва да доведе до резултат като този по-долу, показващ, че действията са били извършени успешно с помощта на посочения файл на playbook.

Играй всичко] ********************************************** **************************************************** *************
ЗАДАЧА [Събиране на факти] *********************************************** **************************************************** **
Въведете парола за ключ „/ начало / потребител /.ssh / id_rsa ':
добре: [35.222.210.12]
ЗАДАЧА [Ansible file module create directory] ****************************************** **********************************
добре: [35.222.210.12]
ИГРАЙТЕ ЗАПИСВАНЕ ************************************************** **************************************************** ***********
35.222.210.12: ok = 2 променени = 0 недостижими = 0 неуспешни = 0 пропуснати = 0 спасени = 0 игнорирани = 0

Как да създадете множество директории с елементи

Ansible playbooks също ви позволяват да създавате множество директории, като използвате оператора with_items във файла YAML.

Например, за да създадете резервни копия за трите услуги, MySQL, хранилище и конфигурация, можете да изградите задачата, показана в YAML файла по-долу:

- домакини: всички задачи:
- name: Ansible създава множество директории with_items
файл:
път: ~ / архиви / item
състояние: директория
with_items:
- „mysql“
- „хранилище“
- „конфиг“

Запазете горния файл и го стартирайте с ansible-playbook.

$ ansible-playbook mkdir_multi.yml PLAY [всички] *********************************************** **************************************************** **************************************************** **************************************************** ***
ЗАДАЧА [Събиране на факти] *********************************************** **************************************************** **************************************************** *****************************************
Въведете парола за ключ „/ начало / потребител /.ssh / id_rsa ':
добре: [35.222.210.12]
ЗАДАЧА [Ansible създаване на множество директории с_ елементи] ****************************************** **************************************************** **************************************************** *************
променен: [35.222.210.12] => (артикул = mysql)
променен: [35.222.210.12] => (артикул = хранилище)
променено: [35.222.210.12] => (артикул = конфигурация)
ИГРАЙТЕ ЗАПИСВАНЕ ************************************************** **************************************************** **************************************************** ****************************************************
35.222.210.12: добре = 2 променени = 1 недостижим = 0 неуспешно = 0 пропуснато = 0 спасено = 0 игнорирано = 0

Горната книга за игри трябва да създава множество директории, като ~ / backups / mysql, ~ / backups / repository и ~ / backups / config.

$ ls -la

Изходът на списъка с директории е както е показано по-долу:

общо 0
drwxrwxr-x. 5 debian debian 51 март 6 17:26 .
drwx------. 6 debian debian 117 март 6 17: 26…
drwxrwxr-x. 2 debian debian 6 март 6 17:26 конфиг
drwxrwxr-x. 2 debian debian 6 март 6 17:26 mysql
drwxrwxr-x. 2 debian debian 6 март 6 17:26 хранилище

Как да зададете разрешения за директория

Ansible ви позволява да посочите разрешения за директория, използвайки директивата за режим. Обмислете следната книга за игри, която създава директория и задава разрешения:

- домакини: всички
задачи:
- name: Ansible създаване на директория и задаване на разрешения
файл:
път: / архиви
състояние: директория
режим: "u = rw, g = wx, o = rwx"
ставам: да

В горния запис създадохме директория в /. Ние също трябваше да станем корен, следователно влизането: да: да.

$ ansible-playbook разрешение.yml PLAY [всички] *********************************************** **************************************************** **************************************************** **************************************************** ***
ЗАДАЧА [Събиране на факти] *********************************************** **************************************************** **************************************************** *****************************************
Въведете парола за ключ „/ начало / потребител /.ssh / id_rsa ':
добре: [35.222.210.12]
ЗАДАЧА [Ansible създаване на директория и задаване на разрешения] ***************************************** **************************************************** **************************************************** ****************
променено: [35.222.210.12]
ИГРАЙТЕ ЗАПИСВАНЕ ************************************************** **************************************************** **************************************************** ****************************************************
35.222.210.12: добре = 2 променени = 1 недостижим = 0 неуспешно = 0 пропуснато = 0 спасено = 0 игнорирано = 0

Ако прегледате разрешенията на създадената от нас директория, ще видите следното:

$ ls -lrt / | grep архиви

Резултатът е както е показано по-долу:

drw - wxrwx.   2 root root 6 март 6 17:36 архиви

Как рекурсивно да променяте разрешенията в директория

За да промените разрешенията на директорията и нейните файлове рекурсивно, просто посочете рекурсивния запис, както е показано по-долу:

- домакини: всички
задачи:
- name: Ansible създаване на директория и задаване на разрешения
файл:
път: / архиви
състояние: директория
режим: "u = rw, g = wx, o = rwx"
рекурсивно: да
ставам: да

Как да зададете разрешения в множество директории

Настройването на разрешения за множество директории в Ansible също е толкова просто, колкото няколко реда записи. Обмислете следната книга за игри.

- домакини: всички
задачи:
- name: Ansible създаване на множество директории с разрешения
файл:
път: "елемент.път "
режим: "артикул.режим "
състояние: директория
with_items:
- път: '~ / архиви / mysql', режим: '0777'
- път: '~ / архиви / хранилище', режим: '0755'
- път: '~ / архиви / конфигурация', режим: '0707'

Как да изтрия директория в Ansible

За да премахнете директория и цялото й съдържание с помощта на Ansible playbook, посочете състоянието като отсъстващо, както е показано по-долу:

- домакини: всички
задачи:
- name: Отговорна директория за изтриване
файл:
път: / архиви
състояние: отсъства
ставам: да

Тази команда ще премахне директорията и всички дъщерни файлове и директории.

ЗАБЕЛЕЖКА: Уверете се, че имате разрешения за директорията, върху която работите.

Как да създадете директория с времеви марки

В някои случаи може да се наложи да създадете директория с прикрепен клеймо за време, което може да бъде много полезно, особено при създаване на резервни копия. За да създадем директория с времеви марки, можем да използваме променливата ansible_date_time.

Обмислете следната книга за игри:

- домакини: всички
задачи:
- name: Ansible добавяне на клеймо за време в директорията
файл:
път: "/ резервни копия / mysql ansible_date_time.дата"
състояние: директория
режим: "0777"
ставам: да

След като стартирате плейбека, ще имате директория с клеймото за време.

$ ls -l

Списъкът с директории трябва да бъде както е показано по-долу:

общо 0 drwxrwxrwx. 2 корен корен 6 март 6 18:03 mysql2021-03-06

ЗАБЕЛЕЖКА: За да избегнете грешки, винаги проверявайте синтаксиса на YAML файла, който възнамерявате да използвате в Ansible.

Заключение

Този урок ви показа, че работата с модули Ansible е много лесна и интуитивна, което прави автоматизирането на сложни задачи по-лесно. Използвайки файловия модул Ansible, можете да създадете една или повече директории и да добавите разрешения за всяка. Можете също да използвате същия модул за премахване на директория. За повече информация как да използвате файловия модул Ansible, проверете официалната документация на страницата с ресурси.

Екранен тракпад и указател на мишката на AppyMouse за таблети с Windows
Потребителите на таблети често пропускат показалеца на мишката, особено когато са привични да използват лаптопите. Смартфоните и таблетите със сензоре...
Средният бутон на мишката не работи в Windows 10
The среден бутон на мишката ви помага да превъртате дълги уеб страници и екрани с много данни. Ако това спре, добре ще свършите да използвате клавиату...
Как да промените левия и десния бутон на мишката на компютър с Windows 10
Напълно нормално е всички устройства на компютърни мишки да са ергономично проектирани за десничари. Но има налични устройства за мишка, които са спец...