BCLinux Spacewalk 2.6 入门指南


  • BCLinux Developers

    1. 频道管理

    频道是一系列软件包的集合,它可以包含 BCLinux 发行版的软件包,也可以包含一些应用程序的软件包。用户也可以根据需求自定义一个包含特定软件包的频道。
    客户端可以订阅某个频道来下载、更新和安装软件包,获取相应的安全更新提醒。频道链接到上游的服务器(正常的 YUM 仓库)。
    一个频道可以链接到多个仓库,可以被克隆、同步以及自定义。
    频道的类型有两种:

    1. 基础频道
    2. 子频道

    基础频道包含基于特定架构的软件包。子频道是与基础频道相关联、包含额外软件包的频道。
    一个客户端只能订阅一个基础频道,但是可以订阅某个基础频道的多个子频道。

    1.1 新建频道

    登录 Spacewalk 的管理页面,如下顺序新建:

    频道 -> 管理软件频道 -> 创建频道

    本例中新建频道,用于BCLinux 7 系统的软件更新:

    其中父频道为“无”表示新建的为基础频道。

    1.2 新建库

    新建的频道是空的,没有任何软件包,可为频道添加库。
    如下顺序新建库:

    频道 -> 管理软件频道 -> 管理软件包 -> 创建存储库

    举例,添加 BCLinux 7 的在线库:

    1.3 为频道添加库

    为了在 Spacewalk 上使用库,需要将库添加到频道中,可以根据需要为一个频道添加多个库。
    选择你要管理的软件频道,有两种方式添加库:

    1. 新建库(方法见1.2节)
    2. 选择添加已有的库

    1.4 库同步

    源存储库会根据升级、安全及bug修复进行更改或者更新,因此 spacewalk 的库要定期进行同步,以确保当前的软件包是最新的。

    1.4.1 手动同步

    添加库后可进行同步,将库中的软件同步到现有的频道中:

    也可以在服务器端使用命令进行同步更新:

    ~]# spacewalk-repo-sync --channel bclinux7 --type yum
    

    一般第一次同步的时候时间按比较长,可点击以下图标查看更新日志:

    也可以查看进程是否包含:

    ~]# ps -ef | grep sync
    root      20208  16376 49 19:07 ?        00:11:16 /usr/bin/python -u /usr/bin/spacewalk-repo-sync --channel bclinux7 --type yum
    root      22946   2103  0 19:30 pts/0    00:00:00 grep --color=auto sync
    

    同步完成后,查看频道软件包情况:

    1.4.2 自动化同步

    可以选择调度进行自动化的同步:

    2. 创建激活码

    激活码是用来注册系统的,其他系统可使用该激活码注册到指定机构。

    创建激活码顺序如下:
    系统 -> 激活码 -> 创建密钥

    选择该激活码允许系统注册的频道:

    注:任何使用该激活码注册的系统将自动订阅上面选择的基本频道。

    点击“生成激活码” 后,可查看秘钥( 该秘钥用于后面客户端注册 ):

    3. 管理组

    Spacewalk 可以以组的形式管理系统,可以对系统进行批量的更新。

    3.1 创建组

    点击新建:

    填写新建组的组名和描述:

    新建的组的信息如下:

    3.2 添加系统到组

    可以在组中添加目的系统:

    也可以为系统选择要加入的组群:

    3.3 批量管理

    点击 System Set Manager - > 系统查看所选系统:

    3.3.1 升级软件包

    查看可升级的软件包列表,选择需要升级的软件包:

    确认升级:

    查看软件包升级完成情况:

    3.3.2 安装软件包

    选择需要安装的软件包:

    确认安装:

    查看软件包安装完成情况:

    4. OSAD(即时执行更新)

    • osa-dispatcher

    这是服务器端的服务,用于决定哪个运行 osad 实例的客户端需要被 ping 到或运行 rhn_check ,由此把消息传送到客户端。

    • osad

    这是客户端的服务,用于响应服务器的 ping 请求,收到 osa-dispatcher 发来的消息时,自动运行 rhn_check 以响应服务器端的事件。

    • jabberd

    osad 和 osa-dispatcher 都连接到这个守护进程进行消息交互,该进程同时处理鉴权。

    安装部署

    服务器端安装:

    SpaceWalk 服务器端默认已经安装并启动了 osa-dispatcher 和 jabberd 。

    可查看状态:

    ~]# systemctl status osa-dispatcher
    ● osa-dispatcher.service - OSA Dispatcher daemon
       Loaded: loaded (/usr/lib/systemd/system/osa-dispatcher.service; enabled; vendor preset: disabled)
       Active: active (running) since Wed 2017-03-15 10:49:08 CST; 6h ago
      Process: 25894 ExecStart=/usr/sbin/osa-dispatcher --pid-file /var/run/osa-dispatcher.pid (code=exited, status=0/SUCCESS)
      Process: 25891 ExecStartPre=/bin/rm -f /var/run/osa-dispatcher.pid (code=exited, status=0/SUCCESS)
     Main PID: 25896 (osa-dispatcher)
       CGroup: /system.slice/osa-dispatcher.service
               └─25896 /usr/bin/python -s /usr/sbin/osa-dispatcher --pid-file /var/run/osa-dispatcher.pid
    
    Mar 15 10:49:08 node001-dev-bclinux.novalocal systemd[1]: Starting OSA Dispatcher daemon...
    Mar 15 10:49:08 node001-dev-bclinux.novalocal systemd[1]: Started OSA Dispatcher daemon.
    
    ~]# systemctl status jabberd
    ● jabberd.service - Jabber Server
       Loaded: loaded (/usr/lib/systemd/system/jabberd.service; enabled; vendor preset: disabled)
       Active: active (exited) since Wed 2017-03-15 10:48:17 CST; 6h ago
      Process: 25620 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
     Main PID: 25620 (code=exited, status=0/SUCCESS)
       CGroup: /system.slice/jabberd.service
    
    Mar 15 10:48:17 node001-dev-bclinux.novalocal systemd[1]: Starting Jabber Server...
    Mar 15 10:48:17 node001-dev-bclinux.novalocal systemd[1]: Started Jabber Server.
    

    需保证 osa-dispatcher 和 jabberd 在 Spacewalk 服务器中已安装并且启动。

    客户端安装:

    安装 osad:

    ~]# yum install -y osad
    
    ~]# sed -i 's:osa_ssl_cert =:osa_ssl_cert = /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT:' /etc/sysconfig/rhn/osad.conf
    ~]# yum install -y python-hashlib
    

    启动 osad 并设置开启启动:

    ~]# systemctl start osad
    ~]# systemctl enable osad
    

    启动后在管理页面查看客户端:

    状态更新:

    5. 远程命令

    Spacewalk 支持远程在客户端执行命令,选择目标系统查看:

    根据以上提示在目标系统中安装软件包:

    ~]# yum install -y rhncfg-actions
    

    允许远程执行脚本:

    ~]# rhn-actions-control --enable-run
    

    如果不执行该命令远程执行命令会出错:

    关于以上命令的查看相关帮助:

    ~]#  rhn-actions-control --help
    Usage: rhn-actions-control [options]
    
    Options:
      --enable-deploy       Allow rhncfg-client to deploy files.
      --enable-diff         Allow rhncfg-client to diff files.
      --enable-upload       Allow rhncfg-client to upload files.
      --enable-mtime-upload
                            Allow rhncfg-client to upload mtime.
      --enable-run          Allow rhncfg-client the ability to execute remote
                            scripts.
      --enable-all          Allow rhncfg-client to do everything.
      --disable-deploy      Disable deployment.
      --disable-diff        Disable diff.
      --disable-upload      Disable upload.
      --disable-mtime-upload
                            Disable mtime upload.
      --disable-run         Disable remote script execution.
      --disable-all         Disable all options.
      -f, --force           Force the operation without confirmation
      --report              Report the status of the mode settings (enabled or
                            disabled)
      -h, --help            show this help message and exit
    

    在目标系统中安装完后,输入远程要执行的脚本:

    查看事件显示调度成功:

    登录到目标系统中查看是否正确:

     ~]# cat /tmp/test 
     Hello BCLinux  
    

    6. OpenSCAP

    安装:

    ~]# yum install -y spacewalk-oscap
    ~]# yum install -y openscap-utils scap-security-guide
    

    配置一个调度:

    查看调度成功:

    查看详情:

    7. 系统配置

    Spacewalk 可以用对各节点机器进行配置。

    7.1 新建管理频道

    新建配置频道:

    填写频道信息:

    创建配置文件:

    7.2 系统订阅管理频道

    选择要订阅的频道,继续:

    7.3 部署文件

    选择要部署的文件:

    调度:

    查看调度结果:

    到目标系统查看:

    ~]#  cat /tmp/test.conf 
    Hello BCLinux !
    

    配置成功。

    8. 勘误管理

    勘误是发行版厂商(RHEL、BCLinux 等)发布的关于安全更新、bug 修复等的修复方案,可以被引入到Spacewalk 中,并以 email 、 页面公告的方式表明哪些系统/软件包收到了影响。

    如果使用 BCLinux 的源,用户可通过管理平台查看所有系统的安全更新:

    可以查看某个安全更新的详细信息:

    查看受影响的软件包:

    还可以查看受影响的系统,并可以批量地应用安全更新至目的系统进行更新修复:

    用户还可以查看所有的安全更新,比如查看 BCLinux 7 系统至今为止发布的所有安全更新:

    除此之外,用户可以查看与某个系统相关的所有安全更新,自主选择应用安全更新到当前系统进行修复:

    9. 基于角色的访问控制

    集群管理平台账户分为机构管理员和普通用户,机构管理员拥有所有系统分组的权限,并可设置普通用户对系统分组的访问权限。

    机构管理员登录管理页面,为普通用户分配系统组群的访问权限:

    普通用户登录页面,只显示有访问权限的系统组群:

    基于角色的控制,确保用户只能管理他们拥有访问权限的系统组中的系统。

    10. 软件包管理

    系统在注册的时候需订阅一个基础频道,这个频道的作用相当于我们平时系统中使用的 yum 源,用户可通过管理平台对订阅的频道中所有的软件进行管理,并可批量地安装软件包至目的系统。

    例如,查看 BCLinux 7 中所有的软件包:

    查看某个软件的信息:

    批量安装该软件:

    用户可对某个系统的软件包进行管理,操作包括:查看、删除、安装、升级、验证等。