Tạo một liên kết tượng trưng với ansible và một danh sách các biến


17

Thương hiệu mới đối với ansible - Tôi đang cố gắng liên kết một loạt các tệp trong thư mục src đến đích .. Hiện tại:

  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

Tôi đang nhận được lỗi: fatal: [vmdev] => One or more undefined variables: 'item' is undefined

Ai đó có thể chỉ cho tôi đúng hướng được không..? Chúc mừng

Câu trả lời:


30

Sự thụt lề của bạn là sai, with_itemsnên ở cùng cấp độ với file. Đây là cái bạn muốn:

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

Hoạt động như một lá bùa!
williamsowen

2
Nếu bạn gặp vấn đề với cú pháp / thụt lề, hãy chỉnh sửa qua các nguyên tử + plugin: linter, ansible-linter, js-yaml-linter
Jonathan

7

Tôi tin rằng cú pháp của bạn là sai. Thử đi:

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

Nếu cả liên kết nguồn và đích được đặt tên giống nhau thì điều đó thậm chí còn đơn giản hơn:

- file:
    src: /drupal/drush/{{ item }}.aliases.drushrc.php
    dest: /home/vagrant/.drush/{{ item }}.aliases.drushrc.php
    state: link
  with_items:
    - new
    - vmdev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.