Ansible简化yaml库存

ansible-roster的Python项目详细描述


documentationpython

Ansible花名册插件

此存储库包含一个Ansible Inventory插件,用于从主观上更简单的库存描述文件生成库存,这里称为roster,同时有更多的可能性。在

它支持主机范围eg:“[0:9]”,也支持regex主机名,eg:”(dev|prd)-srv“。它通过附加值(而不是替换)来处理声明为列表的变量。在

编写这个清单插件时考虑了debops。在

安装

安装最新版本:

python3 -mpip install -U ansible-roster

使用

花名册是一个yaml格式的文件,文件扩展名为“yml”或“yaml”。在

为了让Ansible使用插件并解析您的花名册文件,必须满足以下几个条件:

  • 您的yaml文件必须包含一行,指示该文件采用排班格式。在

  • 您必须激活插件并在您的ansible.cfg中启用花名册清单插件,如果使用debops

Sample ansible.cfg

^{pr2}$

Sample .debops.cfg

[ansible inventory]enabled=rosterenable_plugins=roster

更简单的语法

花名册清单的语法主观上比Ansible yaml清单文件简单。不是指定必须预先知道的children,而是指定主机的parents。在

名册清单至少是一个单独的yaml文件,其中声明了要使用的插件,并用yaml语法声明了组和主机。在

一个名为'花名册.yml.tpl'位于git存储库的根目录下。在

示例:

---# Tell ansible that this yaml file is a roster file:plugin:rosterhosts:# We have a single host in this inventory:debian.example.com:

文件包含

排班清单将只包含显式指定的文件,而不包括清单文件夹中找到的每个文件。支持全局定位。在

plugin:rosterinclude:# include an exact file match-distrib/debian.yml# include with wildcard:-hosts/*.yml

范围和正则表达式支持

主机可以用范围声明,也可以用要扩展的regex声明。在

范围是由方括号中的整数下界和上界指定的,例如[0:9]以扩展为10个不同的主机名。在

正则表达式必须括在括号中:(front|back)end

例如:

plugin:rosterhosts:# Generate 10 hostnames: sql-0.example.com to sql-9.example.comsql-[0:9].example.com:# Generate 2 hostnames: frontend.example.com and backend.example.com(front|back)end.example.com:

标签

托多,洛勒姆·伊普苏姆

可变优先级

托多,洛勒姆·伊普苏姆

变量合并

托多,洛勒姆·伊普苏姆

排班清单文件是典型的yaml文件。在

发展

要运行单元测试,只需运行make目标:

# run all tests:
make check

还可以快速检查输出库存:

exportPYTHONPATH="$PYTHONPATH:$(pwd)"ANSIBLE_INVENTORY_ENABLED=roster ansible-inventory --list -i roster.yml

许可证

这个项目是在MIT许可下授权的-请参阅LICENSE文件了解详细信息

位置

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener