xCAT部署物理机操作系统(新)

最后更新于:2022-04-01 14:19:00

首先我们假定两台机器,机器名和ip地址分别如下 xcat masterhostname: xcatip: 192.168.31.102xcat nodehostname: xcat1ip: 192.168.31.251 具体操作步骤如下: ### 配置xCAT基本信息 ~~~ chtab key=master site.value=192.168.31.102 chtab key=domain site.value=xcatdomain # 根据具体情况配置,这个属性最后会被写到每个node的/etc/resolv.conf文件里 chtab key=nameservers site.value=192.168.31.102 # 根据具体情况配置,这个属性最后会被写到每个node的/etc/resolv.conf文件里 chtab key=forwarders site.value=192.168.31.1 ~~~ 另外用”tabdump networks”命令来检查一下networks表信息是否和上面site表的信息一致,如果不一致可以使用下面的命令修改 ~~~ chtab netname=192_168_31_0-255_255_255_0 \ networks.net=192.168.31.0 \ networks.mask=255.255.255.0 \ networks.gateway=192.168.31.1 \ networks.dhcpserver=192.168.31.102 \ networks.tftpserver=192.168.31.102 \ networks.nameservers=192.168.31.102 \ networks.ntpservers=192.168.31.102 ~~~ ### 配置Password 可以使用“tabdump passwd”查看 ~~~ chtab key=system passwd.username=root passwd.password=Letmein ~~~ ### 配置Host ~~~ makehosts ~~~ 配置后/etc/hosts文件内容大致如下 ~~~ 127.0.0.1 localhost 192.168.31.102 xcat xcat.xcatdomain ~~~ - 注意xcat master必须配置进去,因为 makedns 命令要求管理节点必须是domain的一部分,所以如果没有需要手动添加。 ### 配置DNS ~~~ makedns -n service named restart ~~~ ### 配置DHCP ~~~ makedhcp -n ~~~ - 如果此时dhcp服务不能启动,编辑/etc/init.d/dhcpd文件,将 ~~~ user=dhcpd group=dhcpd 改为 user=root group=root ~~~ 然后重新启动dhcpd服务 ~~~ /etc/init.d/dhcpd restart ~~~ ### 创建本地操作系统安装文件 ~~~ copycds -n centos5.11 -a x86_64 CentOS-5.11-x86_64-bin-DVD-1of2.iso CentOS-5.11-x86_64-bin-DVD-2of2.iso copycds -n centos6.6 -a x86_64 CentOS-6.6-x86_64-bin-DVD1.iso CentOS-6.6-x86_64-bin-DVD2.iso copycds /appstore/iso/rhel-server-6.5-x86_64-dvd.iso ~~~ 添加完成后可以使用下面命令来查看 ~~~ lsdef -t osdistro lsdef -t osimage ~~~ ### 配置节点 ~~~ nodeadd xcat1 \ groups=compute,all \ mac.interface=eth0 \ mac.mac=08:00:27:2C:30:8C \ hosts.ip=192.168.31.251 \ noderes.netboot=pxe \ noderes.xcatmaster=192.168.31.102 \ noderes.installnic=eth0 \ noderes.primarynic=eth0 \ noderes.nfsserver=192.168.31.102 \ nodetype.os=centos6.6 \ nodetype.arch=x86_64 \ nodetype.profile=compute \ nodetype.nodetype=osi ~~~ 添加完成后可以使用下面的命令来查看各种信息 ~~~ tabdump nodelist tabdump nodetype tabdump noderes tabdump mac tabdump hosts ~~~ 然后运行下面命令 ~~~ makehosts xcat1 makedhcp xcat1 ~~~ ### 设置部署系统 ~~~ nodeset xcat1 osimage=centos5.11-x86_64-install-compute ~~~ 由于使用的是虚拟机做测试,没有IPMI功能,所以我们只能手动启动xcat1机器,然后就会发现xcat1进入自动安装系统了。 如果有物理机支持IPMI功能,可以参考我前面发的另一篇博客 [xCAT 通过 IPMI 远程部署安装操作系统](http://blog.csdn.net/kongxx/article/details/44181711) 转载请以链接形式标明本文地址 本文地址:[http://blog.csdn.net/kongxx/article/details/44572255](http://blog.csdn.net/kongxx/article/details/44572255)
';

