经过前面两篇文章的操作,我们就已经可以使用Spacewalk安装系统了,但在真实场景中我们经常会需要通过 Spacewalk 来管理软件包,比如:安装、升级和删除软件包,下面我们就来看看通过 Spacewalk 怎样实现这些功能。
安装软件包
访问 Systems -> Systems -> 选中机器 -> Software -> Packages -> Install
* 在 Filter 里输入Telnet(这里我们假定需要在客户机上安装telnet工具)并选中 telnet 软件包(比如:telnet-0.17-48.el6)
* 点击 "Install Selected Packages" 按钮
* 在 "Confirm Package Install" 页面直接点 Confirm 按钮
* 然后在 Systems -> Systems -> 选中机器 -> Events -> Pending 页面就会出现一个pending event
* 登录到客户机,然后运行 rhn_check 命令,这个命令就会把上一步的 pending event 执行了
* 然后在客户机可以使用 “rpm -qa | grep telnet” 来查看结果。在 Spacewalk 上也可以观察 Pending Event 就没有了,而在 History Event 里多了一条执行完成后的记录。
升级软件包
对于已经安装过的软件,如果 Spacewalk 的 Channel 里包括的 Repositories 中有新的软件版本,此时在访问 Systems -> Systems 的时候就会在列表中机器的 Packages 列显示需要升级的软件个数。访问 Systems -> Systems -> 选中机器 -> Software -> Packages -> Upgrade
* 选中需要升级的软件包, 点击 "Upgrade Packages" 按钮
* 在 “ Confirm Package Upgrade ” 页面直接点 Confirm 按钮
* 然后在 Systems -> Systems -> 选中机器 -> Events -> Pending 页面就会出现一个pending event
* 登录到客户机,然后运行 rhn_check 命令。
删除软件包
访问 Systems -> Systems -> 选中机器 -> Software -> Packages -> List / Remove
* 在 Filter 里输入要删除的软件包并选中
* 选中需要升级的软件包, 点击 "Remove Packages" 按钮
* 在 “ Confirm Package Removal ” 页面直接点 Confirm 按钮
* 然后在 Systems -> Systems -> 选中机器 -> Events -> Pending 页面就会出现一个pending event
* 登录到客户机,然后运行 rhn_check 命令。
最后,由于对软件包的安装、升级和删除操作都需要在客户机上执行 rhn_check 命令,所以我们可以通过写一个 cron job 来实现自动执行。
比如我们写一个脚本文件来执行 rhn_check 命令
# cat my_rhn_check.sh
#!/bin/bash
ret=`ps -ef | grep python | grep rhn_check | wc -l`
if [ $ret = 0 ]; then
/usr/sbin/rhn_check
fi
然后定一个 cron 作业来每分钟运行一次检查
# crontab -e
* * * * * /root/my_rhn_check.sh
最后重新启动 crond 服务
# sudo /etc/init.d/crond restart
Spacewalk 的详细介绍:请点这里
Spacewalk 的下载地址:请点这里