执行parent.yml,后者依次调用child.yml剧本以执行动态变量。
parent.yml中的变量不会插在child.yml剧本中。如果我使用正确的语法,可以纠正我吗?
Parent.yml
- name: Main playbook to call MySQL backup
hosts: localhost
gather_facts: no
tasks:
- include_task: child.yml
vars:
var1: "{{ item.name }}"
var2: "{{ item.db_name }}"
with_items:
- { name: '10.10.10.01', db_name: 'prod1' }
- { name: '10.10.10.02', db_name: 'prod2' }
child.yml(从托管数据库中获取mysqldump)
- name: MySQL dump
hosts: localhost
#gather_facts: no
#vars:
# v1: "{{ var1 }}"
# v2: "{{ var2 }}"
tasks:
- name: Executing the shell script
shell: 'mysqldump -h "{{ var1 }}" -u"ansi" -p"*****" "{{ var2 }}"| gzip > /tmp/mysql_dump/"{{ var2 }}"_`date +%Y%m%d-%H%M`.gz'
致命:[127.0.0.1]:失败! => {“原因”:“任务中未检测到任何操作。这通常表示模块名称拼写错误或模块路径不正确。\ n \ n错误似乎在'/ home / ansible / playbooks / DBpatch / Linux / child中。 yml':第1行,第3列,但是\ n根据具体的语法问题,可能\ n在文件的其他位置。\ n \ n出现问题的行似乎是:\ n \ n \ n-名称:MySQL dump \ n ^ here \ n“}
答案 0 :(得分:0)
include_task需要一个任务列表,但是您要给它一个完整的手册。 Child.yml仅应包含“任务:”行下方的内容。 另请参见https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_includes.html