从主机创建变量

时间:2018-06-22 16:25:24

标签: ansible

我正在使用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的时间并将其分配给端口。

1 个答案:

答案 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