Ansible

Как создать каталог в Ansible

Как создать каталог в Ansible

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

Для большинства задач автоматизации вам нужно будет создавать каталоги, особенно при установке различных инструментов и приложений, резервного копирования и восстановления. Хотя вы можете выполнять эти задачи с помощью автоматизированного скрипта, Ansible обеспечивает лучшую функциональность, позволяя создавать каталоги на указанных хостах.

В этом руководстве показано, как использовать модуль файла Ansible для создания, удаления и изменения разрешений на каталог для указанных хостов.

Как создать каталог в Ansible

Для создания каталога в Ansible можно использовать любой из следующих методов:

Чтобы создать каталог в Ansible с помощью командного модуля, введите команду, показанную ниже:

$ ansible all -m command -a "mkdir ~ / backups"

После ввода вышеуказанной команды вы должны получить результат, показанный ниже:

Введите кодовую фразу для ключа '/ home / user /.ssh / id_rsa ':
[ВНИМАНИЕ]: рассмотрите возможность использования файлового модуля с состоянием = каталог вместо запуска mkdir.  Если вам нужно использовать команду из-за того, что файла недостаточно, вы можете добавить 'warn: false' в эту командную задачу или установить 'command_warnings = False' в недоступном.cfg, чтобы избавиться от этого сообщения.
35 год.222.210.12 | ИЗМЕНЕНО | rc = 0 >>

Убедитесь, что ваш инвентарь хостов Ansible в / etc / ansible / hosts содержит правильную информацию о ваших удаленных хостах.

Хотя командный модуль прост в использовании на одном хосте Ansible, он становится очень неэффективным при работе с несколькими хостами с разными каталогами и задачами.

Чтобы противостоять этому недостатку, мы будем использовать модуль Ansible file и создадим playbook, содержащий хосты, которые мы хотим использовать, и каталоги, которые мы хотим создать.

ПРИМЕЧАНИЕ: Файловый модуль также можно использовать как отдельную команду в Ansible, но он работает так же, как командный модуль.

Чтобы использовать Ansible playbook, создайте файл YAML и введите следующие записи для создания каталога:

- хосты: все задачи:
- имя: Модуль файлов Ansible создает каталог
файл:
путь: ~ / резервные копии
состояние: каталог

Сохраните файл и используйте ansible-playbook для создания каталогов:

ansible-playbook mkdir.yml

Это должно привести к выводу, подобному приведенному ниже, указывая, что действия были успешно выполнены с использованием указанного файла playbook.

Играть все] ********************************************** ************************************************* *************
ЗАДАЧА [Сбор фактов] ******************************************* ************************************************ **
Введите кодовую фразу для ключа '/ home / user /.ssh / id_rsa ':
ок: [35.222.210.12]
ЗАДАЧА [Создание каталога модуля Ansible] **************************************** **********************************
ок: [35.222.210.12]
ВОСПРОИЗВЕДЕНИЕ ****************************************************************************************************************************** ************************************************* ***********
35 год.222.210.12: ok = 2 изменено = 0 недоступно = 0 не удалось = 0 пропущено = 0 восстановлено = 0 игнорируется = 0

Как создать несколько каталогов с элементами

Плейбуки Ansible также позволяют создавать несколько каталогов с помощью оператора with_items в файле YAML.

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

- хосты: все задачи:
- name: Ansible создает несколько каталогов with_items
файл:
путь: ~ / backups / item
состояние: каталог
with_items:
- mysql
- 'репозиторий'
- 'config'

Сохраните указанный выше файл и запустите его с помощью ansible-playbook.

$ ansible-playbook mkdir_multi.yml ИГРАТЬ [все] ******************************************** ************************************************ ************************************************ ************************************************* ***
ЗАДАЧА [Сбор фактов] ******************************************* ************************************************* ************************************************* *****************************************
Введите кодовую фразу для ключа '/ home / user /.ssh / id_rsa ':
ок: [35.222.210.12]
ЗАДАЧА [Ansible создает несколько каталогов with_items] **************************************** ************************************************ ************************************************ *************
изменено: [35.222.210.12] => (item = mysql)
изменено: [35.222.210.12] => (item = репозиторий)
изменено: [35.222.210.12] => (item = config)
ВОСПРОИЗВЕДЕНИЕ ******************************************************************************************************************** ************************************************ ************************************************ ************************************************
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 марта, 17:26 mysql
drwxrwxr-x. 2 debian debian 6 мар 6 17:26 репозиторий

