GNU/Linux >> Znalost Linux >  >> Linux

jak vytvořit Ansible playbook pro získání verzí OS vzdálených hostitelů?

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 a ansible_... jsou integrovány a automaticky shromažďovány Ansible
  • ansible_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: .


Linux
  1. Jak vytvořit Ansible Playbook

  2. Jak předat další proměnné do příručky Ansible

  3. Jak nainstalovat softwarové balíčky pomocí Ansible playbooku

  1. Jak vytvořit soubor v Ansible

  2. Jak vytvořit uživatele Linuxu pomocí Ansible

  3. Jak získat cestu k ploše v gnome

  1. Ansible Playbook:Jak vytvářet a konfigurovat Playbooky

  2. Jak používat značky v Ansible Playbook (příklady)

  3. Jak spravovat vzdáleného hostitele Windows pomocí Ansible