基于VMware的CentOS 7.8上xCAT初次安装和使用

26 阅读2分钟

概要

目的:通过终端(下面的root机)管理多个子机(子节点),达成推送系统安装等控制效果。

事先关闭Selinux和防火墙

systemctl stop firewalld.service #关闭防火墙
systemctl status firewalld.service #查看防火墙状态
systemctl start firewald.service #打开防火墙
systemctl disable firewalld.service #开机禁用防火墙
systemctl enable firewald.service #开机启动防火墙
systemctl is-enabled firewalld.service #查看防火墙是否开机启动
#Enabled状态为开机自启 disabled状态为开机不自启
/usr/sbin/sestatus -v #查看selinux状态
echo 0 > /etc/selinux/enforce # 关闭seLinux
sed -i 's/^SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config
#需reboot

安装xCAT服务

本地安装

将xcat-core和xcat-dep放入root下某一目录 image.png

解压

image.png

image.png

生成repo

image.png

yum安装xCAT

yum install xCAT

检查安装是否成功

[root@centos78 x86_64]# source /etc/profile.d/xcat.sh
[root@centos78 x86_64]# tabdump site
#key,value,comments,disable
"blademaxp","64",,
"fsptimeout","0",,
"installdir","/install",,
"ipmimaxp","64",,
"ipmiretries","3",,
"ipmitimeout","2",,
"consoleondemand","no",,
"master","192.168.10.199",,  #应该为主机的IP
"forwarders","8.8.8.8,114.114.114.114",,
"nameservers","192.168.10.199",, #应该为主机的IP
"maxssh","8",,
"ppcmaxp","64",,
"ppcretry","3",,
"ppctimeout","0",,
"powerinterval","0",,
"syspowerinterval","0",,
"sharedtftp","1",,
"SNsyncfiledir","/var/xcat/syncfiles",,
"nodesyncfiledir","/var/xcat/node/syncfiles",,
"tftpdir","/tftpboot",,
"xcatdport","3001",,
"xcatiport","3002",,
"xcatconfdir","/etc/xcat",,
"timezone","PRC",,
"useNmapfromMN","no",,
"enableASMI","no",,
"db2installloc","/mntdb2",,
"databaseloc","/var/lib",,
"sshbetweennodes","ALLGROUPS",,
"dnshandler","ddns",,
"vsftp","n",,
"cleanupxcatpost","no",,
"dhcplease","43200",,
"auditnosyslog","0",,
"auditskipcmds","ALL",,

配置DHCP

chtab key=dhcpinterfaces site.value='192.168.10.199|ens33'
# 或者 chdef -t site dhcpinterfaces=ens33
#查看修改
lsdef -t site -z | grep dhcpinterfaces
# 结果:dhcpinterfaces=192.168.10.199|ens33

设置domain

chtab key=domain site.value=hpc #hpc可替换为自己的domain名称
# 或者 chdef -t site domain=hpc

设置时区

tabdump site|grep timezone # 查看时区
chdef -t site timezone=Asia/Shanghai #更改时区

设置密码

配置passwd表

[root@xcat ~]# chtab key=system passwd.username=root passwd.password=123.asd #修改管理节点的密码

# tabdump passwd 查看密码

[root@xcat ~]# chtab key=blade  passwd.username=USERID passwd.password=PASSWORD

[root@xcat ~]# chtab key=ipmi   passwd.username=USERID passwd.password=PASSWORD

根据您提供的命令,您已经使用 chtab 命令配置了 passwd 表中不同类型的对象的用户名和密码。下面是对您提供的命令的解释:

  1. chtab key=system passwd.username=root passwd.password=123.asd

    • 这个命令是在 system 类型的对象中配置了用户名为 root 的密码为 123.asd。通常情况下,system 对象代表着 xCAT 管理的计算节点或者服务器。
  2. chtab key=blade passwd.username=USERID passwd.password=PASSWORD

    • 这个命令是在 blade 类型的对象中配置了用户名为 USERID 的密码为 PASSWORDblade 对象通常代表着服务器的刀片,这些信息可能用于访问服务器的管理接口。
  3. chtab key=ipmi passwd.username=USERID passwd.password=PASSWORD

    • 这个命令是在 ipmi 类型的对象中配置了用户名为 USERID 的密码为 PASSWORDipmi 对象通常代表着服务器的 IPMI 接口,这些信息可能用于通过 IPMI 远程管理服务器。

