Ansible - список Linux обновлений безопасности, необходимых на удаленных серверах - PullRequest
0 голосов
/ 10 марта 2020

Я хотел запустить playbook, который будет точно сообщать, если один из удаленных серверов требует обновления безопасности. Ansible сервер = Centos 7, удаленные серверы Amazon Linux.

При запуске удаленный сервер выделит что-то вроде следующего:

https://aws.amazon.com/amazon-linux-2/ 8 пакетов ) необходим для безопасности, из 46 доступных Запустите «sudo yum update», чтобы применить все обновления.

Чтобы подтвердить это, я собрал сборник пьес, собранный из множества источников (ниже), который выполняет эту функцию для степень. Он действительно предлагает, требует ли удаленный сервер обновления безопасности, но не говорит, что это за обновления?

- name: check if security updates are needed
  hosts: elk
  tasks:
    - name: check yum security updates
      shell: "yum updateinfo list all security"
      changed_when: false
      register: security_update

    - debug: msg="Security update required"
      when: security_update.stdout != "0"

    - name: list some packages
      yum: list=available

Затем, когда я запускаю свои обновления, установите playbook:

- hosts: elk
  remote_user: ansadm
  become: yes
  become_method: sudo
  tasks:

    - name: Move repos from backup to yum.repos.d
      shell: mv -f /backup/* /etc/yum.repos.d/
      register: shell_result
      failed_when: '"No such file or directory" in shell_result.stderr_lines'

    - name: Remove redhat.repo
      shell: rm -f /etc/yum.repos.d/redhat.repo
      register: shell_result
      failed_when: '"No such file or directory" in shell_result.stderr_lines'

    - name: add line to yum.conf
      lineinfile:
        dest: /etc/yum.conf
        line: exclude=kernel* redhat-release*
        state: present
        create: yes

    - name: yum clean
      shell: yum make-cache
      register: shell_result
      failed_when: '"There are no enabled repos" in shell_result.stderr_lines'

    - name: install all security patches
      yum:
       name: '*'
       state: latest
       security: yes
       bugfix: yes
       skip_broken: yes

После установки вы получите что-то похожее на приведенное ниже (кстати, это выходы с разных серверов)

https://aws.amazon.com/amazon-linux-2/ Пакеты безопасности не требуются ; 37 доступных пакетов Запустите «sudo yum update», чтобы применить все обновления.

Но если я снова запусту свой список воспроизведения обновлений безопасности списка - он выдаст ложное срабатывание, так как по-прежнему сообщает о необходимых обновлениях безопасности?

ИГРАТЬ [проверить, нужны ли обновления безопасности] *********************************** *

ЗАДАЧА [Сбор фактов] ************************************** ******************* ok: [10.10.10.192]

TASK [проверить обновления безопасности yum] *********** *********************************** ok: [10.10.10.192]

ЗАДАЧА [ отладка] ************************************************ ******************* ok: [10.10.10.192] => { "msg": "Требуется обновление безопасности" }

ЗАДАЧА [список некоторых пакетов] ******************************************* *********** ok: [10.10.10.192]

PLAY RECAP ************************ ********************************************* 10.10.10.192: нормально = 4 изменено = 0 недоступно = 0 не удалось = 0 пропущено = 0 спасено = 0 проигнорировано = 0

[ansadm@ansible playbooks] $

Что мне нужно пропустить / включить в playbook, чтобы отразить изменения после установки обновлений?

Заранее спасибо:)

1 Ответ

0 голосов
/ 10 марта 2020

Итак, я запустил вашу команду yum локально в моей системе, и я получил следующее:

45) local-user@server:/home/local-user> yum updateinfo list all security
Loaded plugins: ulninfo
local_repo                                                                                                                                                                   | 2.9 kB  00:00:00
updateinfo list done

Теперь, если наши системы могут иметь другой вывод здесь, но это послужит цели моего объяснения. Вывод всей команды сохраняется в вашем регистре, но ваш условный запрос запускается, когда вывод этой команды НЕ ТОЛЬКО «0».

Так что, если вы не сравните этот ответ с некоторыми awk или sed, и он ответит любым другим текстом, буквально просто символом "0", эта задача отладки всегда будет запускаться.

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