Ansible loopを使って任意のディレクトリ配下にある複数のファイルをコピーしたい

実現したいこと

extra_varsにて変数「region」に「tokyo」を設定して、templatesディレクトリ配下の「tokyoディレクトリ」配下にある
全てのファイルをコピーしたいです。
コピーするファイルはvars配下のmain.ymlに設定しています。
「tokyo_map1.txt」、「tokyo_map2.txt」、「tokyo_map3.txt」のファイルを「copy_task.yml」5行目のloopの変数を使って
「item」としてコピーしたいのですが、playbookを実行すると変数「item」が未定義のエラーとなります。
ymlファイルに複数登録しているフィアルを全てコピーする方法をご存じの方がいらっしゃいましたらご教授頂けないでしょうか。
宜しくお願い致します。

前提

実行するコマンド

$ ansible-playbook -i hosts.yml playbook.yml -e "colocation=hogetokyo01.com region=tokyo"
# 文言抜粋 The error was: 'item' is undefined.

該当のソースコード

tree

12```└── roles 3 └── hoge 4 ├── tasks 5 │   └── copy_task.yml 6 ├── templates 7 │   ├── osaka 8 │   │   ├── osaka_map4.txt 9 │   │   ├── osaka_map5.txt 10 │   │   └── osaka_map6.txt 11 │   └── tokyo 12 │   ├── tokyo_map1.txt 13 │   ├── tokyo_map2.txt 14 │   └── tokyo_map3.txt 15 └── vars 16 └── mail.yml

rolse/hoge/vars/mail.yml

1--- 2area: 3 tokyo: 4 - "tokyo_map1.txt" 5 - "tokyo_map2.txt" 6 - "tokyo_map3.txt" 7 osaka: 8 - "osaka_map4.txt" 9 - "osaka_map5.txt" 10 - "osaka_map6.txt"

roles/hoge/tasks/copy_task.yml

1- name: Copy map files 2 ansible.builtin.template: 3 dest: /usr/local/share/map/ 4 src: "{{ region }}/{{ item }}" 5 loop: "{{ area.[region] }}" 6 owner: root 7 group: root 8 mode: "0555" 9 register: hoge_copy_map

コメントを投稿

0 コメント