Назад | Перейти на главную страницу

Как отобразить вывод 2 команд в анзибле?

---
- hosts: all
  gather_facts: false
  user: 
  become: yes

  tasks:

  - name: Checking current kernel on Target Server
    shell: hostname;uname -r
    register: output
  - debug: msg= "{{ output.stdout }}"

Удалите пробел после "=". Правильный синтаксис

- debug: msg="{{ output.stdout }}"

, или

- debug:
    var: output.stdout

или даже лучше

- debug:
    var: output.stdout_lines

В то время как Владимир прав насчет вывода стандартного вывода команд с отладкой, доступ к выпуску ядра и имени хоста можно получить с минимальным набором фактов:

---
- hosts: all
  gather_facts: True
  gather_subset: min
  become: False

  tasks:
  - name: hostname
    debug:
      var: ansible_hostname

  - name: kernel version
    debug: 
      var: ansible_kernel
  • Ваши переменные доступны без регистрации. Вы также получите несколько дополнительных фактов, например ansible_distribution
  • В min набора фактов достаточно, что позволяет избежать обнаружения большого количества оборудования и выполняется довольно быстро.
  • Не было необходимости становиться привилегированным пользователем.
  • Избегали использования shell. У которого менее очевидные виды отказов, чем у сбора фактов.