传递动态变量以在Ansible playbook中包含_任务和_项的语法

传递动态变量以在Ansible playbook中包含_任务和_项的语法,ansible,ansible-2.x,Ansible,Ansible 2.x,执行parent.yml,然后调用child.yml playbook以使用动态变量执行 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: "{{ i

执行parent.yml,然后调用child.yml playbook以使用动态变量执行

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)


致命:[127.0.0.1]:失败!=>{“理由”:在任务中未检测到任何操作。这通常表示模块名称拼写错误或模块路径不正确。\n\n错误出现在“/home/ansible/playbooks/DBpatch/Linux/child.yml”:第1行第3列,但可能\n出现在文件的其他位置,具体取决于语法问题。\n\n出现问题的行是:\n\n\n-name:MySQL dump\n^here\n”}包含任务需要一个任务列表,但你给它一个完整的剧本。 Child.yml应该只包含当前在“tasks:”行下面的内容。
另请参见“包含”任务需要一个任务列表,但您要给它一个完整的剧本。 Child.yml应该只包含当前在“tasks:”行下面的内容。
另请参见

谢谢,我通过使用字典在同一剧本中进行了一些变通。谢谢,我通过使用字典在同一剧本中进行变通
- 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'