Каким образом можно использовать Ansible для обновления zabbix-agent?

Как можно переписать данное сообщение, чтобы оно было более структурировано и понятно? 

У меня есть playbook, который должен записывать информацию о версиях zabbix агента в файл, проверять их и, если версия ниже указанной, обновлять агент. Однако, проблема заключается в том, что playbook не сохраняет файл и не обновляет агент. Вот сам playbook:

```yaml
---
- name: Check and update zabbix-agent2
  hosts: all
  become: true

  tasks:
    - name: Check version
      package_facts:
        manager: auto
      register: package_facts_result

    - name: Create results.txt file
      copy:
        content: "{{ package_facts_result.stdout_lines | join('n') }}"
        dest: /ansible/results.txt

    - name: Update zabbix-agent2
      shell: dnf update zabbix-agent2
      when: ansible_facts.packages['zabbix-agent2'][0].version is version('6.4.7', '<>')
```
  • 6 декабря 2023 г. 14:51
Ответы на вопрос 2
Пример playbook'а для обновления zabbix-agent с использованием Ansible:

```yaml
---
- name: Update zabbix-agent
  hosts: all
  become: true

  tasks:
    - name: Check zabbix-agent version
      package_facts:
        manager: auto
      register: package_facts_result

    - name: Save zabbix-agent version to file
      copy:
        content: "{{ package_facts_result.stdout_lines | join('\n') }}"
        dest: /ansible/results.txt

    - name: Update zabbix-agent
      yum:
        name: zabbix-agent2
        state: latest
      when: package_facts_result.ansible_facts.packages['zabbix-agent2'][0].version is version('6.4.7', '<>')
```

В этом playbook'е проводятся следующие действия:
1. Получение информации о версии установленного zabbix-agent с помощью модуля `package_facts` и сохранение результатов в переменную `package_facts_result`.
2. Создание файла `results.txt` и запись в него версии zabbix-agent.
3. Обновление zabbix-agent до последней версии с помощью модуля `yum` только в том случае, если текущая версия ниже заданной (в данном случае "6.4.7").

Проверьте, что у вас установлен модуль `yum` и путь `/etc/ansible/hosts` содержит нужные хосты, а затем запустите playbook с помощью команды `ansible-playbook playbook.yml`.
Для этого есть роль, подключается так:- include_role:name: community.zabbix.zabbix_agentв глобальных переменных пишете так:zabbix_agent2: yesПодробнее -тутИ не нужны эти конструкции по установке, импорту репозитория, и прочего. Вообще почти для всего в ансибле есть роли и модули ansible-galaxy, так гораздо удобнее. Перед любой операцией в ansible подумайте "а есть ли для этого модуль или роль?" и загуглите, я спустя год активного использования ansible не устаю удивляться многообразию их функционала
Похожие вопросы