Я пытаюсь запустить команду обновлений списка yum и вывести результат в файл на локальном сервере. Это будет масштабировано для работы на нескольких серверах. Я нашел модуль local_action, но это приводит к нечитаемому файлу. Я нашел команду -debug: var: result для отображения необходимой информации в хорошем формате, но, похоже, нет способа сбросить ее в файл.
Ниже представлена инструкция:
---
- hosts: localhost
tasks:
- name: List all available updates
yum:
list: updates
register: result
- debug:
var: result
- local_action:
module: copy
content: "{{ result.results }}"
dest: "/root/yumlist.yml"
Задача отладки возвращает следующий результат: *
ok: [localhost] => {
"result": {
"changed": false,
"failed": false,
"results": [
{
"arch": "x86_64",
"envra": "0:firefox-68.4.1-1.el7_7.x86_64",
"epoch": "0",
"name": "firefox",
"release": "1.el7_7",
"repo": "rhel-7-server-rpms",
"version": "68.4.1",
"yumstate": "available"
},
{
"arch": "x86_64",
"envra": "0:fribidi-1.0.2-1.el7_7.1.x86_64",
"epoch": "0",
"name": "fribidi",
"release": "1.el7_7.1",
"repo": "rhel-7-server-rpms",
"version": "1.0.2",
"yumstate": "available"
},
и local_action дает мне это ...
[{"envra": "0: firefox-68.4.1-1.el7_7.x86_64", "name": "firefox", "repo": "rhel-7-server-rpms", "epoch": "0 "," версия ":" 68.4.1 "," выпуск ":" 1.el7_7 "," yumstate ":" доступный "," arch ":" x86_64 "}, {" envra ":" 0: fribidi-1.0 .2-1.el7_7.1.x86_64 "," имя ":
Любые идеи?
Если вы не возражаете против вывода json или yaml и просто хотите выглядеть лучше, вы можете попробовать пару фильтров (to_nice_json или to_nice_yaml) Ссылка.
- local_action:
module: copy
content: "{{ result.results |to_nice_json }}"
dest: "/root/yumlist.yml"
или
- local_action:
module: copy
content: "{{ result.results |to_nice_yaml }}"
dest: "/root/yumlist.yml"