การสร้าง symlink ด้วย 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' }

ทำงานเหมือนจับใจ!
williamsowen

2
หากคุณมีปัญหาเกี่ยวกับไวยากรณ์ / การเยื้องให้แก้ไขผ่าน atom + ปลั๊กอิน: linter, ansible-linter, js-yaml-linter
Jonathan

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.