YAMLの参照
これはAnsibleとは完全に無関係です。参照とアンカーはYAMLの一部です。 &foo
と定義されると、同じYAML文書で*foo
として再利用することができます。
pre_task:
- name: Task1
when: &myCondition condition1
- name: Task2
when: *myCondition
- name: Task3
when: *myCondition
ブロック
Ansible 2 blocksを導入しました。ブロックを使用すると、タスクをグループ化することができます。また、他の機能と並んで、ブロックに含まれるすべてのタスクに適用される条件を指定できます。
pre_tasks:
- block:
- name: Task1
- name: Task2
- name: Task3
when: condition1
これは、有効な解決策よりも回避策です
が含まれています。しかし、ブロックされていないので、Ansible 1では広く使われていました。インクルードは条件を満たすことができ、含まれるすべてのタスクに適用されます。その後、otherFile.yml
に含まれている
- include: otherFile.yml
when: condition1
すべてのタスク:
- name: Task1
- name: Task2
- name: Task3
ループ
あなたのタスクは、同じタイプのものであり、唯一異なるパラメータを取る場合にのみ動作します。
- name: All 3 tasks
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
when: condition1
with_items:
- src: template1.j2
dest: /some/path/file1
- src: template2.j2
dest: /some/path/file2
- src: template3.j2
dest: /some/path/file3
ループでは、1回の繰り返しごとに条件が実行されます。