如何设置Ansible AWS的动态清单

JFrogChina · · 1409 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

当您将Ansible与AWS结合使用时,维护清单文件将是一项繁重的任务,因为AWS经常更改IP,自动缩放实例等。但是,有一个简单的解决方案就是ansible动态清单。它基本上是一个Python脚本,当您运行ansible命令时会进行API调用以获取实例信息。这将为您提供动态清单详细信息,这些信息可以用来方便管理AWS基础架构。 文章图片.png 设置Ansible AWS动态清单 1.使用pip安装boto库。如果您尚未安装pip,则可以按照此文档进行安装–> 安装python pip pip install boto 2.将清单脚本下载到/ etc / ansible目录。 Wget https://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.py 3.使文件可执行。 chmod + x ec2.py 4.将ec2.ini文件下载到/ etc / ansible目录。 https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/ec2.ini 5. ec2.ini文件具有默认的AWS配置,可通过ec2.py文件读取。因此,请注释掉并配置必要的参数,以免查询时间过长。这样的例子就是“ regions”参数。默认情况下,该值为“ all”。这样可以对所有区域进行API调用。因此,最好只提及您使用的特定aws区域。 在[credentials]部分下,您需要提及abos访问密钥和私钥,以便boto库进行API调用。 或者,您可以在家里创建一个凭证文件,如下所示。 touch ~/.aws/credentials 打开凭证文件,然后如下所示进行输入。 [default] aws_access_key_id = YOUR_ACCESS_KEY aws_secret_access_key = YOUR_SECRET_KEY 注意:如果您正在使用AWS实例进行此设置,并且具有具有访问AWS服务权限的IAM角色,则无需将访问密钥和秘密密钥添加到凭证文件中 6 现在,使用以下命令测试清单配置。 ./ec2.py --list 应该获得如下所示的输出。 { “ _meta”:{ “ hostvars”:{} } } 如果您有一些实例正在运行,则将获得包含所有实例详细信息的输出。 7.如果要将动态清单用作默认的ansible清单,则需要编辑/ etc / ansible目录中存在的ansible.cfg文件,并在ansible.cfg中搜索清单参数。如下所示更改库存参数值。 inventory = /etc/ansible/ec2.py 现在,您可以对动态清单资源运行正常的ansible命令。例如,以下命令将对使用动态清单获取的所有正在运行的ec2实例运行ping命令。 ansible all -m ping 关注每周二晚八点JFrog在线课堂,获取更多技术分享。关注微信公众号“JFrog杰蛙DevOps”,获取课程通知

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1409 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传