天天看點

Cobbler部署指南之FAQ處理篇

#####################################################

##如有轉載,請務必保留本文連結及版權資訊

##歡迎廣大運維同仁一起交流linux/unix網站運維技術!

##QQ:335623998

##E-mail:[email protected]

《Cobbler部署指南》系列

九、Cobbler報錯處理

通過cobbler check檢查出現的報錯

紅色标注為報錯關鍵資訊

# cobbler check

httpd does not appear to be running and proxying cobbler, or SELinux isin the way. Original traceback:

Traceback (most recent call last):

File "/usr/lib/python2.4/site-packages/cobbler/cli.py", line 184, in check_setup

s.ping()

File "/usr/lib64/python2.4/xmlrpclib.py", line 1096, in __call__

return self.__send(self.__name, args)

File "/usr/lib64/python2.4/xmlrpclib.py", line 1383, in __request

verbose=self.__verbose

File "/usr/lib64/python2.4/xmlrpclib.py", line 1129, in request

self.send_content(h, request_body)

File "/usr/lib64/python2.4/xmlrpclib.py", line 1243, in send_content

connection.endheaders()

File "/usr/lib64/python2.4/httplib.py", line 804, in endheaders

self._send_output()

File "/usr/lib64/python2.4/httplib.py", line 685, in _send_output

self.send(msg)

File "/usr/lib64/python2.4/httplib.py", line 652, in send

self.connect()

File "/usr/lib64/python2.4/httplib.py", line 636, inconnect

raise socket.error, msg

error: (111, 'Connection refused')

解決啟動httpd服務

service httpd start

Starting httpd: Syntax error on line 10 of /etc/httpd/conf.d/cobbler.conf:

Invalid command 'WSGIScriptAliasMatch', perhaps misspelled or defined by a module not included in the server configuration

[FAILED]#啟動httpd時的報錯,解決方法如下

解決

vim /etc/httpd/conf.d/wsgi.conf

去掉注釋

LoadModule wsgi_module modules/mod_wsgi.so

再啟動httpd服務

Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using x.x.x.x for ServerName

[ OK ]

再進行一些針對apache ServerName參數配置的處理

egrep "ServerName|Listen" /etc/httpd/conf/httpd.conf |grep -v '#'

Listen 172.17.10.14:80

ServerName 80

此步共修複七個需要處理的提示,一個一個解決

The following are potential configuration items that you may want to fix:

1 : service dhcpd isnot running

解決:DHCP先不處理

2 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders'to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.

解決:執行 cobbler get-loaders,系統将自動下載下傳loader程式,完成提示2的修複工作。

# cobbler get-loaders

task started: 2013-03-10_103017_get_loaders

task started (id=Download Bootloader Content, time=Sun Mar 10 10:30:17 2013)

downloading http://dgoodwin.fedorapeople.org/loaders/README to /var/lib/cobbler/loaders/README

downloading http://dgoodwin.fedorapeople.org/loaders/COPYING.elilo to /var/lib/cobbler/loaders/COPYING.elilo

downloading http://dgoodwin.fedorapeople.org/loaders/COPYING.yaboot to /var/lib/cobbler/loaders/COPYING.yaboot

downloading http://dgoodwin.fedorapeople.org/loaders/COPYING.syslinux to /var/lib/cobbler/loaders/COPYING.syslinux

downloading http://dgoodwin.fedorapeople.org/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi

downloading http://dgoodwin.fedorapeople.org/loaders/yaboot-1.3.14-12 to /var/lib/cobbler/loaders/yaboot

downloading http://dgoodwin.fedorapeople.org/loaders/pxelinux.0-3.61 to /var/lib/cobbler/loaders/pxelinux.0

downloading http://dgoodwin.fedorapeople.org/loaders/menu.c32-3.61 to /var/lib/cobbler/loaders/menu.c32

downloading http://dgoodwin.fedorapeople.org/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi

downloading http://dgoodwin.fedorapeople.org/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi

*** TASK COMPLETE ***

3 : debmirror package isnot installed, it will be required to manage debian deployments and repositories

解決:提示說debmirror沒安裝。如果不是安裝 debian之類的系統,此提示可以忽略,如果需要安裝,

安裝 debmirror

yum -y install debmirror

編輯注釋

修改 /etc/debmirror.conf 配置檔案,注釋掉 @dists 和 @arches 兩行

sed -i 's|@dists=.*|#@dists=|' /etc/debmirror.conf

sed -i 's|@arches=.*|#@arches=|' /etc/debmirror.conf

