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常用用法。