var提示上的Ansible循环

问题描述 投票:0回答:2

我想在我的bigip上创建几个节点。为此我想在我的var提示符上做一个循环,并在我的变量{{node_list}}中注册每个值。

这就是我尝试过的


 - name: node creation
   hosts: F5
   gather_facts: no
   connection: local

   vars_prompt:

     ## ASK NUMBER OF NODES
   - name: node_nb
     prompt: "number of nodes"
     private: no


     ##  ASK THE NAME AND IP WITH FORMAT NAME;IP
   - name: node_list
     prompt: "name and Ip of the node like that toto;1.1.1.1"
     private: no
     with_sequence: count={{ node_nb | int }}


   - name: Create node
     bigip_node:
       user:  '{{ ansible_user }}'
       password: '{{ ansible_password }}'
       server: 'xxxxx'
       host: '{{ (item).split(";")[1] }}'
       name: '{{ (item).split(";")[0] }}'
       partition: 'Common'
       state: present
       validate_certs: false
     with_items: '{{ node_list }}'
  • 第一:我的var提示不循环,例如我在{{node_nb}}中指定“4”。问题是提示一次,但我想要4次。
  • 第二:我每次都会在列表中注册输入值的所有信息。如果我想要4个节点,我需要在列表中有4个项目
dictionary ansible jinja2 prompt
2个回答
0
投票

只需让它们进入以空格分隔的列表,因为您已经在使用;将节点名称与IP分开,这样还可以省去必须提示计数的麻烦,因为列表中的数量很多


0
投票

with_sequence只适用于任务。

所以只需将一个变量node_list保存到vars_prompt并传递','分隔列表['asd;1.1.1.1','sdf;2.2.2.2']作为值。

© www.soinside.com 2019 - 2024. All rights reserved.