Как установить разрешения для каталога

Ansible позволяет указать разрешения для каталога с помощью директивы режима. Рассмотрим следующую книгу, которая создает каталог и устанавливает разрешения:

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

В приведенной выше записи мы создали каталог в /. Нам также нужно было стать пользователем root, поэтому запись стала: yes.

разрешение $ ansible-playbook.yml ИГРАТЬ [все] ******************************************** ************************************************ ************************************************* ************************************************* ***
ЗАДАЧА [Сбор фактов] ******************************************* ************************************************* ************************************************* *****************************************
Введите кодовую фразу для ключа '/ home / user /.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 бэкапы

Как рекурсивно изменять разрешения в каталоге

Чтобы рекурсивно изменить права доступа к каталогу и его файлам, просто укажите рекурсивную запись, как показано ниже:

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

Как установить разрешения в нескольких каталогах

Настройка разрешений для нескольких каталогов в Ansible также проста, как несколько строк записей. Рассмотрим следующую пьесу.

- хосты: все
задачи:
- name: Ansible создает несколько каталогов с разрешениями
файл:
путь: "элемент.дорожка "
режим: "item.Режим"
состояние: каталог
with_items:
- путь: '~ / backups / mysql', режим: '0777'
- путь: '~ / backups / repository', режим: '0755'
- путь: '~ / backups / config', режим: '0707'

Как удалить каталог в Ansible

Чтобы удалить каталог и все его содержимое с помощью книги воспроизведения Ansible, укажите состояние как отсутствует, как показано ниже:

- хосты: все
задачи:
- имя: Ansible удалить каталог
файл:
путь: / резервные копии
состояние: отсутствует
стать: да

Эта команда удалит каталог и все дочерние файлы и каталоги.

ПРИМЕЧАНИЕ: Убедитесь, что у вас есть разрешения для каталога, над которым вы работаете.

Как создать каталог с отметкой времени

В некоторых случаях вам может потребоваться создать каталог с прикрепленной к нему меткой времени, что может быть очень полезно, особенно при создании резервных копий. Чтобы создать каталог с отметкой времени, мы можем использовать переменную ansible_date_time.

Рассмотрим следующий сценарий:

- хосты: все
задачи:
- name: Ansible добавить метку времени в каталог
файл:
путь: "/ backups / mysql ansible_date_time.Дата"
состояние: каталог
режим: «0777»
стать: да

После того, как вы запустите playbook, у вас будет каталог с меткой времени.

$ ls -l

Список каталогов должен быть таким, как показано ниже:

всего 0 drwxrwxrwx. 2 root root 6 мар 6 18:03 mysql2021-03-06

ПРИМЕЧАНИЕ: Чтобы избежать ошибок, всегда проверяйте синтаксис файла YAML, который вы собираетесь использовать в Ansible.

Заключение

Это руководство показало вам, что работа с модулями Ansible очень проста и интуитивно понятна, что упрощает автоматизацию сложных задач. Используя модуль Ansible file, вы можете создать один или несколько каталогов и добавить разрешения для каждого из них. Вы также можете использовать тот же модуль для удаления каталога. Для получения дополнительной информации о том, как использовать модуль Ansible file, проверьте официальную документацию на странице ресурсов.

Лучшие игры с отслеживанием рук
Oculus Quest недавно представил отличную идею отслеживания рук без контроллеров. С постоянно растущим числом игр и действий, которые осуществляются фо...
Как показать наложение OSD в полноэкранных приложениях и играх Linux
Игра в полноэкранные игры или использование приложений в полноэкранном режиме без отвлекающих факторов может отрезать вас от соответствующей системной...
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...