Я пытаюсь перенести некоторый код из with_items в цикл.
У меня есть этот playbook.yml. Кажется, они одинаковы, но просто изменили with_items на loop
- debug:
msg: "{{ item }}"
loop:
- "{{ lookup('pipe','echo -e \"pro.json\npre.json\ndev.json\"').split('\n') }}"
- debug:
msg: "{{ item }}"
with_items:
- "{{ lookup('pipe','echo -e \"pro.json\npre.json\ndev.json\"').split('\n') }}"
Это вывод.
TASK [loop: debug] **********************************************************************************************************************************************************************************
ok: [server] => (item=[u'pro.json', u'pre.json', u'dev.json']) => {
"msg": [
"pro.json",
"pre.json",
"dev.json"
]
}
TASK [with_items : debug] **********************************************************************************************************************************************************************************
Ok: [server] => (item=pro.json) => {
"msg": "pro.json"
}
ok: [server] => (item=pre.json) => {
"msg": "pre.json"
}
ok: [server] => (item=dev.json) => {
"msg": "dev.json"
}
Как видите, цикл удерживает вывод в виде цепочки, а with_items разделяет его на три выхода.
Мне нужно изменить выход цикла, чтобы он выглядел как with_items. То, что я хочу, это создать цикл, который даст мне список, в зависимости от списка, который этот цикл будет зацикливать.
Результат with_items зацикливает три или столько же, сколько команда pipe, но зацикливает только один
РЕДАКТИРОВАТЬ:
Я пробовал решение с последовательностью для цикла, и кажется, что это возможно, но я не могу изменить свой код для работы, как.
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html?highlight=loop#with-sequence
TASK [: with_sequence] **************************************************************************************************************************************************************************
ok: [server] => (item=testuser00) => {
"msg": "testuser00"
}
ok: [server] => (item=testuser02) => {
"msg": "testuser02"
}
ok: [server] => (item=testuser04) => {
"msg": "testuser04"
}
TASK [: with_sequence -> loop] ******************************************************************************************************************************************************************
ok: [server] => (item=0) => {
"msg": "testuser00"
}
ok: [server] => (item=2) => {
"msg": "testuser02"
}
ok: [server] => (item=4) => {
"msg": "testuser04"
}