일부 SQL 파일이 포함된 데이터베이스 호스트가 있습니다. Ansible 플레이북을 사용하여 데이터베이스에 소스를 추가하고 싶습니다. 그래서 모든 파일을 찾아 변수에 등록한 다음 아래 코드를 사용하여 해당 파일을 가져오려고 합니다.
- 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
잘못되었습니다. 항목에서 두 개의 공백을 제거하면 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.