64 votes

Déploiement d'un dossier de fichiers modèles en utilisant ansible

Existe-t-il un moyen simple de déployer un dossier rempli de modèles de dossiers .j2 sur une boîte linux, en utilisant le même nom que le modèle, mais sans l'extension .j2, plutôt que d'utiliser le module de modèle pour chaque fichier ?

En ce moment, j'ai une longue liste :

- name: create x template
  template:
    src=files/x.conf.j2
    dest=/tmp/x.conf
    owner=root
    group=root
    mode=0755
  notify:
    - restart myService

3voto

Jeff Trull Points 101

Il existe une possibilité de récupérer automatiquement la liste des fichiers actuels du répertoire et de les itérer ensuite

- name:         get the list of templates to transfer
  local_action: "shell ls templates/* | sed 's~.*/~~g'"
  register:     template_files

- name:         iterate and send templates
  template:     src=templates/{{ item }} dest=/mydestination/{{ item }}
  with_items:
  - "{{ template_files.stdout.splitlines() }}"

0voto

user3740244 Points 101

Je l'ai fait et ça a marché. \o /

- name: "Create file template"
  template:
    src: "{{ item.src }}"
    dest: "{{ your_dir_remoto }}/{{ item.dest }}"
  loop:
    - { src: '../templates/file1.yaml.j2', dest: 'file1.yaml' }
    - { src: '../templates/file2.yaml.j2', dest: 'file2.yaml' }

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X