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

Как создать каталог www at /srv в системе на основе Debian с использованием Ansible playbook?

12 ответов


вам нужен файловый модуль. Чтобы создать каталог, необходимо указать опцию state=directory :

- name: Creates directory
  file: path=/src/www state=directory

вы можете увидеть другие варианты наhttp://docs.ansible.com/file_module.html


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

- 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

таким образом, он создаст оба каталога, если они не существовали.


вы можете создать с помощью:

последняя версия 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


каталог может быть создан только с помощью файлового модуля, так как каталог-это не что иное, как файл.

# create a directory if it doesn't exist
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755
    owner: foo
    group: foo

-матчи jayesh


вы можете создать каталог. используя

# 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 каталог и файловая система.


- file: path: /etc/some_directory state: directory mode: 0755 owner: someone group: somegroup

таким образом вы также можете установить разрешения, владельца и группу. Последние три параметра не являются обязательными.


вы можете использовать оператор

- name: webfolder - Creates web folder file: path=/srv/www state=directory owner=www-data group=www-data mode=0775


просто нужно поставить условие для выполнения задачи для конкретного распределения

- name: Creates directory
  file: path=/src/www state=directory
  when: ansible_distribution == 'Debian'

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

# create a directory if it doesn't exist
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755

вы можете непосредственно запустить команду и создать непосредственно с помощью ansible

ansible -v targethostname -m shell -a "mkdir /srv/www" -u targetuser

или

ansible -v targethostname -m file -a "path=/srv/www state=directory" -u targetuser

---
- hosts: all
  connection: local
  tasks:
    - name: Creates directory
      file: path=/src/www state=directory

выше playbook создаст каталог www в / src пути.

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

"localhost ansible_connection=local"

должен присутствовать в /etc/ansible / hosts

для получения дополнительной информации, пожалуйста, дайте мне знать.


вот более простой способ.

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