本文鏈接:[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