Ansible playbook для проверки операционной системы - PullRequest
0 голосов
/ 04 февраля 2020

Как проверить установленную операционную систему и продолжить загрузку файла, если в системе установлено Oracle Linux.

Это то, что я имею до

- hosts: all
  become: true
  gather_facts: true
  tasks:
    - name: Check if oracle linux is installed
      shell: |
        cat: /etc/system-release
      register: os_name
      ignore_errors: yes
    - debug:
      msg: "{{os_name.stdout}}"```

Ответы [ 3 ]

0 голосов
/ 05 февраля 2020

Вы должны использовать вывод ansible gather_facts: yes, чтобы ваш ansible playbook был общим для всех платформ, иначе чтение /etc/system-release не будет работать на всех платформах. См.

- hosts: all
  become: true
  gather_facts: yes

  tasks:
    - name: Distribution
      debug: msg="{{ ansible_distribution }}"
0 голосов
/ 05 февраля 2020

Все остальные ответы верны. Если по каким-либо причинам (например, python недоступно для вашего целевого хоста) вы не можете / не хотите собирать факты, вот такой уродливый способ:

- hosts: whatever
  gather_facts: no
  tasks:
    - name: Register the system release
      raw: cat /etc/system-release
      register: system_release
      changed_when: no
      check_mode: no

    - name: Do something for Oracle systems
      ...
      when: "{{ system_release.stdout|trim is match('.*Oracle Linux.*') }}"
0 голосов
/ 04 февраля 2020
- hosts: all
  become: yes
  gather_facts: true
  tasks:     

     - name: downloading file if Oracle Linux is there
       get_url:
              url: #url of the file to download 
              dest: #path where you want to store it eg. /etc/downloaded-file
              mode: '0600' #permissions to be given to the file
       when: ansible_facts['distribution'] == "OracleLinux" 

вы можете прочитать эти ссылки.
1. Обнаружение переменной из системы: Факты
2. Загрузка файлов с HTTP, HTTPS или FTP на узел

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...