Tronde.ansible_role_rhel_patchmanagement
RHEL补丁管理
针对红帽企业Linux服务器的补丁管理。
使用案例
在我们的环境中,我们为各部门部署RHEL服务器,以运行他们的应用程序。
这个角色是为了提供一个机制,使在目标节点上每月安装一次红帽咨询。系统管理员可以选择安装哪些咨询,例如RHSA、RHBA和/或RHEA。
在我们的特殊使用案例中,只安装RHSA,以确保最低的安全性。安装每月强制进行一次。咨询被汇总为“补丁集”。这样可以确保在补丁周期内所有阶段使用相同的咨询。
在Ansible库存中,节点被总结到以下组之一,这些组定义了节点何时安排进行补丁安装:
- [rhel-patch-phase1] - 每月的第二个星期二
- [rhel-patch-phase2] - 每月的第三个星期二
- [rhel-patch-phase3] - 每月的第四个星期二
- [rhel-patch-phase4] - 每月的第四个星期三
如果目标节点上的软件包被更新,主机会在之后重启。
由于生产系统最为重要,因此它们分为两个单独的组(phase3和phase4),以减少由于安装咨询而导致的故障和服务停机风险。
当然,您可以选择将哪些主机放入哪个阶段,以及您希望在哪一天运行补丁周期。请随意根据您的需求调整该角色。
使用Bash脚本在到期日触发运行补丁管理的剧本。
一旦角色设置完成,RHEL补丁管理将全面自动运行。请随时使用问题跟踪器询问关于角色使用或角色本身的问题,并报告您可能发现的错误。
如何获取咨询信息?
要检索咨询信息并在vars/main.yml
中创建补丁集,您必须运行脚本create_vars.sh
。
有关咨询的进一步信息,您可以从客户门户订阅红帽咨询通知,或使用yum updateinfo list all
命令获取咨询信息。
角色变量
vars/main.yml
中的角色变量由create_vars.sh
脚本自动设置,该脚本由cron触发。
示例剧本
包括一个如何使用您角色的示例(例如,作为参数传递的变量)对用户来说总是很好:
hosts: all
tasks:
- name: 按操作系统分组 group_by: key=os_{{ ansible_distribution }} changed_when: False
hosts: os_RedHat roles:
- rhel_patchmanagement
如何使用此角色
请注意,以下操作指南是根据上述使用案例来工作的。如果您的使用案例不同,您可能需要调整某些内容。我假设您已经克隆了此repo或下载了所有必要的文件。之后,您需要执行以下步骤来使RHEL补丁管理正常工作。
- 编辑
run_rhel_patch_mgmt.sh
并插入用于连接到您的节点的ssh私钥。 - 创建一个cron作业,在每个星期二和星期三的指定时间运行
run_rhel_patch_mgmt.sh
。该脚本将根据上面提到的使用案例在这些时间触发ansible剧本。您可以根据需要进行调整。 - 您可能需要编辑
patch_rhel.yml
以适应您的需求。默认情况下,该剧本会在您的库存中所有安装了红帽操作系统的主机上运行,并且这些主机是相应的rhel-patch-phaseX组的成员。 - 将variables.txt.example重命名为variables.txt,并相应地编辑文件以适应您的环境。
- 编辑
create_vars.sh
,将源路径设置为variables.txt文件的绝对路径。 - 将variables.py.example重命名为variables.py,并编辑文件以指定ansible库存文件的绝对路径。
- 默认情况下,
create_vars.sh
在每月的第一个星期二运行,以创建一个新的vars/main.yml
文件,其中包含当前的补丁集和mail_text.txt
文件。 - 您可以使用函数
send_mail
自动将通知发送到指定的电子邮件地址。默认情况下启用此功能。 - 可选:您可以使用
mail_text.txt
的内容通知用户将要安装的咨询。
许可证
MIT
作者信息
- 原作者: Joerg Kastning <joerg(dot)kastning(at)uni-bielefeld(dot)de>
ansible-galaxy install Tronde.ansible_role_rhel_patchmanagement