4 : ksvalidator was not found, install pykickstart

解決:安裝ksvalidator

yum install pykickstart -y

5 : The defaultpassword used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still setto'cobbler'and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'"to generate new one

解決:修改cobbler使用者的預設密碼,可以使用如下指令生成密碼,并使用生成後的密碼替換/etc/cobbler/settings中 default_password_crypted 的密碼。

生成密碼指令:

#openssl passwd -1 -salt 'random-phrase-here''[任意密碼]'

openssl passwd -1 -salt 'random-phrase-here''hexun'

$1$random-p$Q1IN9LaNg7yhRKJuY50fV1

6 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

解決:安裝cman工具用于電源管理

yum -y install cman

Restart cobblerd andthen run 'cobbler sync'to apply changes.

修複完畢重新開機cobbler服務,然後運作cobbler sync

7:修複完成以上問題後,同步資訊再檢查

/etc/init.d/cobblerd restart

Stopping cobbler daemon: [ OK ]

Starting cobbler daemon: [ OK ]

再次檢查,又報錯

cobbler check

to

1 : The defaultpassword used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still setto'cobbler'and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'"to generate new one

報錯原因是上面的第五個問題沒完全解決,僅僅生成了密鑰,沒有放入cobbler主配置檔案

vim /etc/cobbler/settings

default_password_crypted: "$1$random-p$Q1IN9LaNg7yhRKJuY50fV1"

再重新開機服務

No configuration problems found. All systems go.

執行cobbler sync

cobbler sync

task started: 2013-03-10_105055_sync

task started (id=Sync, time=Sun Mar 10 10:50:55 2013)

running pre-sync triggers

cleaning trees

removing: /tftpboot/pxelinux.cfg/default

received on stdout: Shutting down dhcpd: [ OK ]

Starting dhcpd: [ OK ]

received on stderr:

