Ansible从主机创建var

Ansible从主机创建var,ansible,Ansible,我正在使用ansible创建用于数据库连接字符串的主机和端口的env var列表 hosts: 127.0.0.1,127.0.0.1,127.0.0.1 ports: 123,123,123 应用程序需要两个变量:主机列表和端口列表,并使用它们创建连接字符串 hosts: 127.0.0.1,127.0.0.1,127.0.0.1 ports: 123,123,123 主机和端口根据索引位置进行匹配 我能够获得主机,并根据需要加入他们。我无法根据主机数量动态创建端口字符串。我们目前正在使用

我正在使用ansible创建用于数据库连接字符串的主机和端口的env var列表

hosts: 127.0.0.1,127.0.0.1,127.0.0.1
ports: 123,123,123
应用程序需要两个变量:主机列表和端口列表,并使用它们创建连接字符串

hosts: 127.0.0.1,127.0.0.1,127.0.0.1
ports: 123,123,123
主机和端口根据索引位置进行匹配

我能够获得主机,并根据需要加入他们。我无法根据主机数量动态创建端口字符串。我们目前正在使用相同的端口,因此应该更容易

我想做的是创建端口:123123,其中123重复的次数等于主机的数量

查看此链接以获取HSOT的数量:
我只需要打印123次,并将其分配给端口

您可以使用
序列
插件

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 }}"
资料来源: