我有一个运行Cloudformation脚本的Ansible脚本。问题是,ansible脚本应该反复运行指定的时间才能在AWS上创建无限数量的服务器,就像在AWS上运行Cloudformation createstack一样,但是运行不止一次时,它会不断更新创建的相同资源。它只是更改名称。我已经努力修复了2天。无论运行ansible脚本多少次,我都需要一种在AWS中创建新服务器的方法。我相信问题是实例ID。因为看到一个已创建,所以它不会尝试创建一个新的。这是我上传到s3的Cloudformation代码。
Parameters:
KeyPair:
Type: AWS::EC2::KeyPair::KeyName
Description: Connects to this
Resources:
ec2:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-04681a1dbd79675a5
InstanceType: t2.micro
KeyName: !Ref KeyPair
这是我的Ansible代码,用于在s3存储桶中运行ec2服务器。像ansible-playbook Provision.yml一样奔跑
请帮助。
- hosts: localhost
tasks:
- name: first Task Provision ec2
cloudformation:
stack_name: 'provisiong-ec2'
state: present
region: us-east-1
disable_rollback: true
template_url: https://s3.amazonaws.com/randombuckets/ansy2-cloudformation.template
template_parameters:
KeyPair: rabbit
答案 0 :(得分:0)
由于stack_name
尚未更改,并且您的CFT仅构建一台主机(已构建),因此没有创建新实例。
您的直接选择是:
AutoScalingGroups
中的CloudFormation
(ASG)创建实例。您可以传入最少数量的主机(MinSize
)作为参数,ASG将负责其余的工作。您需要建立一些逻辑,以便每次迭代将计数增加一。