Použijte jeden z následujících výrazů Jinja2:
{{ hostvars[inventory_hostname].ansible_distribution }}
{{ hostvars[inventory_hostname].ansible_distribution_major_version }}
{{ hostvars[inventory_hostname].ansible_distribution_version }}
kde:
hostvars
aansible_...
jsou integrovány a automaticky shromažďovány Ansibleansible_distribution
je hostitel zpracovávaný Ansible
Například za předpokladu, že máte spuštěnou roli Ansible test_role
proti hostiteli host.example.com
běžící distribuce CentOS 7:
---
- debug:
msg: "{{ hostvars[inventory_hostname].ansible_distribution }}"
- debug:
msg: "{{ hostvars[inventory_hostname].ansible_distribution_major_version }}"
- debug:
msg: "{{ hostvars[inventory_hostname].ansible_distribution_version }}"
vám dá:
TASK [test_role : debug] *******************************************************
ok: [host.example.com] => {
"msg": "CentOS"
}
TASK [test_role : debug] *******************************************************
ok: [host.example.com] => {
"msg": "7"
}
TASK [test_role : debug] *******************************************************
ok: [host.example.com] => {
"msg": "7.5.1804"
}
Strukturovaným způsobem:
- hosts: all
become: no
vars:
output_file: os.csv
tasks:
- block:
# For permisison setup.
- name: get current user
command: whoami
register: whoami
run_once: yes
- name: clean file
copy:
dest: "{{ output_file }}"
content: 'hostname,distribution,version,release'
owner: "{{ whoami.stdout }}"
run_once: yes
- name: fill os information
lineinfile:
path: "{{ output_file }}"
line: "{{ ansible_hostname }},\
{{ ansible_distribution }},\
{{ ansible_distribution_version }},\
{{ ansible_distribution_release }}"
# Tries to prevent concurrent writes.
throttle: 1
delegate_to: localhost
Vytvoří čárkami oddělený soubor s názvem os.csv
v prováděcí složce. Můžete použít libovolné proměnné, které chcete upravit line:
.
Jak mohu nainstalovat nejnovější Anacondu s wget
Jaký je účinek nastavení linuxového socketu - vysoká priorita?