Как создать каталог www
в /srv
в системе на основе Debian с помощью загружаемого файла Ansible?
Как создать каталог с помощью Ansible
Ответ 1
Вы хотите файловый модуль. Чтобы создать каталог, вам нужно указать опцию state=directory
:
- name: Creates directory
file:
path: /src/www
state: directory
Вы можете увидеть другие варианты на http://docs.ansible.com/file_module.html
Ответ 2
Вы даже можете расширить файловый модуль и даже установить владельца, группу и разрешение через него. (Ссылка: Ansible файл документации)
- name: Creates directory
file:
path: /src/www
state: directory
owner: www-data
group: www-data
mode: 0775
Даже вы можете создавать каталоги рекурсивно:
- name: Creates directory
file:
path: /src/www
state: directory
owner: www-data
group: www-data
mode: 0775
recurse: yes
Таким образом, он создаст оба каталога, если они не существуют.
Ответ 3
Вы можете создать с помощью:
Последняя версия 2 <
- name: Create Folder
file:
path: /srv/www/
owner: user
group: user
mode: 0755
state: directory
Старая версия
- name: Create Folder
file:
path=/srv/www/
owner=user
group=user
mode=0755
state=directory
Ответ 4
Каталог может быть создан только с использованием файлового модуля, так как каталог - это не что иное, как файл.
# create a directory if it doesn't exist
- file:
path: /etc/some_directory
state: directory
mode: 0755
owner: foo
group: foo
Ответ 5
- file:
path: /etc/some_directory
state: directory
mode: 0755
owner: someone
group: somegroup
Таким образом, вы также можете установить права доступа, владельца и группы. Последние три параметра не являются обязательными.
Ответ 6
Вы можете создать каталог. используя
# create a directory if it doesn't exist
- file: path=/src/www state=directory mode=0755
Вы также можете проконсультироваться http://docs.ansible.com/ansible/file_module.html для получения дополнительной информации о regaridng каталоге и файловой системе.
Ответ 7
Вы можете использовать выражение
- name: webfolder - Creates web folder
file: path=/srv/www state=directory owner=www-data group=www-data mode=0775'
Ответ 8
В соответствии с документацией Ansible это можно сделать, указав следующее:
# create a directory if it doesn't exist - file: path: /etc/some_directory state: directory mode: 0755
Ответ 9
Дополнительный ответ на все ответы здесь, есть много ситуаций, когда вам нужно создать более одного каталога, поэтому лучше использовать циклы, вместо этого создавая отдельную задачу для каждого каталога.
- name: Creates directory
file:
path: "{{ item }}"
state: directory
with_items:
- /srv/www
- /dir/foo
- /dir/bar
Ответ 10
Просто нужно поставить условие для выполнения задачи для конкретного распространения
- name: Creates directory
file: path=/src/www state=directory
when: ansible_distribution == 'Debian'
Ответ 11
У нас есть модули для создания каталога, файла в ansible
пример
- name: Creates directory
file:
path: /src/www
state: directory
Ответ 12
---
- hosts: all
connection: local
tasks:
- name: Creates directory
file: path=/src/www state=directory
Над playbook создаст каталог www в пути /src.
Перед запуском над playbook. Пожалуйста, убедитесь, что ваше соединение с базовым хостом должно быть установлено,
"localhost ansible_connection = local"
должен присутствовать в /etc/ansible/hosts
для получения дополнительной информации, пожалуйста, дайте мне знать.
Ответ 13
Вы можете напрямую запускать команду и создавать напрямую, используя
ansible -v targethostname -m shell -a "mkdir /srv/www" -u targetuser
ИЛИ ЖЕ
ansible -v targethostname -m file -a "path=/srv/www state=directory" -u targetuser
Ответ 14
создать каталог
ansible host_name -m file -a "dest=/home/ansible/vndir state=directory"
Ответ 15
Если вы хотите создать каталог в Windows:
- имя: создать структуру каталогов
win_file:
путь: C:\Temp\folder\subfolder>
состояние: каталог
Ответ 16
Используйте файловый модуль для создания каталога и получения подробной информации о файловом модуле с помощью команды "ansible-doc file"
Вот опция "состояние", которая объясняет:
Если
directory
, все непосредственные подкаталоги будут созданы, если они не существуют, начиная с 1.7, они будут созданы с предоставленными разрешениями.
Еслиfile
, файл НЕ будет создан, если он не существует, см. Модуль [copy] или [template], если вы хотите такое поведение.
Еслиlink
, символическая ссылка будет создана или изменена. Жестко использовать дляhard
ссылок.
Если ониabsent
, каталоги будут рекурсивно удаляться, а файлы или символические ссылки будут не связаны.Обратите внимание, что
file
не завершится ошибкой, если путь не существует, так как состояние не изменилось.Если
touch
(новый в 1.4), будет создан пустой файл, если путь не существует, а существующий файл или каталог получит обновленные времена доступа к файлу и изменения (аналогично тому, какtouch
работает из командной строки).
Ответ 17
в этом случае вы можете использовать модуль "файл", так как вы можете передать столько аргументов для вновь созданного каталога, как владелец, группа, местоположение, режим и т.д......
Пожалуйста, обратитесь к этому документу для подробного объяснения файлового модуля...
https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module
помните, этот модуль не только для создания каталога !!!
Ответ 18
Самый простой способ сделать каталог в Ansible.
- name: создайте your_directory, если он не существует. файл: путь: /etc/your_directory
ИЛИ ЖЕ
Вы хотите дать привилегии sudo этому каталогу.
- name: создайте your_directory, если он не существует. file: path: /etc/your_directory mode: '777'
Ответ 19
это простая работа, просто используйте файловый модуль для создания каталога, если у вас есть сомнения, используйте <# ansible-doc file> эту команду
Ответ 20
Я вижу много примеров Playbooks, и я хотел бы упомянуть пример команд Adhoc.
$ ansible -i инвентарь -m файл -a "путь =/tmp/direcory state = каталог (вместо каталога мы можем упомянуть touch для создания файлов)
Ответ 21
здесь проще.
- name: create dir
command: mkdir -p dir dir/a dir/b