在一个角色的默认文件夹中定义的变量是否会被调用该角色的剧本中定义的vars覆盖?

时间:2019-04-04 03:15:19

标签: ansible

有一些角色和一个剧本来称呼角色。

通过条件ec2_status(运行以执行启动任务并停止以执行停止任务)来定义一个角色来启动或停止ec2实例。 因此,如果我在外部剧本中这样定义vars

 - hosts: CI-Master
   vars:
     ec2_status: running
   roles:
    - role: roles/env-CI/ec2-control
      tags: ['ec2-start']

这是我在ec2-control中的角色

 - name: start instances specified by a tag
   ec2:
     instance_tags: '{"{{ tag_key }}":"{{ tag_value }}"}'
     region: "{{ region }}"
     state: running
     wait: true
   when: ec2_status == "running"

 - name: stop an instance
   ec2:
     instance_tags: '{"{{ tag_key }}":"{{ tag_value }}"}'
     region: "{{ region }}"
     state: stopped
     wait: true
   when: ec2_status == "stop"

为什么我在运行剧本时会同时调用这两个任务。 我在ec2-control角色的默认文件夹中定义了ec2_status,如下所示:

region: us-west-1
ec2_status: running

required_vars:
  - tag_key
  - tag_value
  - region
  - ec2_status

0 个答案:

没有答案