2016-06-01 2 views
0

У меня есть простая загружаемая игра Ansible, в которой используется необработанный модуль для отображения установленных пакетов choco на моих клиентах Windows. Это выглядит следующим образом:Ansible: Как получить зарегистрированную переменную в скрипт python

- name: Get info 
    hosts: win_clones 
    tasks: 
    - name: Get packages list installed on clients ... 
     raw: choco list -lo 
     register: result0 
    - debug: msg="{{result0}}" 

Поскольку я бегу этот сборник пьес из питона сценария, я хотел бы получить содержание зарегистрированной переменной в переменную питона, который я могу использовать в моем сценарии. Обычно зарегистрированная переменная печатается на экране как формат JSON. Я хотел бы получить имя клиента и содержимое stdout_lines. Вот результат моего сборника пьес:

ok: [cl1] => { 
"msg": { 
    "changed": false, 
    "rc": 0, 
    "stderr": "", 
    "stdout": "chocolatey 0.9.9.11\r\nnotepadplusplus 6.9\r\nnotepadplusplus.install 6.9\r\n3 packages installed.\r\n", 
    "stdout_lines": [ 
     "chocolatey 0.9.9.11", 
     "notepadplusplus 6.9", 
     "notepadplusplus.install 6.9", 
     "3 packages installed." 

    ] 
} 

}

Возможно ли это? Как мне продолжить? спасибо

ответ

0

Возможно, вы сможете сделать callback plugin, который извлекает интересующую вас ценность и сохраняет ее в файл, который вы можете прочитать позже.

Вот пример playbook result log callback

+0

Я бегу анзибль 2.1.0.0, этот рабочий также для этой версии? спасибо – diegus

+0

Этот конкретный пример может не сработать, но есть также [этот пример json] (https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/callback/json.py) и целый куча других [примеров] (https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/callback/). – Jieter

Смежные вопросы