Может ли кто-нибудь порекомендовать способ взять содержимое двух регистровых переменных и передать их в одну команду? При этом также выстраивают результаты выходных данных каждой переменной в формате 1: 1. (например, VS1: rule1, VS2: rule2 и т. д. из выходных данных, показанных ниже)
Вот что хранится в stdout_lines для Virtual_Check и Rule_Check:
"Virtual_Check.stdout_lines": [
[
"ltm virtual VS1 ",
"ltm virtual VS2 ",
"ltm virtual VS3 ",
"ltm virtual VS",
"Rule_Check.stdout_lines": [
[
"myrule1",
" ",
"",
" myrule2",
" ",
"",
" myrule3",
" ",
"",
" myrule4",
" ",
"",
Теперь я хотел бы передать содержимое переменных в одну команду, как показано ниже. Когда я запускаю эту пьесу, часть Virtual_Check в цикле with_nested, как и ожидалось, но проблема, с которой я сталкиваюсь, заключается в том, что она не зацикливается должным образом для части Rule_Check (я оставил два метода, которые я пробовал ниже)
До сих пор я пробовал использовать with_nested для достижения этой цели, и мне кажется, что цикл по второй переменной не выполняется правильно.
- name: Update VS iRule
bigip_command:
commands:
- "modify ltm virtual {{ item.0 }} rules { {{ item.1 }} myrule10 }"
provider:
server: "{{ inventory_hostname }}"
password: "{{ remote_passwd }}"
user: "{{ remote_username }}"
validate_certs: no
delegate_to: localhost
with_nested:
- [ "{{ Virtual_Check['stdout'][0] | replace('ltm virtual', '') | replace('\n', '') }}"]
- [ "{{ Rule_Check['stdout'][0] | replace('\n', '') }}" ]
- [ "{{ Rule_Check['stdout_lines'][0] }}" ]
Я ожидал, что строка 'изменить ltm virtual {{item.0}} rules {{{item.1}} myrule10}' будет обработана с содержанием в списках Virtual_Check и Rule_Check
Например:
modify ltm virtual VS1 rules { myrule1 myrule10 }
modify ltm virtual VS2 rules { myrule2 myrule10 }
modify ltm virtual VS3 rules { myrule3 myrule10 }
modify ltm virtual VS4 rules { myrule4 myrule10 }