当前位置: 首页 > 工具软件 > xCAT > 使用案例 >

利用xCAT在centos系统上自动批量部署系统

林修真
2023-12-01

环境准备

  镜像文件 一个iso的镜像文件 我的是centos7
  压缩包  wget https://xcat.org/files/xcat/xcat-dep/2.x_Linux/xcat-dep-2.14.2-linux.tar.bz2
  wget https://xcat.org/files/xcat/xcat-core/2.14.x_Linux/xcat-core/xcat-core-2.14.2-linux.tar.bz2

安装XCAT

1.解压已下好的压缩包
tar -xjvf xcat-core-2.14.2-linux.tar.bz2
tar -xjvf xcat-dep-2.14.2-linux.tar.bz2
2.配置yum源环境
[root@master ~]# /opt/xcat-core/mklocalrepo.sh
[root@master ~]# /opt/xcat-dep/rh7/x86_64/mklocalrepo.sh
我的包是解压在opt目录下,各位视自己情况更改命令
执行成功后应在/etc/yum.repos.d/目录下生成两个yum配置文件xcat-core.repo和xcat-dep.repo
3.验证yum是否正常使用
[root@master ~]# yum clean all //若出现开头为Pack的进程阻拦yum命令,用kill -9 (进程号)命令即可
[root@master ~]# yum list available
4.安装xCAT及其依赖包
安装过程中可能会遇到即将安装的libvirt版本与系统中已安装的libvirt版本冲突,则需要用yum remove libvirt* -y卸载已安装的libvirt
[root@master ~]# yum install xCAT -y
5.利用xcat的环境变量脚本设置针对xcat的环境变量
[root@master ~]# source /etc/profile.d/xcat.sh
每个终端每次开机使用都要运行一次,当然可以加入~/.bashrc,
就不用每次开机都要运行了。

服务端的配置

