2017-02-12 2 views
5

Цели:анзибля - Создание нескольких папок, если не существует

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

Текущий сборник пьес:

- name: stat directories if they exist 
    stat: 
    path: "{{ item }}" 
    with_items: 
    - /data/directory 
    - /data/another 
    register: myvar 

- debug: var=myvar.results 

- name: create directory if they don't exist 
    file: 
    path: "{{ item.invocation.module_args.path }}" 
    state: directory 
    owner: root 
    group: root 
    mode: 0775 
    with_items: "{{ stat.results }}" 
    # when: myvar.results.stat.exists == false 

when утверждение неверно.

Я рассмотрел приведенный пример; http://docs.ansible.com/ansible/stat_module.html. Но это работает только для одной папки.

ответ

6

анзибль - Создание нескольких папок без изменения разрешения ранее существующих.

Работаю отлично. Надеюсь, это сработает для вас, а просто попробуйте.

--- 
- name: "Creating multiple by checking folders" 
    hosts: your_host_name 
    tasks: 
    - block: 
    - name: "Checking folders" 
     stat: 
     path: "{{item}}" 
     register: folder_stats 
     with_items: 
     - ["/var/www/f1","/var/www/f2","/var/www/f3","/var/www/f4"] 
    - name: "Creating multiple folders without disturbing previous permissions" 
     file: 
     path: "{{item.item}}" 
     state: directory 
     mode: 0755 
     group: root 
     owner: root 
     when: item.stat.exists == false 
     with_items: 
     - "{{folder_stats.results}}" 
... 
+1

Это, мы надеемся, будет работать на всех –

3

Использование анзибль модулей, вам не нужно проверить, если что-то существует или нет, вы просто описать желаемое состояние, так:

- name: create directory if they don't exist 
    file: 
    path: "{{ item }}" 
    state: directory 
    owner: root 
    group: root 
    mode: 0775 
    with_items: 
    - /data/directory 
    - /data/another 
+0

Это изменит разрешение папки root: root. Я не хочу изменять пользователя/группу, если папка уже существует. – Kevin

+0

Затем укажите нужные разрешения для каждой папки. – techraf

+0

Хм ... Так что я не могу в Ansible? – Kevin

Смежные вопросы