running shell triggers from /var/lib/cobbler/triggers/sync/post/*

running python triggers from /var/lib/cobbler/triggers/change/*

running python trigger cobbler.modules.scm_track

running shell triggers from /var/lib/cobbler/triggers/change/*

執行cobbler sync會重新開機相關服務,DHCP服務也會啟動了,第一個提示也就解決了,下面也有說明

[root@cobbler-1014 x86_64]# /etc/init.d/cobblerd restart

Stopping cobbler daemon: [FAILED]

[root@cobbler-1014 x86_64]# cobbler check

執行cobbler sync即可啟動dhcp服務

使用koan重裝系統時報錯

koan --server=172.17.10.14 --list=profiles

File "/usr/bin/koan", line 18, in ?

import koan.app as app

File "/usr/lib/python2.4/site-packages/koan/app.py", line 64, in ?

import configurator

File "/usr/lib/python2.4/site-packages/koan/configurator.py", line 36, in ?

import simplejson as json

ImportError: No module named simplejson

解決:需要安裝simplejson軟體包,

最新版的simplejson要求python 2.6+以上的,CntOS5.8是Python 2.4.3,是以下載下傳的simplejson-2.0.9.tar.gz版本

<a href="https://pypi.python.org/packages/source/s/simplejson/simplejson-2.0.9.tar.gz" target="_blank">https://pypi.python.org/packages/source/s/simplejson/simplejson-2.0.9.tar.gz</a>

安裝步驟:

通路外網下載下傳檔案setuptools-0.6c7-py2.4.egg

然後上傳至客戶機再繼續安裝

tar zxf simplejson-2.0.9.tar.gz

cd simplejson-2.0.9

python setup.py install

建議CentOS5.8 安裝此版本的koan使用可以避免此問題

<a href="ftp://rpmfind.net/linux/epel/5/i386/koan-1.6.6-1.el5.noarch.rpm" target="_blank">ftp://rpmfind.net/linux/epel/5/i386/koan-1.6.6-1.el5.noarch.rpm</a>

koan --server=172.17.10.14 --virt-name=testvm --virt --profile=centos5.8-xen-x86_64

- looking for Cobbler at http://172.17.10.14:80/cobbler_api

- reading URL: http://172.17.10.14/cblr/svc/op/ks/profile/centos5.8-xen-x86_64

install_tree: http://172.17.10.14/cblr/links/centos5.8-xen-x86_64

xen package needs to be installed

Xen 主控端安裝虛拟機時提示沒有安裝xen軟體包

解決:

yum install xen -y

執行此指令會安裝一共9個軟體包,如下

Running Transaction

Installing : bridge-utils 1/9

Installing : cyrus-sasl-md5 2/9

Installing : ebtables 3/9

Installing : e4fsprogs-libs 4/9

Installing : xen-libs 5/9

Installing : libvirt 6/9

Installing : libvirt-python 7/9

Installing : python-virtinst 8/9

Installing : xen 9/9

xend needs to be started

報錯原因是xend服務沒有啟動,執行以下指令處理

chkconfig xend on

/etc/init.d/xend start

#注意此過程會自動橋接網卡,可能出現短暫斷網

libvirtd is stopped

libvirtd needs to be running

chkconfig libvirtd on

/etc/init.d/libvirtd start

libvirtd (pid 3772) is running...

downloading initrd initrd.img to /var/lib/xen/initrd.img_koan

url=http://172.17.10.14/cobbler/images/centos5.8-xen-x86_64/initrd.img

- reading URL: http://172.17.10.14/cobbler/images/centos5.8-xen-x86_64/initrd.img

downloading kernel vmlinuz to /var/lib/xen/vmlinuz_koan

url=http://172.17.10.14/cobbler/images/centos5.8-xen-x86_64/vmlinuz

- reading URL: http://172.17.10.14/cobbler/images/centos5.8-xen-x86_64/vmlinuz

- warning: old python-virtinst detected, a lot of features will be disabled

- adding disk: /var/lib/xen/images//testvm-disk0 ofsize 5 (driver type=raw)

- ['virt-install', '--connect', 'xen:///', '--name', 'testvm', '--ram', '512', '--vcpus', '1', '--uuid', '42559fd2-385f-2435-80f1-9f5005a02a81', '--autostart', '--vnc', '--paravirt', '--boot', 'kernel=/var/lib/xen/vmlinuz_koan,initrd=/var/lib/xen/initrd.img_koan,kernel_args=ks=http://172.17.10.14/cblr/svc/op/ks/profile/centos5.8-xen-x86_64 ksdevice=link kssendmac lang= text ', '--os-variant', 'rhel5', '--disk', 'path=/var/lib/xen/images//testvm-disk0,size=5', '--network', 'bridge=xenbr0', '--wait', '0', '--noautoconsole']

--name NAME --ram RAM STORAGE INSTALL [options]

virt-install: error: no such option: --autostart

我安裝的

系統版本:CentOS5.8 64bit

koan版本:koan-2.2.3-2.el5

xen版本:xen-3.0.3-142.el5_9.2

通過EPEL安裝的koan版本為koan-2.2.3-2.el5,使用中報錯較多,後更換為koan-1.6.6-1.el5此版本比較穩定,下載下傳連結:ftp://rpmfind.net/linux/epel/5/i386/koan-1.6.6-1.el5.noarch.rpm

1 : comment 'dists'on /etc/debmirror.conf for proper debian support

2 : comment 'arches'on /etc/debmirror.conf for proper debian support

關于debmirror編輯注釋

/usr/bin/ipmitool power status

Could notopen device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory

Unable to get Chassis Power Status

/etc/init.d/ipmi start

Starting ipmi drivers: [ OK ]

/etc/rc.d/init.d/ipmievd start

Starting ipmievd:

ipmievd: using pidfile /var/run/ipmievd.pid0

chkconfig ipmi on

chkconfig ipmievd on

再執行檢視電源狀态

Chassis Power ison

obbler system edit --name=host-188116 --power-address=172.17.11.20 --power-type='ipmitool' --power-user=root --power-pass=djxxxx

usage: cobbler [options]

cobbler: error: option--power-type: invalid choice: 'ipmitool' (choose from 'ack_manual', 'apc', 'apc_snmp', 'bladecenter', 'brocade', 'bullpap', 'cisco_mds', 'cisco_ucs', 'drac', 'drac5', 'egenera', 'ifmib', 'ilo', 'ilo_mp', 'ipdu', 'ipmilan', 'lpar', 'manual', 'mcdata', 'node', 'rhevm', 'rps10', 'rsa', 'rsb', 'sanbox2', 'scsi', 'scsi_test', 'tool', 'virsh', 'vixel', 'vmware', 'vmware_helper', 'vmware_soap', 'wti', 'xvm', 'xvmd')

選擇合适的power類型,報錯後面已經列出可選參數,我這裡使用的DELL PE1950應該選擇ipmilan

cobbler system edit --name=host-188116 --power-address=172.17.11.20 --power-type='ipmilan' --power-user=root --power-pass=djxxxx

電源管理相關的報錯

cobbler system edit --name host-xxx --power-address=172.17.11.20 --power-type="ipmitool" --power-user=root --power-pass=passwd

power management type must be one of:

cobbler system powerstatus --name=host-xx

task started: 2013-03-28_115206_power

task started (id=Power management (status), time=Thu Mar 28 11:52:06 2013)

Exception occured: cobbler.cexceptions.CX

Exception value: 'no power type set for system'

Exception Info:

File "/usr/lib/python2.4/site-packages/cobbler/utils.py", line 126, in die

raise CX(msg)

File "/usr/lib/python2.4/site-packages/cobbler/remote.py", line 89, in run

rc = self._run(self)

File "/usr/lib/python2.4/site-packages/cobbler/remote.py", line 259, in runner

self.remote.power_system(object_id,self.options.get("power",""),token,logger=self.logger)

File "/usr/lib/python2.4/site-packages/cobbler/remote.py", line 1919, in power_system

rc=self.api.power_status(obj, user=None, password=None, logger=logger)

File "/usr/lib/python2.4/site-packages/cobbler/api.py", line 1041, in power_status

return action_power.PowerTool(self._config, system, self, user, password, logger = logger).power("status")

File "/usr/lib/python2.4/site-packages/cobbler/action_power.py", line 74, in power

utils.die(self.logger,"no power type set for system")

File "/usr/lib/python2.4/site-packages/cobbler/utils.py", line 134, in die

!!! TASK FAILED !!!

cobbler system powerstatus --name=host-188116

task started: 2013-03-28_124153_power

task started (id=Power management (status), time=Thu Mar 28 12:41:53 2013)

cobbler power configuration is:

type : ipmilan

address: 172.17.11.20

user : root

id :

running: /usr/sbin/fence_ipmilan

received on stdout: Getting status of IPMI:172.17.11.20...Chassis power = On

Done

Exception value: "command succeeded (rc=0), but output ('Getting status of IPMI:172.17.11.20...Chassis power = On\nDone\n') was not understood"

File "/usr/lib/python2.4/site-packages/cobbler/action_power.py", line 116, in power

utils.die(self.logger,"command succeeded (rc=%s), but output ('%s') was not understood" % (rc, output))

解決方法詳見步驟8.2、8.3,詳細如下:

yum install cman -y

Cobbler代碼維護者jimi告知:某些系統版本将執行程式安裝在/sbin/目錄下,通過rpm -ql cman檢視,CentOS5.8下如此解決即可

ln -s /sbin/fence_* /usr/sbin/

備份

cp/usr/lib/python2.4/site-packages/cobbler/action_power.py /usr/lib/python2.4/site-packages/cobbler/action_power.py.$(date +%F)

編輯

vim /usr/lib/python2.4/site-packages/cobbler/action_power.py

删除或注釋此檔案如下代碼

utils.die(self.logger,"command succeeded (rc=%s), but output ('%s') was not understood" % (rc, output))

删除檔案action_power.pyo 、 action_power.pyc

這兩個檔案在目錄/usr/lib/python2.4/site-packages/cobbler/下

重新開機cobbler,注意一定是重新開機cobbler

cobbler reboot

步驟8.2、8.3是我在使用電源管理中發現的問題,後通過github與Cobbler代碼維護者jimi溝通解決的,非常感謝他的幫助,詳見

<a href="https://github.com/cobbler/cobbler/issues/426" target="_blank">https://github.com/cobbler/cobbler/issues/426</a>

10. DHCP非Cobbler本機

因為有的同學生産環境已有DHCP服務,Cobbler本機可以不用再安裝配置DHCP,步驟如下:

配置不管理DHCP

manage_dhcp: 0

重新開機cobbler

檢查配置

cobbler check

同步配置

DHCP服務配置next-server 指向cobbler伺服器IP即可,例如

subnet 192.168.10.0 netmask255.255.255.0 {

range 192.168.10. 192.168.10.240;

option subnet-mask 255.255.255.0;

option routers 192.168.10.254;

next-server 192.168.4.194;

filename"pxelinux.0";

}

《Cobbler部署指南》參考資料:

<a href="https://github.com/cobbler/cobbler/wiki" target="_blank">https://github.com/cobbler/cobbler/wiki</a>

cobbler、koan man手冊及help指令幫助

《Cobbler部署指南》系列至此告一段落,更多内容請一起交流或參考Cobbler github。

本文轉自pandazhai 51CTO部落格,原文連結:http://blog.51cto.com/dreamway/1167078