BCLinux 7 系统批量授权管理


  • BCLinux Developers

    BCLinux 7 系统批量授权管理

    BCLinux 7新增加的授权管理可以方便为系统提供离线/在线的授权管理和跟踪。如果系统未得到授权,那么将不能获得商业操作系统所提供的服务,例如软件包安装及升级服务,技术支持和维护等服务。

    在集群规模比较大的情况下,为了减少工作量,需要通过批量工具进行集群的批量授权管理。本文通过常用的ansible工具,讲述如何进行批量的授权。主要包含两部分:批量获取集群的机器码信息;批量进行集群授权。

    批量收集机器码信息

    1. 安装ansible工具(可以通过搭建本地源安装ansible软件包,这里不做赘述,假设已经搭建完成本地源);
     [root@ansible ~]# yum install ansible
    
    1. 下载有关批量授权管理的ansible脚本,下载地址如下:http://mirrors.bclinux.org/bclinux/public/license_ansible.tar.gz ,将其放置到机器某个目录下(假设放置到root根目录下)并解压;
    [root@ansible ~]# tar -xzvf license_ansible.tar.gz
    

    可以看到解压后生成的目录中,包含了批量收集机器码和批量授权两个目录,各自包含了影响的脚本等。

    1. 配置ansible配置文件hosts,将机器中节点的ip地址等添加到/etc/ansible/hosts文件中(以下例子仅仅作为示范,真实情况要视具体情况而定),并设置/etc/ansible/ansible.cfg中host_key_checking = False,同时打开日志功能 log_path = /var/log/ansible.log(可将配置文件中该选项前的注释去掉或者通过以下的命令行方式设置);
    [root@ansible ~]# cat /etc/ansible/hosts 
    [servers]
    172.16.200.192 ansible_ssh_user=root  ansible_ssh_pass=19900813  ansible_ssh_port=22
    172.16.200.188 ansible_ssh_user=root  ansible_ssh_pass=19900813  ansible_ssh_port=22
    
    [root@ansible ~]# sed -i "s/.*host_key_checking.*/host_key_checking = False/" /etc/ansible/ansible.cfg
    
    [root@ansible ~]# sed -i "s#.*log_path.*#log_path = /var/log/ansible.log#" /etc/ansible/ansible.cfg
    
    1. 执行ansible命令,执行前要确保集群网络的连通性,可以通过ping模块测试下机器中是否有网络节点不通的情况,可以通过输出结果的颜色观察或者查看日志 /var/log/ansible.log查找网络不通的节点;
    [root@ansible ~]# ansible servers -m ping 
    
    1. 清空日志 /var/log/ansible.log,收集机器码信息;
    [root@ansible ~]# echo > /var/log/ansible.log
    [root@ansible ~]# ansible servers -m shell -a "sys-id"
    [root@ansible ~]# ./License_Manager/Code_Collection/get-id.sh /var/log/ansible.log
    

    上述的第二条命令将会批量执行“sys-id”命令或者机器的机器码信息,输出到日志/var/log/ansible.log中,最后通过get-id脚本将会从日志文件中提取出机器码信息,最后的结果保存在License_Manager/Code_Collection/目录下的machine_code.text文本文件中。

    [root@ansible ~]# cat License_Manager/Code_Collection/machine_code.text 
    2DBF4D56-C527-4745-22ED-ED2182BBC149
    E24C4D56-D170-9D4E-2E9C-4FD481002D82
    

    用户通过以下命令确认机器码的数量和机器节点数目是否吻合,如果不吻合,可能是由于网络不通的原因。此时需要根据日志等途径找出网络不通的节点,然后在这些节点上手动执行"sys-id"命令获取机器码信息,再讲机器码信息追加到machine_code.text文本文件中即可。

    [root@ansible ~]# cat License_Manager/Code_Collection/machine_code.text | wc -l
    
    1. 拿到集群的机器码文本文件machine_code.text后,还需要将机器码信息上传到BCLinux客户服务平台。用户在订阅BCLinux 7系统时会得到平台的账号密码信息,凭此登录平台,平台的地址为:https://bcc.bclinux.org/app/index.html#/page/login ,如下图所示:

    客户服务平台界面

    登录平台后,点击右侧的“订阅”-->“我的订阅”,然后测试点击项目进入授权管理信息上传界面,如下图所示:

    客户服务平台授权信息上传界面

    首先点击模板下载,下载模板到本地,模板如下图所示,

    模板

    用户只需要将得到的机器码文本文件(如下图所示),直接整体复制粘贴到模板文件中的第一例即可,粘贴后的模板文件如下图示,

    machine_code

    包含机器码的模板文件

    然后选择界面的文件上传,最后保存即可。

    1. 用户通过客户服务系统平台上传了机器码信息以后,需要后台的管理员进行审批,审批通过后,用户即可再次通过平台,点击文本下载,最后生成的文本文件中包含了机器码和对应的授权信息,如下图所示。

    授权信息下载界面

    集群批量授权

    该步骤是将用户自己下载得到的包含机器码和授权码的文本文件通过ansible批量分发给各个机器,通过在各个机器上获取机器码,然后从文件文件从检索到相应的授权码信息,完成机器的授权工作。

    1. 将BCLinux返回给用户的包含授权码的文本文件重命名为''license.text'',然后放置在License_Manager/Code_Distribution/scripts/目录下即可;
    [root@ansible ~]# mv 2018-02-23.text license.text
    [root@ansible ~]# mv license.text License_Manager/Code_Distribution/scripts/
    
    1. 执行ansible-play批量将授权码分发到集群的各个节点;
    [root@ansible ~]# ansible-playbook License_Manager/Code_Distribution/playbook/license.yaml
    

    此外,对于因为网络不通导致的某些节点授权失败(可通过颜色显示或者日志查看),可以通过在这些节点上手动添加授权码到/etc/bclinux/license文件中也可以完成授权。


登录后回复
 

与 BC-LINUX 的连接断开,我们正在尝试重连,请耐心等待