一部のSQLファイルを含むデータベースホストがあります。 Ansible Playbookを使用してデータベースにソースを追加したいと思います。そのため、すべてのファイルを見つけて変数に登録し、次のコードを使用してそのファイルをインポートしようとします。
- name: get schema files
find:
paths: "~/dbs/"
recurse: no
patterns: "*.sql"
register: db_sql_files
- name: import schemas
mysql_db:
name: all
state: import
target: "{{ item['path'] }}"
login_user: "{{ db_user }}"
login_password: "{{ db_pass }}"
with_items: "{{ db_sql_files['files'] }}"
プレイブックを実行すると、次のエラーが発生します。
The task includes an option with an undefined variable. The error was: 'item' is undefined
ベストアンサー1
アイテムのインデントがwith_items
正しくありません。項目から 2 つのスペースを削除すると、with_items
問題が解決します。
- name: import schemas
mysql_db:
name: all
state: import
target: "{{ item['path'] }}"
login_user: "{{ db_user }}"
login_password: "{{ db_pass }}"
with_items: "{{ db_sql_files['files'] }}" # On the sime line as the mysql_db call.