有一些角色和一个剧本来称呼角色。
通过条件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