Я хотел бы создать несколько узлов на моем 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 не зацикливается, если, например, я указываю «4» в {{node_nb}}. Вопрос один раз, но я хочу 4 раза.
Во-вторых: Я бы регистрировал всю информацию о значении на входе каждый раз в списке. Если я хочу 4 узла, мне нужно 4 элемента в моем списке
with_sequence работает только с задачами.
with_sequence
, поэтому просто оставьте одну переменную node_list в vars_prompt и передайте ',' разделенный список ['asd;1.1.1.1','sdf;2.2.2.2'] в качестве значения.
node_list
['asd;1.1.1.1','sdf;2.2.2.2']
Просто попросите их войти в список, разделенный пробелами, поскольку вы уже используете ; для отделения имен узлов от IP-адресов, и это дополнительно избавляет вас от необходимости запрашивать счетчик, так как счетчик будет состоять из множества элементов. есть в списке
;