Как создать каталог с помощью Ansible

Как создать каталог www в /srv в системе на основе Debian с помощью загружаемого файла 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

См. Http://docs.ansible.com/ansible/file_module.html.

Ответ 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'

Ответ 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> эту команду

http://halcyon.net.in/

Ответ 20

Я вижу много примеров Playbooks, и я хотел бы упомянуть пример команд Adhoc.

$ ansible -i инвентарь -m файл -a "путь =/tmp/direcory state = каталог (вместо каталога мы можем упомянуть touch для создания файлов)

Ответ 21

здесь проще.

- name: create dir command: mkdir -p dir dir/a dir/b