質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

解決済

1回答

273閲覧

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

khaii21

総合スコア66

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

0クリップ

投稿2023/12/26 10:55

編集2023/12/26 12:06

実現したいこと

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を実行するとコピー元のファイルのpathが通らず、変数「item」が未定義のエラーとなります。
ymlファイルに複数登録しているフィアルを全てコピーする方法をご存じの方が
いらっしゃいましたらご教授頂けないでしょうか。
宜しくお願い致します。

前提

実行するコマンド

$ ansible-playbook -i hosts.yml playbook.yml -e "colocation=hogetokyo01.com region=tokyo"

エラーメッセージ抜粋

The error was: 'item' is undefined.

該当のソースコード

tree

1 2```└── 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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
5行目の

loop: "{{ area.[region] }}"

上記を下記に修正後、1番下の行に移動させて期待通りにコピーできました。

loop: "{{ area[region] }}"

- name: Copy map files


register: hoge_copy_map
loop: "{{ area[region] }}"

投稿2023/12/26 13:32

編集2023/12/26 14:19
khaii21

総合スコア66

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問