xCAT在多网卡的物理机上装rhel6时需要人为选择网卡问题

最后更新于:2022-04-01 14:18:58

### 问题描述 今天在一台双网卡的物理机上安装rhel5的时候一切顺利,但是在安装rhel6的时候不能自动选择网卡安装,会弹出一个窗口让选择使用em1还是em2。 ### 问题原因 原因是我在添加节点的时候使用的是类似下面的语句,此时在rhel6上安装脚本会选择是使用eth0来安装,但是因为我们的两块网卡此时被识别成了em1和em2,所以找不到eth0,导致无法执行安装,需要人为来选择使用那一块网卡。 ~~~ nodeadd <node> mac.interface=eth0 mac.mac=... noderes.installnic=eth0 noderes.primarynic=eth0 ... ~~~ ### 解决办法 将noderes.installnic和noderes.primarynic改成使用mac,类似如下语句 ~~~ nodeadd <node> mac.interface=eth0 mac.mac=... noderes.installnic=mac noderes.primarynic=mac ... ~~~ 对应上面的语句,xCAT会在mac表和noderes中都各添加一条记录,此时noderes.installnic和noderes.primarynic被定义成mac意思是使用mac表中定义的网卡,此时就可以自动安装了。 这个修改对rhel5和rhel6都适应。 转载请以链接形式标明本文地址 本文地址:[http://blog.csdn.net/kongxx/article/details/44279775](http://blog.csdn.net/kongxx/article/details/44279775)
';

xCAT 通过 IPMI 远程部署安装操作系统

最后更新于:2022-04-01 14:18:56

接前面几篇xCAT的博客,假定我们已经添加了操作系统并设置了必要的属性,现在需要通过 IPMI 来远程控制物理机使用网络启动来安装操作系统。 ~~~ # 设置使用 IPMI nodech <noderange> nodehm.power=ipmi nodehm.mgt=ipmi # 设置 IPMI 的IP地址,用户名和密码等属性 nodech <noderange> ipmi.bmc=<ipmi ip address> ipmi.username=<ipmi username> ipmi.password=<ipmi password> # 设置要安装的操作系统镜像 nodeset <noderange> osimage=rhel5.8-x86_64-install-compute # 设置机器使用网络启动 rsetboot <noderange> net # 重启机器执行安装 rpower <noderange> reset ~~~ 参考:http://blog.csdn.net/kongxx/article/details/44033623 转载请以链接形式标明本文地址 本文地址:http://blog.csdn.net/kongxx/article/details/44181711
';

xCAT安装与更新软件

最后更新于:2022-04-01 14:18:54

接前面几篇xCAT的文章,今天看看xCAT怎样安装与升级软件,我们分安装更新发行版包和非发行版包两种情况。 首先使用 lsdef 命令来查看一下 osimage 的信息,比如 ~~~ lsdef -t osimage centos6.6-x86_64-install-compute ... pkgdir=/install/centos6.6/x86_64 pkglist=/opt/xcat/share/xcat/install/centos/compute.centos6.pkglist otherpkgdir=/install/custom/centos6.6/x86_64/ otherpkglist=/install/custom/centos6.6/x86_64/mypkgs.pkglist ... ~~~ 这里注意一下上面列出的几个属性 * pkgdir 定义了发行版包的位置 * pkglist 定义了要安装的发行版包列表 * otherpkgdir 定义了非发行版包的位置 * otherpkglist 定义了要安装的非发行版包列表 如果缺少某个属性的话,说明在定义的时候没有指定这个属性。 **安装更新发行版包** 1. 要安装或更新发行版中的包,只需要把要安装或更新的包添加到pkglist定义的文件里 2. 运行 “updatenode <noderange> -S” 命令 **安装更新非发行版包** 1. 首先创建一个目录用来放附加软件包,比如 ~~~ mkdir -p /install/custom/centos6.6/x86_64/ ~~~ 2. 然后将附加的rpm包复制到此目录,比如使用我前面博客中生成的那个helloworld-1.0.0-1.el6.x86_64.rpm包 ~~~ cp helloworld-1.0.0-1.el6.x86_64.rpm /install/custom/centos6.6/x86_64/ ~~~ 3. 在此目录下运行 “createrepo” 来创建本地仓库 ~~~ cd /install/custom/centos6.6/x86_64/ createrepo . ~~~ 4. 创建一个包安装列表文件,比如 "/install/custom/centos6.6/x86_64/mypkgs.pkglist",内容如下: ~~~ helloworld ~~~ 5. 修改 osimage 的 otherpkgdir 和 otherpkglist 属性 ~~~ chdef -t osimage centos6.6-x86_64-install-compute \ otherpkgdir=/install/custom/centos6.6/x86_64/ \ otherpkglist=/install/custom/centos6.6/x86_64/mypkgs.pkglist ~~~ 6. 运行 "updatenode <noderange> -S" 命令来安装新包 7. 如果要更新软件包,只要将新的rpm包放到/install/custom/centos6.6/x86_64/目录下,然后再次运行 "updatenode <noderange> -S" 命令即可。 **参考** http://sourceforge.net/p/xcat/wiki/Using_Updatenode/ 转载请以链接形式标明本文地址 本文地址:http://blog.csdn.net/kongxx/article/details/44132613
';

