我正在使用ansible创建用于数据库连接字符串的主机和端口的环境列表。
该应用程序需要两个变量:主机列表和端口列表,并使用它们来创建连接字符串。
hosts: 127.0.0.1,127.0.0.1,127.0.0.1
ports: 123,123,123
主机和端口根据索引位置进行匹配。
我能够获得主持人并根据需要加入他们。我无法做的是根据主机数动态创建端口字符串。我们当前正在使用同一端口,因此应该更容易。
我想做的是创建端口:123,123,123,其中重复123的次数等于主机的数量。
在此链接上获得了多次举报的次数:Ansible: Get number of hosts in group 我怎么只需要打印123的时间并将其分配给端口。
答案 0 :(得分:-1)
您可以使用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