ansibleと変数のリストを含むシンボリックリンクの作成


17

ansibleの新機能-srcディレクトリ内の多数のファイルを宛先にシンボリックリンクしようとしています。現在:

  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

エラーが発生しています: fatal: [vmdev] => One or more undefined variables: 'item' is undefined

誰かが私を正しい方向に向けることができますか?乾杯

回答:


30

あなたのインデントは間違っていwith_itemsます、と同じレベルにあるべきfileです。これはあなたが望むものです:

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' }

チャームのように機能します!
ウィリアムソウェン

2
構文/インデントに問題がある場合は、atom +プラグインを介して編集します:linter、ansible-linter、js-yaml-linter-
ジョナサン

7

構文が間違っていると思います。これを試して:

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

送信元リンクと宛先リンクの両方に同じ名前が付けられている場合は、さらに簡単になります。

- file:
    src: /drupal/drush/{{ item }}.aliases.drushrc.php
    dest: /home/vagrant/.drush/{{ item }}.aliases.drushrc.php
    state: link
  with_items:
    - new
    - vmdev
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.