Saltar al contenido

Ansible: crea varias carpetas si no existen

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)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *