var提示上的Ansible循环

时间:2019-01-11 16:23:07

标签: dictionary ansible jinja2 prompt

我想在我的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 }}'
  • 第一:  例如,如果我在{{node_nb}}中指定“ 4”,则我的var提示不会循环播放。问题是提示一次,但我要4次。

  • 第二个:  我会在列表中每次都在输入中注册该值的所有信息。如果我需要4个节点,则列表中必须有4个项目

2 个答案:

答案 0 :(得分:0)

仅让它们输入用空格分隔的列表,因为您已经在使用;来将节点名称与IP分开,而且还省去了提示输入计数的麻烦,因为计数将是列表中有很多项目

答案 1 :(得分:0)

listBox.DataContext = new ListBox() { ItemsSource = \* Binding to tour *\ } 仅适用于任务。

因此只需将一个变量with_sequence保留在vars_prompt中,然后将','分隔列表node_list作为值传递。