本发明涉及服务器技术领域,具体涉及一种通过bmc远程自动部署服务器os的方法及系统。
背景技术:
服务器操作系统一般指的是安装在大型计算机上的操作系统,比如web服务器、应用服务器和数据库服务器等,是企业it系统的基础架构平台,服务器操作系统可以实现对计算机硬件与软件的直接控制和管理协调。任何计算机的运行离不开操作系统,服务器也一样。
当前服务器批量部署安装os系统的方法一般都是通过pxe进行安装,pxe安装依赖于系统网络,需要系统网卡支持,对于有些没有系统网卡配置的机器就无法使用这种方式,如果逐台使用光盘或者镜像安装对于大批量服务器部署来说又太浪费时间。
技术实现要素:
为了克服上述现有技术中的不足,本发明提供一种通过bmc远程自动部署服务器os的方法及系统,以解决上述技术问题。
本发明技术方案是:
一种通过bmc远程自动部署服务器os的方法,包括如下步骤:
远程控制机登录待安装服务器bmc获取token值;
根据获取的token值访问远程os镜像服务器bmc,远程挂载远程os镜像服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom;
远程控制机发送命令设置待安装服务器下一次重启的启动项为cdrom;
远程控制机发送命令使待安装服务器重启,进入cdrom开始自动安装系统。
进一步的,步骤远程控制机登录待安装服务器bmc获取token值之前,还包括:
获取待安装服务器bmcip地址。
进一步的,远程控制机根据待安装服务器bmcip地址通过redfish接口登录待安装系统的服务器bmc,获取token值;
远程控制机根据token值访问远程os镜像服务器bmc,并通过readfish接口远程挂载远程os镜像服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom;
远程控制机通过ipmitool发送命令设置待安装服务器下一次重启的启动项为cdrom;
远程控制机通过ipmitool发送命令使待安装服务器重启,进入cdrom开始自动安装系统。
进一步的,步骤远程控制机根据token值访问远程os镜像服务器bmc,并通过readfish接口远程挂载远程os镜像服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom,包括:
设置远程虚拟镜像的配置;
启动远程虚拟镜像挂载生成虚拟cdrom。
进一步的,步骤设置远程虚拟镜像的配置,包括:
配置虚拟镜像的url路经;
配置远程挂载镜像服务器及路径。
进一步的,步骤配置远程挂载镜像服务器及路径,包括:
设置远程os镜像服务器类型为nfs;
设置远程os镜像服务器即nfs服务器ip地址;
设置待安装的os镜像文件所在服务器的路径。
进一步的,若待安装服务器数量为多个,遍历所有bmcip地址同时执行上述步骤实现批量os系统的安装;
其中,遍历所有bmcip地址,包括:
遍历所有待安装系统的服务器bmcip地址;
将所有bmcip地址整理到bmc_ip地址文件中,其中,每个ip地址一行;
将bmc_ip地址文件中的bmcip地址作为参数传递给远程控制机。
本发明技术方案还提供一种通过bmc远程自动部署服务器os的系统,包括待安装服务器、nfs服务器和远程控制机;
待安装服务器分别和nfs服务器和远程控制机之间建立通信链接;待安装服务器分别和nfs服务器建立通信连接;
nfs服务器,用于存储os镜像文件;
远程控制机,用于根据待安装服务器bmcip地址登录待安装服务器bmc获取token值;
远程控制机,用于根据获取的token值访问远程nfs服务器bmc,远程挂载nfs服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom;
远程控制机,还用于发送命令设置待安装服务器下一次重启的启动项为cdrom;
远程控制机,还用于发送命令使待安装服务器重启进入cdrom开始自动安装系统。
进一步的,待安装服务器内部设有bmcredfish模块;
远程控制机,用于根据bmcip地址通过bmcredfish模块登录待安装服务器bmc获取token值;
远程控制机,用于根据获取的token值访问远程nfs服务器bmc,并通过bmcredfish模块远程挂载nfs服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom。
进一步的,远程控制机内设有远程挂载函数模块;
远程挂载函数模块,用于使远程控制机根据bmcip地址通过bmcredfish模块登录待安装服务器bmc获取token值;
远程挂载函数模块,还用于使远程控制机根据token值访问远程os镜像服务器bmc,并通过bmcredfish模块远程挂载远程os镜像服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom。
远程挂载函数模块,用于通过ipmitool发送命令设置待安装服务器下一次重启的启动项为cdrom;
远程挂载函数模块,用于通过ipmitool发送命令使待安装服务器重启,进入cdrom开始自动安装系统。
进一步的,待安装服务器数量为若干个;
远程控制机,还用于遍历所有待安装服务器的bmcip地址同步执行远程挂载函数模块实现远程批量自动安装os。
获取待安装系统的服务器bmcip地址,保存os镜像文件的nfs或者cifs服务器的ip地址和os镜像文件路径。
首先根据bmcip地址通过redfish接口登录bmc,获取访问bmc的token值,然后通过redfish接口根据bmc指定的url路径远程挂载os服务器上的os镜像到待安装服务器,建立虚拟cdrom,然后通过ipmitool发送命令设置待安装服务器下一次重启的启动项为cdrom,最后用ipmitool远程发送命令使待安装服务器重启。这样待安装服务器重启后就会自动从挂载的虚拟cdrom启动,开始自动安装os,从而完成远程自动安装os。
从以上技术方案可以看出,本发明具有以下优点:是无需系统网络,只需要通过bmc远程挂载os镜像就可以进行批量自动部署安装os。本方法适用于所有支持bmcredfish模块的服务器,无需系统网络,就可实现远程批量服务器系统部署安装,大大节省系统部署时间,提高服务器的部署效率。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为一种通过bmc远程自动部署服务器os的方法流程示意图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
实施例一
一种通过bmc远程自动部署服务器os的方法,包括如下步骤:
s1:远程控制机根据待安装服务器bmcip地址通过redfish接口登录待安装系统的服务器bmc,获取token值;
s2:远程控制机根据token值访问远程os镜像服务器bmc,并通过readfish接口远程挂载远程os镜像服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom;
s3:远程控制机通过ipmitool发送命令设置待安装服务器下一次重启的启动项为cdrom;
s4:远程控制机通过ipmitool发送命令使待安装服务器重启,进入cdrom开始自动安装系统。
实施例二
如图1所示,一种通过bmc远程自动部署服务器os的方法,包括如下步骤:
s1:远程控制机登录待安装服务器bmc获取token值;
本步骤中,远程控制机通过redfish接口登录待安装系统的服务器bmc,获取token值;
url="https://"+ip+"/redfish/v1/sessionservice/sessions"//指定url路径
curl-c${cookie_file}-k$url-xpost--data"username=${username}&password=$password//根据url路径,使用curl工具登录bmc,获取token
{"ok":0,"privilege":4,"extendedpriv":259,"racsession_id":1,"remote_addr":"100.2.74.79","server_name":"100.2.74.43","server_addr":"100.2.74.43","httpsenabled":0,"csrftoken":"bnbuawsp"}//此为curl命令的执行结果,其中bnbuawsp为token值
s2:根据获取的token值访问远程os镜像服务器bmc,远程挂载远程os镜像服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom;
根据上述,本步骤中,远程控制机根据token值访问远程os镜像服务器bmc,并通过readfish接口远程挂载远程os镜像服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom;具体包括:
设置远程虚拟镜像的配置;其中,包括配置虚拟镜像的url路经;
配置远程挂载镜像服务器及路径,其中,包括设置远程os镜像服务器类型为nfs;设置远程os镜像服务器即nfs服务器ip地址;设置待安装的os镜像文件所在服务器的路径;
启动远程虚拟镜像挂载生成虚拟cdrom。
设置vmedia配置
url=https://ip/redfish/v1/managers/1/vmedia/instance//配置虚拟镜像的url路经
data={
"cd_remote_server_address":"192.168.0.112",//nfs服务器ip地址
"cd_remote_share_type":"nfs",//远程os镜像服务器类型选择nfs
"cd_remote_source_path":"/opt/bmc/nfs",//要安装的os镜像文件所在服务器的路径
}
curl-k-b${cookie_file}$url-xpost–d$data-h"x-csrftoken:${csrf_token}"//配置远程挂载镜像服务器及路径
启动vmedia远程挂载
url=
“https://ip/redfish/v1/managers/1/vmedia/actions/remotemedia.start”
curl-k-b${cookie_file}$url-xpost-h"x-csrftoken:${csrf_token}"//启动远程虚拟镜像挂载,生成虚拟cdrom。
s3:远程控制机发送命令设置待安装服务器下一次重启的启动项为cdrom;
命令如下:
ipmitool–ilanplus–h$bmc_ip–uusername–ppasswordchassisbootdevcdrom
进一步说明的是,远程控制机通过ipmitool发送命令设置待安装服务器下一次重启的启动项为cdrom;
命令如下:
ipmitool–ilanplus–h$bmc_ip–uusername–ppasswordpowerreset
s4:远程控制机发送命令使待安装服务器重启,进入cdrom开始自动安装系统;
进一步的,远程控制机通过ipmitool发送命令使待安装服务器重启,进入cdrom开始自动安装系统;
若待安装服务器数量为多个,本方法还包括步骤s5;
s5:遍历所有待安装服务器bmcip地址同时执行上述步骤s1-s4,实现批量os系统同步安装。
需要说明的是,遍历所有待安装服务器bmcip地址,包括:
遍历所有待安装系统的服务器bmcip地址;
将所有bmcip地址整理到bmc_ip地址文件中,其中,每个ip地址一行;
将bmc_ip地址文件中的bmcip地址作为参数传递给远程挂载函数。
本方法为自动化实现方法,需要编写自动化脚本,遍历所有服务器bmcip地址,后台同时执行以上步骤就可实现批量自动安装部署os。
编写shell脚本,把以上步骤的命令封装到一个函数(remote_mount)中,然后遍历要安装系统的服务器bmcip地址,同步执行远程挂载函数remote_mount就可实现远程批量自动安装os,实现方法如下:
把所有bmcip地址整理到bmc_ip_file.csv中,每个ip地址一行
forbmc_ipin`catbmc_ip_file.csv`
do
{
remote_mount$bmc_ip//把bmcip地址作为参数传递给远程挂载函数,执行远程镜像挂载和系统安装
}&//加“&”符号后for循环中命令会后台同步执行,这样所有服务器bmcip就可以实现后台同步执行,实现批量同步系统安装。
实施例三
本发明技术方案还提供一种通过bmc远程自动部署服务器os的系统,包括待安装服务器、nfs服务器和远程控制机;
待安装服务器分别和nfs服务器和远程控制机之间建立通信链接;待安装服务器分别和nfs服务器建立通信连接;
nfs服务器,用于存储os镜像文件;
远程控制机,用于根据待安装服务器bmcip地址登录待安装服务器bmc获取token值;
远程控制机,用于根据获取的token值访问远程nfs服务器bmc,远程挂载nfs服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom;
远程控制机,还用于发送命令设置待安装服务器下一次重启的启动项为cdrom;
远程控制机,还用于发送命令使待安装服务器重启进入cdrom开始自动安装系统。
待安装服务器内部设有bmcredfish模块;
远程控制机,用于通过bmcredfish模块登录待安装服务器bmc获取token值;
远程控制机,用于根据获取的token值访问远程nfs服务器bmc,并通过bmcredfish模块远程挂载nfs服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom。
远程控制机内设有远程挂载函数模块;
远程挂载函数模块,用于使远程控制机根据bmcip地址通过bmcredfish模块登录待安装服务器bmc获取token值;
远程挂载函数模块,还用于使远程控制机根据token值访问远程os镜像服务器bmc,并通过bmcredfish模块远程挂载远程os镜像服务器上的系统镜像到待安装服务器,生成虚拟系统安装盘cdrom。
远程挂载函数模块,用于通过ipmitool发送命令设置待安装服务器下一次重启的启动项为cdrom;
远程挂载函数模块,用于通过ipmitool发送命令使待安装服务器重启,进入cdrom开始自动安装系统。
获取待安装系统的服务器bmcip地址,保存os镜像文件的nfs或者cifs服务器的ip地址和os镜像文件路径。
待安装服务器数量为若干个;
远程控制机,还用于遍历所有待安装服务器的bmcip地址同步执行远程挂载函数模块实现远程批量自动安装os。
首先根据bmcip地址通过redfish接口登录bmc,获取访问bmc的token值,然后通过redfish接口根据bmc指定的url路径远程挂载os服务器上的os镜像到待安装服务器,建立虚拟cdrom,然后通过ipmitool发送命令设置待安装服务器下一次重启的启动项为cdrom,最后用ipmitool远程发送命令使待安装服务器重启。这样待安装服务器重启后就会自动从挂载的虚拟cdrom启动,开始自动安装os,从而完成远程自动安装os。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。