虽然在虚拟机环境中您可能不需要配置 bladeipmi 类型的对象,但是在实际的硬件环境中,这些信息可能是必需的,因为它们用于访问服务器的管理接口,以便远程管理服务器。

设置postscripts表

tabedit postscripts	#添加hardeths

# 空格填入hardeths,这几个脚本中hardeths为系统默认就有
# 它指定节点设置固定IP地址,否则默认是DHCP的
#node,postscripts,postbootscripts,comments,disable
"xcatdefaults","syslog,remoteshell,syncfiles,______","otherpkgs",,
"service","servicenode",,,

复制系统镜像

[root@centos78 ~]# cd iso/
[root@centos78 iso]# copycds CentOS-7.8-x86_64-DVD-2003.iso
Copying media to /install/centos7.8/x86_64
Media copy operation successful
[root@centos78 iso]# lsdef -t osimage
centos7.8-x86_64-install-compute  (osimage)
centos7.8-x86_64-netboot-compute  (osimage)
centos7.8-x86_64-statelite-compute  (osimage)

配置计算节点

磁盘分区

#cd /opt/xcat/share/xcat/install/centos
#vi compute.centos7.tmpl

#%include /tmp/partitionfile #注释掉

#No RAID
#添加
part /boot --size 1024 --fstype ext4
part /boot/efi --size 200 --fstype efi
part swap --size 16384
part / --size 1 --grow --fstype ext4

#
# text mode install (default is graphical)
#
graphical #更改

依赖包

vi /opt/xcat/share/xcat/install/centos/compute.centos7.pkglist

#Please make sure there is a space between @ and group name
wget
ntp
nfs-utils
net-snmp
rsync
yp-tools
openssh-server
util-linux
net-tools
gcc
pciutils
gtk2
atk
cairo
gcc-gfortran
tcsh
lsof
tcl
tk
ipmitool
ksh
m4

批量创建节点信息

批量添加ip信息

#!/bin/bash
for((i=1;i<2;i++));do
echo c_ip[$[$i+10]]=192.168.10.20$i > c_ip.sh #同一个网段
done

批量添加name

#!/bin/bash
for((i=1;i<2;i++));do
echo c_name[$[$i+10]]=c$[$i+10] > c_name.sh
done

批量添加mac

#!/bin/bash
for((i=1;i<2;i++));do
echo c_mac[$[$i+10]]= > c_mac.sh # MAC地址需要后续手动添加
done

批量添加BMC IP

#!/bin/bash
for((i=1;i<2;i++));do
echo c_bmc[$[$i+10]]=10.0.1.$i > c_bmc.sh # 虚拟机用不到,此时IP设置不会有影响
done

执行脚本

image.png

[root@centos78 xCATres]# chmod +x *.c

修改脚本权限,运行脚本

image.png

修改c_mac.sh

image.png image.png

批量添加节点

source c_name.sh
source c_mac.sh
source c_ip.sh
source c_bmc.sh

for ((i=1; i<2; i++)) ; do
mkdef -t node -f ${c_name[$[$i+10]]} groups=compute,all ip=${c_ip[$[$i+10]]} mac=${c_mac[$[$i+10]]} netboot=xnba \
arch=x86_64 bmc=${c_bmc[$[$i+10]]} bmcusername=user bmcpassword=pwd123 \
mgt=ipmi serialport=0 serialspeed=115200
done

这里可能会出问题,下面是官方的添加节点命令:

mkdef -t node cn1 --template x86_64-template ip=192.168.0.3 mac=42:3d:0a:05:27:0c bmc=10.4.40.254 bmcusername=USERID bmcpassword=PASSW0RD

image.png

检查节点信息

tabdump nodelist

image.png

tabdump ipmi

image.png

tabdump mac

image.png

tabdump networks

image.png

更新网络信息

makehosts
makenetworks
makedhcp -n
#makedns -n

查看hosts信息

image.png

cat /etc/hosts

创建计算节点虚拟机

最低要求2G内存,不然可能出问题,然后MAC地址对应

推送命令

推送系统

nodeset c11 osimage=centos7.8-x86_64-install-compute

NODE开始安装 image.png

批量传输

pscp  /root/aa.sh c1:/root/
#pscp  from  nodename:to

批量执行命令

psh c1 date
psh c1-c5 date
#命令  节点信息  具体操作命令

可能遇到的问题

网络配置问题

参考Vmware虚拟机Linux配置固定IP地址(详细版)_虚拟机固定ip-CSDN博客

卡在节点系统安装过程中

检查内存是否足够,节点命令试试官方的,计算节点硬盘分区是否正确