ansible - 如何使用模式来指定多个清单组(不是主机)来运行剧本?
问题描述
我有几个按顺序命名的组,我想在上面运行我的剧本。我可以指定一个确切的名称或使用星号通配符,但我不能指定一个数字范围。
Group Names
group1
group2
group3
在剧本中 -hosts: "{{ var_hosts }}"
例子:
ansible-playbook -i inventory tasks/myplaybook.yml -e 'var_hosts=group1'
==> 有效
ansible-playbook -i inventory tasks/myplaybook.yml -e 'var_hosts=group*'
==> 通过选择所有名为 'groups*' 的组来工作
ansible-playbook -i inventory tasks/myplaybook.yml -e 'var_hosts=group[1:3]'
==> 不起作用。我得到错误:
'[WARNING]: Could not match supplied host pattern, ignoring: group'
我的谷歌搜索没有找到任何文档,说明哪些模式在组名中是合法的。有没有办法在组名中使用数字范围?
解决方案
模式不是正则表达式。
您可以通过在组名中添加下标来引用组内的主机:
webservers[0:2] # == webservers[0],webservers[1]
...
推荐阅读
- java - Spring工具套件maven项目localhost不工作
- tensorflow2.0 - 如果我们使用 tf.keras.layers.LSTM(tf 版本为 2.0),我们如何获得单元状态?
- c# - C# WPF 在调整整个窗口大小时修复流文档排列
- react-final-form - 如何在页面/屏幕之间共享 react-final-form
- java - Thymeleaf - 图像在回复电子邮件中消失
- android - Android 将特定构建警告视为错误,因此当 Crashlytics 映射文件上传失败时构建失败
- cassandra - Cassandra 桌子在 2 年内没有被压实?
- validation - 使用计算属性 Vue 2 的条件类绑定
- java - java - 如何在java junit测试类中并行运行一些测试用例和以串行方式运行一些测试用例?
- java - 我已经通过 Java spring security 生成了公钥,我尝试使用该公钥使用 Nodejs Crypto 加密数据,但它返回错误