1.修改site表中的内容
[root@master ~]# tabdump site //查看
主要注意ip地址,domain名字,nameservers,forwards字段;不对要更改。
[root@master ~]# chtab key=master site.value=192.168.43.200
[root@master ~]# chtab key=domain site.value=example.com
[root@master ~]# chtab key=nameservers site.value=192.168.43.2
[root@master ~]# chtab key=forwarders site.value=192.168.43.1
2.修改networks表中的内容
[root@master ~]# tabdump networks //查看
[root@master ~]# chtab netname=192_168_43_0-255_255_255_0 networks.net=192.168.43.0 networks.mask=255.255.255.0 networks.gateway=192.168.43.1 networks.dhcpserver=192.168.43.200 networks.tftpserver=192.168.43.200 networks.nameservers=192.168.43.200 networks.ntpservers=192.168.43.200
[root@master ~]# tabdump networks //再次查看
3.设置未来客户端的root密码
[root@master ~]# chtab key=system passwd.username=root passwd.password=redhat
4.设置/etc/hosts文件,添加集群中的所有节点的IP及对应的主机名
[root@master ~]# vim /etc/hosts
192.168.43.200 master master.example.com
192.168.43.201 node1 node1.example.com
192.168.43.202 node2 node1.example.com
5.配置DNS服务,利用makedns
[root@master ~]# makedns -n
可以在xcat服务器上(master.example.com)配置DNS指向自己(192.168.43.200)后,通过nslookup验证DNS是否解析正常
[root@master ~]# nmcli connection modify port1 ipv4.dns 192.168.43.200
[root@master ~]# nmcli connection up port1
[root@master ~]# nslookup master.example.com
[root@master ~]# nslookup node1.example.com
[root@master ~]# nslookup node2.example.com
6.配置DHCP服务
警告显示dhcp地址池没有设置,makedhcp只是设置dhcpd.conf配置文件中的一些关键options,用来分配IP地址的地址池需要手工额外设置
[root@master ~]# makedhcp -n
Renamed existing dhcp configuration file to /etc/dhcp/dhcpd.conf.xcatbak
The dhcp server must be restarted for OMAPI function to work
Warning: [master]: No dynamic range specified for 192.168.43.0. If hardware discovery is being used, a dynamic range is required.
[root@master ~]# vim /etc/dhcp/dhcpd.conf
shared-network eno16777736 {
subnet 192.168.43.0 netmask 255.255.255.0 {
range 192.168.43.200 192.168.43.220;
找到对应的subnet字段添加range
[root@master ~]# systemctl restart dhcpd

添加节点

1.添加节点
15. 添加节点
添加的节点是需要通过xcat服务器部署系统的客户端,主要信息为客户端的MAC和IP
可按照如下命令添加多个节点
[root@master ~]# nodeadd node1 groups=compute,all mac.interface=eno16777736 mac.mac=00:50:56:27:F4:9B hosts.ip=192.168.43.201 noderes.netboot=pxe noderes.xcatmaster=192.168.43.200 noderes.installnic=eno16777736 noderes.primarynic=eno16777736 noderes.nfsserver=192.168.43.200 nodetype.os=centos7.2 nodetype.arch=x86_64 nodetype.profile=compute nodetype.nodetype=osi

[root@master ~]# nodeadd node2 groups=compute,all mac.interface=eno16777736 mac.mac=00:50:56:27:6C:CE hosts.ip=192.168.43.202 noderes.netboot=pxe noderes.xcatmaster=192.168.43.200 noderes.installnic=eno16777736 noderes.primarynic=eno16777736 noderes.nfsserver=192.168.43.200 nodetype.os=centos7.2 nodetype.arch=x86_64 nodetype.profile=compute nodetype.nodetype=osi
添加完成后查看所添加的节点信息
[root@master ~]# lsdef node1
[root@master ~]# lsdef node2
2.上传镜像
首先需要将ISO镜像文件通过xftp上传到xcat服务器的/opt目录下,然后才能添加镜像
[root@master ~]# copycds -n centos7.2 /opt/CentOS-7-x86_64-DVD-1511.iso
3.设置应答文件和所需要安装的软件包列表文件
因xcat提供的应答文件模板不一定能提供合适的设置,因此拷贝一份,对个别设置做修改
[root@master ~]# cp /opt/xcat/share/xcat/install/centos/compute.centos7.tmpl /opt/my-centos7.2.tmpl

[root@master ~]# vim /opt/my-centos7.2.tmpl
修改分区大小及文件系统格式
#No RAID
#/boot really significant for this sort of setup nowadays?
#part /boot --size 500 --fstype xfs
#part swap --size 2048
#part / --size 1 --grow --fstype xfs

修改安装过程为图形化
#text mode install (default is graphical)

graphical

调整时区,否则部署的时候会提示时区没有设置
timezone Asia/Shanghai 添加这一行
#timezone --utc “#TABLE:site:key=timezone:value#” 注销这一行

因xcat提供的安装包列表文件模板不一定能提供合适的设置,因此拷贝一份,对个别设置做修改
[root@master ~]# cp /root/anaconda-ks.cfg /opt/my-centos7.2.pkglist
[root@master ~]# vim /opt/my-centos7.2.pkglist 编辑文件只留下如下部分
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
4.绑定应答文件和包文件
使用chdef告知xcat,部署系统所使用的应答文件模板和需要安装的软件包列表文件模板,xcat将根据这两个文件在/install/autoinst目录下生成一个node1文件,这个node1文件是安装系统的应答文件
[root@master ~]# lsdef -t osimage
[root@master ~]# chdef -t osimage centos7.2-x86_64-install-compute template=/opt/my-centos7.2.tmpl pkglist=/opt/my-centos7.2.pkglist
5.生成最终的应答文件
根据上述的两个模板文件生成最终对应的应答文件,分别是/install/autoinst/node1和/install/autoinst/node2
[root@master ~]# nodeset node1 osimage=centos7.2-x86_64-install-compute
[root@master ~]# nodeset node2 osimage=centos7.2-x86_64-install-compute
客户端开机,设置从网络启动即可

 类似资料: