Ansible-создание нескольких папок, если они не существуют
цель:
- создать несколько каталогов, если они не существуют.
- не изменяйте разрешения существующей папки
Текущие Правила съема:
- 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. Но это работает только для одной папки.
2 ответов
Ansible-создание нескольких папок без изменения разрешений ранее существовавших.
отлично работает для меня. Надеюсь, это сработает и для вас, просто попробуйте.
---
- 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}}"
...
используя модули Ansible, вам не нужно проверять, существует ли что-то или нет, вы просто описываете желаемое состояние, поэтому:
- 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