MyTetra Share
Делитесь знаниями!
Как в Ansible выводить содержимое перебираемых переменных из списка без печати всей структуры
Время создания: 06.12.2022 14:56
Текстовые метки: ansible, debug, отладка, печать, переменная, вывод, цикл, with_items, loop, список, stdout_lines, консоль
Раздел: Компьютер - Linux - Оркестрация - Ansible
Запись: xintrea/mytetra_syncro/master/base/16703277725zyu2evw65/text.html на raw.github.com

Если в Ansible сложить вывод нескольких вызовов команд в одну переменную, а потом попытаться распечатать stdout_lines для каждого элемента списка, то в случае перебора через with_items выдача в консоль будет очень многословная.


Например:



- name: Получение последних изменений из GIT

shell: |

currentGitRepoDir="{{ gitReposPath }}/{{ item[dirNameId] }}"

echo "Каталог git-репозитария: $currentGitRepoDir"

cd $currentGitRepoDir

git pull

with_items:

- "{{ gitRepos }}"

register: result


- name: Результат работы получения последних изменений из GIT

debug:

var: item.stdout_lines

with_items:

- "{{ result.results }}"



В данном случае помимо самого значения item.stdout_lines будут выведены все перебираемые значения каждого item со всей его структурой, потому что таков вывод отладки через with_items. И на это никак невозможно повлиять.


Однако, что бы в консоль выводилось только содержание элемента, который интересует программиста, вместо with_items следует использовать цикл loop. Делается это так:



- name: Результат работы получения последних изменений из GIT

debug:

msg: "{{item.stdout_lines}}"

loop: "{{ result.results }}"

loop_control:

label: 'result'



В результате Ansible будет печатать только содержимое сообщений msg и ничего больше.



ok: [compilingHost] => (item=result) => {

"msg": [

"Каталог git-репозитария: /home/user/gitRepos/ski_scripts",

"Уже обновлено."

]

}

ok: [compilingHost] => (item=result) => {

"msg": [

"Каталог git-репозитария: /home/user/gitRepos/ski_show",

"Уже обновлено."

]

}



Данная методика часто пригождается чтобы уменьшить лог работы Ansible-скриптов.


Так же в этом разделе:
 
MyTetra Share v.0.60
Яндекс индекс цитирования