ansible - Ansible 从主机创建 var
问题描述
我正在使用 ansible 创建用于数据库连接字符串的主机和端口的 env var 列表。
该应用程序需要两个变量:主机列表和端口列表,并使用它来创建连接字符串。
hosts: 127.0.0.1,127.0.0.1,127.0.0.1
ports: 123,123,123
主机和端口根据索引位置进行匹配。
我能够获得主机并根据需要加入他们。我无法做的是根据主机数量动态创建端口字符串。我们目前使用相同的端口,所以应该更容易。
我想做的是创建端口:123,123,123,其中重复 123 的次数等于主机数。
查看此链接以获取 hsot 的数量:Ansible:获取组中的主机数量 我只需要打印 123 次并将其分配给端口。
解决方案
你可以使用sequence
插件
vars:
hosts: ['127.0.0.1','127.0.0.1','127.0.0.1']
- name: ports fact with size of hosts
set_fact:
ports: "{{ ports | default([]) + [123]}}"
with_sequence: count="{{ hosts | length }}"
- debug: msg="{{ ports }}"
TASK [debug] ********************* ok: [localhost] => { "ports": [ 123, 123, 123 ] }
来源:https ://docs.ansible.com/ansible/2.5/plugins/lookup/sequence.html
推荐阅读
- azure-devops - 构建 AzureRM 客户端时出错:从 Azure CLI 填充客户端 ID 时出错:未找到授权令牌
- java - 如何在android中使用两个Web服务?
- machine-learning - 逻辑回归:多分类的一对多方法
- reactjs - 如何通过在线开发来开发 React 应用程序
- qt - QML:平面不可滚动列表视图
- npm - 如何在不删除本地 eslint 的情况下强制 npm 使用全局 eslint?
- javascript - 返回值存在的类型脚本类型保护
- java - 如何在我们的 tomcat java 应用程序中检测旧的未使用/非活动会话
- java - 线程多次调用方法
- jenkins - 詹金斯作业构建失败