xCAT安装Kit

最后更新于:2022-04-01 14:18:51

本文链接:[http://blog.csdn.net/kongxx/article/details/44086779](http://blog.csdn.net/kongxx/article/details/44086779) **生成Kit文件结构** 首先使用buildkit工具来生成一个Kit,比如这里我们假定我们的Kit名字叫helloworld ~~~ buildkit create helloworld ~~~ 上面命令会在用户的根目录下生成一个helloworld目录,下面是生成的目录结构,这里我们只是想做一下测试,所以我什么都没有改,生成的目录结构直接就可以打包成Kit包 ~~~ helloworld/ ├── buildkit.conf ├── docs │   └── index.html ├── other_files │   └── sample │   ├── exclude.lst │   └── kitdeployparams.lst ├── plugins │   └── sample │   ├── imageprofile.pm │   └── nodemgmt.pm ├── scripts │   └── sample │   ├── genimage_post.sh │   ├── postboot.sh │   ├── post.sh │   ├── postun.sh │   ├── postup.sh │   ├── pre.sh │   ├── preun.sh │   └── preup.sh └── source_packages └── sample ├── pkg1 │   └── pkg1-1-1.noarch.rpm ├── pkg2 │   ├── pkg2 │   │   ├── cfg │   │   │   └── pkg2.cfg │   │   └── files │   │   ├── pkg2.file1 │   │   └── pkg2.file2 │   └── pkg2.spec ├── pkg3 │   ├── pkg3.spec │   └── pkg3.tar.gz └── pkg4 └── pkg4-1-1.src.rpm ~~~ **修改配置文件** 编辑buildkit.conf文件,这个文件还是比较容易理解的,里面注释也比较详细,其中主要定义了kit,kitrepo,kitcomponent和kitpackage等。 但是配置文件中有一个属性compat_osbasenames需要特别注意一下,如果目标机器都是rh的机器,可以忽略,但是如果是centos的话,需要修改这个属性的定义 ~~~ compat_osbasenames=centos ~~~ **打包** 使用下面的命令打包,结果会在helloworld目录下生成一个helloworld-1.0-1.tar.bz2文件 ~~~ cd ~/helloworld buildkit buildrepo all buildkit buildtar ~~~ 如果修改了文件想重新生成kit包,需要先运行“buildkit cleanall”然后再运行上面的打包命令。 **添加Kit** 首先在xCAT环境下可以使用 lskit 来查看已添加的Kit和KitComponent,比如 ~~~ lskit lskit helloworld-1.0-1 lsdef -t kit -l helloworld-1.0-1 lskitcomp ~~~ 然后可以使用 addkit 命令来添加上面建立的kit,添加完成后可以用上面的命令查看一下 ~~~ addkit helloworld-1.0-1.tar.bz2 ~~~ 如果要删除的话,可以使用 rmkit 命令 ~~~ rmkit helloworld-1.0-1 ~~~ 下一步是检查上面添加的kit是不是可以被osimage使用,首先我们来查看一下当前系统有哪些osimage ~~~ lsdef -t osimage ~~~ 然后用 chkkitcomp 命令来检查有效性 ~~~ chkkitcomp -i centos6.6-x86_64-install-compute helloworld_compute-1.0-1-rh-6.6-x86_64 ~~~ 如果检查结果可用,那么就可以使用 addkitcomp 来给 osimage 添加kitcomponent了 ~~~ addkitcomp -a -i centos6.6-x86_64-install-compute helloworld_compute-1.0-1-rh-6.6-x86_64 ~~~ 当然添加后也可以使用 rmkitcomp 来删除 ~~~ rmkitcomp -i centos6.6-x86_64-install-compute helloworld_compute-1.0-1-rh-6.6-x86_64 ~~~ **升级node** ~~~ chdef <nodelist> provmethod=<osimage> updatenode <nodelist> 比如 chdef <nodelist> provmethod=centos6.6-x86_64-install-compute updatenode <nodelist> ~~~ 此时就会在node节点上安装kit了,安装完成后可以使用 “xdsh <node> yum search helloworld” 来查看安装后的结果。 **参考** http://sourceforge.net/p/xcat/wiki/Building_Software_Kits http://sourceforge.net/p/xcat/wiki/Using_Software_Kits_in_OS_Images
';

xCAT错误Unable to dispatch hierarchical sub-command to NORESOLUTION:3001.

最后更新于:2022-04-01 14:18:49

**问题:** 在xCAT中运行“xdsh ”等命令出现下面错误 Error: Unable to dispatch hierarchical sub-command to NORESOLUTION:3001. This service node may be down or its xcatd daemon may not be responding. **解决办法:** 用“tabdump site”查看配置信息发现master的值是NORESOLUTION,用chtab命令修改master值为xcat所在机器IP,如下: chtab key=master site.value=’<XCAT_HOST_IP>′
';

xCAT部署物理机操作系统

最后更新于:2022-04-01 14:18:47

首先我们假定两台机器,机器名和ip地址分别如下 ~~~ xcat master hostname: xcat ip: 192.168.31.102 xcat node hostname: xcat1 ip: 192.168.31.251 ~~~ 具体操作步骤如下: 1. 创建本地操作系统安装文件 ~~~ copycds -n centos5.11 -a x86_64 CentOS-5.11-x86_64-bin-DVD-1of2.iso CentOS-5.11-x86_64-bin-DVD-2of2.iso copycds -n centos6.6 -a x86_64 CentOS-6.6-x86_64-bin-DVD1.iso CentOS-6.6-x86_64-bin-DVD2.iso ~~~ 2. 配置xCAT基本信息 ~~~ chtab key=master site.value=192.168.31.102 chtab key=domain site.value=xcatdomain # 根据具体情况配置,这个属性最后会被写到每个node的/etc/resolv.conf文件里 chtab key=nameservers site.value=192.168.31.102 # 根据具体情况配置,这个属性最后会被写到每个node的/etc/resolv.conf文件里 chtab key=forwarders site.value=192.168.31.1 ~~~ 另外用"tabdump networks"命令来检查一下networks表信息是否和上面site表的信息一致,如果不一致可以使用下面的命令修改 ~~~ chtab netname=192_168_31_0-255_255_255_0 \ networks.net=192.168.31.0 \ networks.mask=255.255.255.0 \ networks.gateway=192.168.31.1 \ networks.dhcpserver=192.168.31.102 \ networks.tftpserver=192.168.31.102 \ networks.nameservers=192.168.31.102 \ networks.ntpservers=192.168.31.102 ~~~ 3. 配置password,可以使用“tabdump passwd”查看 ~~~ chtab key=system passwd.username=root passwd.password=Letmein ~~~ 4. 配置节点 ~~~ nodeadd xcat1 \ groups=compute,all \ mac.interface=eth0 \ mac.mac=08:00:27:2C:30:8C \ hosts.ip=192.168.31.251 \ noderes.netboot=pxe \ noderes.xcatmaster=192.168.31.102 \ noderes.installnic=eth0 \ noderes.primarynic=eth0 \ noderes.nfsserver=192.168.31.102 \ nodetype.os=centos6.6 \ nodetype.arch=x86_64 \ nodetype.profile=compute \ nodetype.nodetype=osi ~~~ 添加完成后可以使用下面的命令来查看各种信息 ~~~ tabdump nodelist tabdump nodetype tabdump noderes tabdump mac tabdump hosts ~~~ 5. 配置host ~~~ makehosts ~~~ 配置后/etc/hosts文件内容大致如下 ~~~ 127.0.0.1 localhost 192.168.31.102 xcat 192.168.31.251 xcat1 ~~~ * 注意xcat master必须配置进去,因为 makedns 命令要求管理节点必须是domain的一部分,所以如果没有需要手动添加。 6. 配置dns ~~~ makedns -n service named restart ~~~ 7. 配置DHCP ~~~ makedhcp -n ~~~ * 编辑/etc/init.d/dhcpd文件,将 ~~~ user=dhcpd group=dhcpd 改为 user=root group=root ~~~ 然后重新启动dhcpd服务 ~~~ /etc/init.d/dhcpd restart ~~~ 8. 设置部署系统 ~~~ nodeset xcat1 osimage=centos5.11-x86_64-install-compute ~~~ 此时可以看到类似下面的输出结果,说明xcat1机器将会安装centos6.6-x86_64-compute ~~~ xcat1: install centos6.6-x86_64-compute ~~~ 如果我们需要修改安装的系统可以使用下面的命令来修改 ~~~ chtab node=xcat1 \ nodetype.os=centos5.11 \ nodetype.arch=x86_64 \ nodetype.profile=compute \ nodetype.nodetype=osi nodeset xcat1 install ~~~ 此时可以看到xcat1机器将会安装centos5.11-x86_64-compute ~~~ xcat1: install centos5.11-x86_64-compute ~~~ 9. 由于使用的是虚拟机做测试,没有IPMI功能,所以我们只能手动启动xcat1机器,然后就会发现xcat1进入自动安装系统了。
';

CentOS6X上xCAT离线安装

最后更新于:2022-04-01 14:18:45

这里我使用的CentOS版本是6.6,xCAT使用的最新的2.8版本。另外为了说明方便安装全程使用的都是root用户。 首先下载xCAT的离线包 ~~~ wget http://sourceforge.net/projects/xcat/files/xcat/2.8.x_Linux/xcat-core-2.8.5.tar.bz2/download wget http://sourceforge.net/projects/xcat/files/xcat-dep/2.x_Linux/xcat-dep-201502061114.tar.bz2/download ~~~ 解压安装包 ~~~ tar jxvf xcat-core-2.8.5.tar.bz2 tar jxvf xcat-dep-201502061114.tar.bz2 ~~~ 创建xCAT本地yum仓库 ~~~ cd /root/xcat-dep/rh6/x86_64; ./mklocalrepo.sh cd /root/xcat-core; ./mklocalrepo.sh ~~~ 创建后就会在/etc/yum.repos.d目录下生成两个yum仓库文件xCAT-core.repo和xCAT-dep.repo 安装xCAT ~~~ yum clean metadata yum install -y xCAT ~~~ 检查xCAT是否安装正确 ~~~ source /etc/profile.d/xcat.sh tabdump site ~~~ 安装xCAT UI ~~~ yum install -y php yum install -y xCAT-UI-deps yum install -y xCAT-UI ~~~ 然后访问http://<xcat_host>/xcat并使用linux用户root登录系统。
';

CentOS6X上xCAT在线安装

最后更新于:2022-04-01 14:18:42

这里我使用的CentOS版本是6.6,xCAT使用的最新的2.8版本。另外为了说明方便安装全程使用的都是root用户。 下载在线yum仓库文件 ~~~ cd /etc/yum.repos.d wget http://sourceforge.net/projects/xcat/files/yum/2.8/xcat-core/xCAT-core.repo wget http://sourceforge.net/projects/xcat/files/yum/xcat-dep/rh6/x86_64/xCAT-dep.repo ~~~ 安装xCAT ~~~ yum clean metadata yum install -y xCAT ~~~ 检查xCAT是否安装正确 ~~~ source /etc/profile.d/xcat.sh tabdump site ~~~ 安装xCAT UI ~~~ yum install -y php yum install -y xCAT-UI-deps yum install -y xCAT-UI ~~~ 然后访问http://<xcat_host>/xcat并使用linux用户root登录系统。
';

前言

最后更新于:2022-04-01 14:18:40

> 原文出处:[xCat实战](http://blog.csdn.net/column/details/xcat.html) 作者:[孔凡斌](http://blog.csdn.net/kongxx) **本系列文章经作者授权在看云整理发布,未经作者允许,请勿转载!** # xCat实战 > 本系列文章通过一些实践操作由浅入深的介绍了xCat常用用法。
';