【发布时间】:2016-05-13 17:14:08
【问题描述】:
如何使用带 EC2 模块的 Ansible 启动(购买)预留 EC2 实例?我用 'ec2 reserved instance ansible' 之类的词在谷歌上搜索,但没有任何乐趣。
或者我应该改用 AWS CLI?
【问题讨论】:
标签: amazon-web-services amazon-ec2 ansible
如何使用带 EC2 模块的 Ansible 启动(购买)预留 EC2 实例?我用 'ec2 reserved instance ansible' 之类的词在谷歌上搜索,但没有任何乐趣。
或者我应该改用 AWS CLI?
【问题讨论】:
标签: amazon-web-services amazon-ec2 ansible
或者您可以创建Ansible module。 还有已经创建的模块,您可以将其用作示例ansible-modules-extras/cloud/amazon。
PS:
模块可以用任何语言编写,并且可以在路径中找到 由 ANSIBLE_LIBRARY 或 --module-path 命令行选项指定。
默认情况下,ansible 附带的所有内容都是从它的 源树,但可以添加其他路径。
目录“./library”,与您的顶级剧本一起,也是 自动添加为搜索目录。
【讨论】:
我刚刚发了一个PR,可能会对你有所帮助。
你可以这样使用它:
- name: Purchase reserved instances
boto3:
name: ec2
region: us-east-1
operation: purchase_reserved_instances_offering
parameters:
ReservedInstancesOfferingId: 9a06095a-bdc6-47fe-a94a-2a382f016040
InstanceCount: 3
LimitPrice:
Amount: 123.0
CurrencyCode: USD
register: result
- debug: var=result
如果您对此功能感兴趣,请随时对 PR 投票。 :)
【讨论】:
我查看了 Cloud module list 并发现没有任何开箱即用的模块支持保留实例 - 我认为您尝试在 AWS CLI 或 Python Boto SDK [ 或任何 SDK ] 上构建包装器。
这是剧本的伪代码:
---
- hosts: localhost
connection: local
gather_facts: false
tasks:
- name: 'Calling Python Code to reserve instance'
raw: python reserve-ec2-instance.py args
【讨论】: