我正在尝试使用ec2插件通过ansible查询ec2实例列表,以获取动态库存。
我可以看到使用动态库存的实用程序。如果添加了新机器,则ansible将自动对它们执行播放。但是我也在网上看到可以用ansible生成实例,并手动将新主机添加到主机的静态列表中。
所以我的问题是:在什么情况下,我们将使用动态库存还是静态库存?我是devop领域的新手,所以我不知道我们需要多久自动生成一个实例,而Vs是通过AWS控制台手动完成的。 谢谢!
答案 0 :(得分:1)
如果使用自动缩放组,则必须使用动态库存。
如果您将ec2s作为构建管道的一部分临时启动,请使用动态清单。例如您只想测试软件的部署并在测试之后终止计算机。
如果要在某些计算机上禁用ansible播放,则可以基于ec2标签创建动态清单。例如您有一个每小时运行一次所有Web服务器的安全性游戏,但是开发人员希望在其计算机上进行测试。因此,他可以标记要跳过的机器。他不需要访问清单文件(您可以在午夜运行一次其他播放来再次启用安全播放。因此不会被遗忘)。
顺便说一句:您可以将ec2_instance_facts
与过滤器选项结合使用,并使用add_host
在剧本运行期间创建动态广告资源。
例如您有三种类型的服务器“ web”,“ app”,“ db”。您可以在启动期间使用服务器类型[web | app | db]标记ec2。您可以使用以下命令过滤这些ec2:
- name: collect ec2s
ec2_instance_facts:
region: "{{ region }}"
filters:
"tag:servertype": "{{ servertype_list }}"
register: ec2_list
,并在带有外部变量ansible-playbook test.yml -e servertype_list=['web','app']
或ansible-playbook test.yml -e servertype_list=['db']
的服务器组上有选择地运行播放。
因此,通过标记机器,您可以避免维护静态库存。