Может ли кто-нибудь порекомендовать способ взять содержимое двух переменных регистра и передать их в одну команду? При этом также выстраиваются результаты выходных данных каждой переменной в формате 1: 1. (т. е. VS1: правило1, VS2: правило2 и т. д. с выхода, показанного ниже)
Вот что хранится в 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] }}" ]
Я ожидаю, что строка 'modify 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 }