Вывод Ansible apt-get для установки

Я использую vagrant с ansible playbook для автоматической установки набора программ на образ ubuntu. Одна программа не может быть установлена ​​на бродячей виртуальной машине. В файле Vagrant у меня есть

config.vm.provision :ansible do |ansible|
  ansible.verbose = "vvv"
  ansible.playbook = "provisioning/playbook.yml"
end

но подробный вывод не включает вывод apt-get. Мой playbook.yml выглядит так

---
- hosts: all
  sudo: true
  tasks:
    - name: get vi
      apt: state=latest name=vim  

Как я могу увидеть вывод консоли отдельных (или всех) apt-get install на виртуальной машине, поскольку вместо этого ansible выводит каждую установку в формате

TASK: [Install vim] *********************************************************** 
failed: [default] => {"failed": true}
...

person myol    schedule 01.12.2015    source источник


Ответы (3)


Вы можете зарегистрировать в переменной вывод выполнения модуля apt, а затем распечатать его.

- hosts: localhost
  sudo: true
  tasks:
    - name: get vi
      apt: state=latest name=vim
      register: aptout

    # show the content of aptout var
    - debug: var=aptout
person RuBiCK    schedule 02.12.2015

Воспроизведение stdout из apt

Вот как воспроизвести stdout из apt

---
- name: 'apt: update & upgrade'
  apt:
    update_cache: yes
    cache_valid_time: 3600
    upgrade: safe
  register: apt
- debug: msg={{ apt.stdout.split('\n')[:-1] }}

… с красивыми разрывами строк благодаря .split('\n') и пропуском последней пустой строки с помощью [:-1], конечно, все это манипуляции со строками в Python.

"msg": [
    "Reading package lists...", 
    "Building dependency tree...", 
    "Reading state information...", 
    "Reading extended state information...", 
    "Initializing package states...", 
    "Building tag database...", 
    "No packages will be installed, upgraded, or removed.", 
    "0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.", 
    "Need to get 0 B of archives. After unpacking 0 B will be used.", 
    "Reading package lists...", 
    "Building dependency tree...", 
    "Reading state information...", 
    "Reading extended state information...", 
    "Initializing package states...", 
    "Building tag database..."
]
person Serge Stroobandt    schedule 14.06.2017

В версии ansible, которую я использую в данный момент, ansible-playbook -v кажется достаточным для получения подходящего вывода. По общему признанию, я не тестировал отказы. Вывод находится в форме JSON, что немного затрудняет чтение (поскольку другой ответ работает).

Версия Ansible, которую я тестировал, была 2.3.2.0.

person sourcejedi    schedule 23.09.2017