Creazione di un collegamento simbolico con ansible e un elenco di variabili


17

Nuovissimo da rispondere - Sto cercando di collegare in modo simbolico un gruppo di file in una directory src a una destinazione .. Attualmente:

  file:
    src: /drupal/drush/{{ item.path }}.aliases.drushrc.php
    dest: /home/vagrant/.drush/{{ item.dest }}.aliases.drushrc.php
    with_items:
      - { path: 'new', dest: 'new' }
      - { path: 'vmdev', dest: 'vmdev' }
    state: link

Ricevo l'errore: fatal: [vmdev] => One or more undefined variables: 'item' is undefined

Qualcuno può indicarmi la giusta direzione ..? Saluti

Risposte:


30

Il tuo rientro è sbagliato, with_itemsdovrebbe essere allo stesso livello di file. Questo è quello che vuoi:

file:
  src: "/drupal/drush/{{ item.path }}.aliases.drushrc.php"
  dest: "/home/vagrant/.drush/{{ item.dest }}.aliases.drushrc.php"
  state: link
with_items:
  - { path: 'new', dest: 'new' }
  - { path: 'vmdev', dest: 'vmdev' }

Funziona come un fascino!
williamsowen,

2
Se hai problemi con la sintassi / rientro, modifica tramite atom + plug-in: linter, ansible-linter, js-yaml-linter
Jonathan

7

Credo che la tua sintassi sia sbagliata. Prova questo:

file: >
  src=/drupal/drush/{{ item.path }}.aliases.drushrc.php
  dest=/home/vagrant/.drush/{{ item.dest }}.aliases.drushrc.php
  state=link
with_items:
  - { path: 'new', dest: 'new' }
  - { path: 'vmdev', dest: 'vmdev' }

3

Se sia il collegamento di origine che quello di destinazione hanno lo stesso nome, dovrebbe essere ancora più semplice:

- file:
    src: /drupal/drush/{{ item }}.aliases.drushrc.php
    dest: /home/vagrant/.drush/{{ item }}.aliases.drushrc.php
    state: link
  with_items:
    - new
    - vmdev
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.