---
- 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 }}"
答案1
删除“=”后的空格。正确的语法是
- debug: msg="{{ output.stdout }}"
, 或者
- debug:
var: output.stdout
甚至更好
- debug:
var: output.stdout_lines
答案2
虽然 Vladimir 关于使用调试转储命令的标准输出的说法是正确的,但是可以通过最少量的事实收集来访问内核版本和主机名:
---
- 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
。与事实收集相比,其故障模式不太明显。