Solución:
Con los módulos de Ansible, no necesita verificar si algo existe o no, solo describe el estado deseado, entonces:
- name: create directory if they don't exist
file:
path: "{{ item }}"
state: directory
owner: root
group: root
mode: 0775
loop:
- /data/directory
- /data/another
Ansible: creación de varias carpetas sin cambiar los permisos de los que ya existían.
Trabajando bien para mi. Espero que esto funcione para ti también, solo inténtalo.
---
- 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
loop:
- "{{folder_stats.results}}"
...
A partir de Ansible 2.5, loop
debe usarse para iterar sobre una lista, consulte https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#standard-loops
Como el Ansible file
módulo es idempotente, no es necesario comprobar si las carpetas ya existen.
Por ejemplo:
- name: create backup directories
file:
path: "{{ item }}"
state: directory
owner: backup
group: backup
mode: 0775
loop:
- /backupdisk/certificates
- /backupdisk/mysql
- /backupdisk/wordpress
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)