日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

cobbler 配置(转载)

發布時間:2024/4/17 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cobbler 配置(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Cobbler介紹

Cobbler 是一個系統啟動服務(boot server),可以通過網絡啟動(PXE)的方式用來快速安裝、重裝物理服務器和虛擬機,支持安裝不同的 Linux 發行版和 Windows。該工具使用python開發,小巧輕便(才15k行代碼),使用簡單的命令即可完成PXE網絡安裝環境的配置,同時還可以管理 DHCP,DNS,以及yum包鏡像。

Cobbler 使用命令行方式管理,也提供了基于 Web 的界面管理工具(cobbler-web),還提供了API接口,可以方便二次開發使用。

Cobbler提供以下服務集成:
PXE服務支持
DHCP服務管理
DNS服務管理(可選bind,dnsmasq)
電源管理
Kickstart服務支持
yum倉庫管理
TFTP (PXE啟動時需要)
Apache(提供kickstart 的安裝源,并提供定制化的kickstart配置)

同時,它和apache做了深度整合。通過 cobbler,可以實現對RedHat/Centos/Fedora系統的快速部署,同時也支持Suse 和Debian(Ubuntu)系統。

cobbler裝機系統是較早前kickstart的升級版,優點比較容易配置,還自帶web界面比較易于管理,不足在于中文資料較少。和 Kickstart不同的是,使用cobbler不會因為在局域網中啟動了dhcp而導致有些機器因為默認從pxe啟動在重啟服務器后加載tftp內容導 致啟動終止。

通過配置cobbler自動部署DHCP、TFTP、HTTP,在安裝過程中加載kiskstart無人值守安裝應答文件實現無人值守。從客戶端使用PXE引導啟動安裝。

Cobbler實驗環境及目的

Cobbler服務器系統:CentOS 6.5 64位
IP地址:192.168.21.128
需要安裝部署的Linux系統:
eth0(第一塊網卡,用于外網)IP地址段:192.168.21.160-192.168.21.200
eth1(第二塊網卡,用于內網)IP地址段:10.0.0.160-10.0.0.200

子網掩碼:255.255.255.0
網關:192.168.21.2
DNS:8.8.8.8 8.8.4.4
所有服務器均支持PXE網絡啟動
實現目的:通過配置Cobbler服務器,全自動批量安裝部署Linux系統

Cobbler的安裝部署配置

Cobbler安裝環境準備

使用前提

1、你有一個DVD或ISO文件,您的操作系統的分布。
2、服務器有足夠的本地磁盤的可用空間在/var/www/cobbler 解壓縮DVD/ISO。
3、服務器和客戶端都有一個共同的IP網絡。
4、這個網絡上的DHCP服務器是唯一的實例。
5、在此網絡上的客戶端是支持PXE網絡啟動。

定義Yum源

對于centos本身源 ,可根據自己所在地選擇離自己近的鏡像源,比如mirrors.163.com或mirrors.sohu.com
相關配置文件: /etc/yum.repos.d/CentOS-Base.repo
采用網易的源

cd /etc/yum.repos.d/mkdir backupmv *.repo ./backupwget -c -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repoyum list
安裝epel源

Cobbler不在CentOS的基本源中,需要導入EPEL源升級軟件包,確保epel-release包的版本為最新,當前最新版本為6-8

Centos5 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-4.noarch.rpm Centos5 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm Centos6 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm Centos6 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm 安裝:# rpm -Uvh 'http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm'# yum update (升級所有包,改變軟件設置和系統設置,系統版本內核都升級)# yum upgrade (升級所有包,不改變軟件設置和系統設置,系統版本升級,內核不改變)確定是否正確安裝: yum list|grep -E "^epel"epel-release.noarch?????????????????????? 6-8?????????????????????????? installed 也可以用這個命令: rpm -qa |grep -i epel
關閉selinux和防火墻

關閉SELINUX

sed -i '/^SELINUX=/ s/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/configsetenforce 0 # 使配置立即生效這個需要重啟機器才能生效,所以建議修改完重啟[root@cobbler ~]# sestatusSELinux status:???????????????? disabled 關閉防火墻Cobbler會使用到好幾個端口,為了簡化,直接把iptables關閉chkconfig ip6tables offchkconfig iptables off/etc/init.d/ip6tables stop/etc/init.d/iptables stop 關閉防火墻和 SELinux 后重啟系統# reboot

Cobbler安裝配置

安裝Cobbler

yum安裝cobbler包

yum -y install cobbler

確認是否正確安裝 :

rpm -qa |grep -i cobbler

安裝cobbler相關的包
額外需要的服務還有httpd rsync tftp-server xinetd,如果系統沒有裝上的話,可以執行以下命令安裝。

yum? install tftp-server xinetd? dhcp? httpd? rsync

安裝運行cobbler需要的軟件包

yum? install? pykickstart? debmirror? python-ctypes?? cman

根據需要來,如果要部署 debian/ubuntu 系統需要 debmirror 軟件包;想使用電源管理功能的話需要安裝 cman 或fence-agents;我的測試環境不需要bind,就沒有安裝

打開服務需要使用的端口
udp 69 tftp
udp 53 dns
tcp 80 443 web
dhcp 67 68
直接關閉防火墻(參考上文關閉防火墻的部分)或設置iptables,直接修改/etc/sysconfig/iptables

[root@localhost ~]# cat /etc/sysconfig/iptables # Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT # SSH-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT# DNS - TCP/UDP-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT# DHCP-A INPUT -m state --state NEW -m udp -p udp --dport 68 -j ACCEPT# TFTP - TCP/UDP-A INPUT -m state --state NEW -m tcp -p tcp --dport 69 -j ACCEPT-A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT# NTP-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT# HTTP/HTTPS-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT# Syslog for cobbler-A INPUT -m state --state NEW -m udp -p udp --dport 25150 -j ACCEPT# Koan XMLRPC ports-A INPUT -m state --state NEW -m tcp -p tcp --dport 25151 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 25152 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT /etc/init.d/iptables restart # 最后重啟防火墻使配置生效

啟動Cobbler服務

/etc/init.d/cobblerd start

可能會缺少的包:
請注意察看 cobbler服務啟動的報錯信息,我第一次安裝時候就遇到有關ctypes的報錯,只能手動安裝:

yum -y install python-ctypes
配置Cobbler
設置http服務

配置httpd配置文件

# vi /etc/httpd/conf/httpd.confServerName 127.0.0.1:80

啟用wsgi模塊
需要確認mod_wsgi已經正確安裝,否則需要手動安裝

yum -y install mod_wsgi

啟用wsgi模塊只需要取消 /etc/httpd/conf.d/wsgi.conf 文件中
LoadModule wsgi_module modules/mod_wsgi.so 行的注釋

sed -i 's*#LoadModule*LoadModule*g' /etc/httpd/conf.d/wsgi.conf
配置tftp與rsync

修改 rsync 和 tftp 這兩個服務的 xinetd 配置,只需修改 rsync 和tftp的配置文件,將 disable = yes 修改為 disable = no來開啟tftp與rsync服務的開機啟動

sed -i '/disable/c disable = no' /etc/xinetd.d/tftpsed -i -e 's/= yes/= no/g' /etc/xinetd.d/rsyncservice xinetd restart
配置Cobbler主配置文件

在啟動Cobbler服務之前,你需要修改一些配置文件。在修改每一個文件之前最好先備份下當前的文件。Cobblerd的配置文件為/etc/cobbler/settings ,這個文件是YAML信息的格式文件。
根據需要修改 cobbler主配置文件: /etc/cobbler/settings

Server 和 Next_Server

server 選項設置IP用于為cobbler 服務器指定地址,請不要使用0.0.0.0,設置一個你希望和cobbler服務器通過http和tftp等協議鏈接的IP。

sed -i 's/server: 127.0.0.1/server: 192.168.21.128/g' /etc/cobbler/settings

next_server選項是DHCP/PXE網絡引導文件被下載的TFTP服務器的IP,它將和server設置為同一個IP

sed -i 's/next_server: 127.0.0.1/next_server: 192.168.21.128 /g' /etc/cobbler/settings
防止誤重裝系統

pxe安裝 只允許一次,防止誤操作 ( 在正式環境有用。實際測試來看,這個功能可以屏蔽掉 )

sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings
生成Cobbler安裝系統root初始密碼

(1)這里生成密鑰和配置默認密鑰。這個設置只針對centos有效。用 openssl 生成一串密碼后加入到 cobbler 的配置文件(/etc/cobbler/settings)里,替換 default_password_crypted 字段

# openssl passwd -1 -salt 'random-phrase-here' '111111'$1$random-p$WbZ3JxhRzCS/1Ne4S9g4Z.

openssl passwd -1 -salt ‘任間字符’ ‘密碼’ (是數字1 不是字母L)
這個命令的用法,任意字符可以隨便寫,這個密碼就是安裝完系統root的密碼了。

(2) 將上面的加密串加入cobbler配置文件中。

# vi /etc/cobbler/settings# 修改為如下配置default_password_crypted: "$1$random-p$WbZ3JxhRzCS/1Ne4S9g4Z."
Cobbler管理rsync

默認為0,不對rsync進行管理,可以修改為1 進行管理

sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings
Cobbler管理dhcp

為了pxe的啟動,需要一個DHCP服務器地址,并直接引導系統,它可以在網絡中下載引導文件到TFTP的服務器,cobbler可以通過manage_dhcp的設置來進行管理

配置dhcp服務
首先修改cobbler配置,讓cobbler來管理dhcp服務,在做自定義配置時,需要修改dhcp相關配置,以配合PXE啟動用,編輯文件/etc/cobbler/settings
manage_dhcp: 1 (注:默認為0 ,表示不進行管理dhcp服務,可以修改為1,對其進行管理。此為使cobbler管理dhcp也就是后面用于同步更新配置信息[cobbler sync])
也可用命令修改:

sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings

接下來修改/etc/cobbler/dhcp.template,此文件是cobbler管理dhcp的模板,確保DHCP分配的地址和Cobbler在同一網段
對于此文件,本例中只需要修改如下部分

# cp /etc/cobbler/dhcp.template{,.bak}# vi /etc/cobbler/dhcp.template? # 需要修改192.168.0.0為自己網段subnet 192.168.21.0 netmask 255.255.255.0 { # 修改自己的路由???? option routers???????????? 192.168.21.1;? # 域名服務器地址???? option domain-name-servers 8.8.8.8;? # 子網掩碼???? option subnet-mask???????? 255.255.255.0;? # 設置dhcp服務器IP地址租用的范圍???? range dynamic-bootp??????? 192.168.21.160 192.168.21.200;???? filename?????????????????? "/pxelinux.0";???? default-lease-time???????? 21600; #缺省租約時間???? max-lease-time???????????? 43200; #最大租約時間?????? next-server??????????????? $next_server; #指定引導服務器? }

其余部分維持默認值即可。

如果是多網卡需要指定DHCP服務的網絡接口

#vi /etc/sysconfig/dhcpd修改內容如下:#Command line options here DHCPDARGS=eth0DHCPDARGS=eth0 # 測試dhcp服務器配置是否正確# dhcpd # 在執行cobbler sync 之后測試才有效,因為沒同步之前文件/etc/dhcp/dhcpd.conf還沒有被同步修改
設置debmirror

注釋掉@dists和@arches的行

sed -i -e 's|@dists=.*|#@dists=|'? /etc/debmirror.confsed -i -e 's|@arches=.*|#@arches=|'? /etc/debmirror.conf
下載引導操作系統文件

加載部分缺失的網絡boot-loaders

cobbler get-loaders
檢查Cobbler配置
cobbler check

出現下面的提示,SELinux和防火墻前面已經設置過了,不用理會

The following are potential configuration items that you may want to fix:1 : SELinux is enabled. Please review the following wiki page for details on ensuring cobbler works correctly in your SELinux environment:https://github.com/cobbler/cobbler/wiki/Selinux2 : since iptables may be running, ensure 69, 80/443, and 25151 are unblockedRestart cobblerd and then run 'cobbler sync' to apply changes

更多詳情請看文后“可能遇到的錯誤”部分。

重啟cobbler和更新相關配置

重啟服務

/etc/init.d/cobblerd restart

同步最新cobbler配置,它會根據配置自動修改dhcp,bind 等服務,因此我稱之為容器的原因。

cobbler sync # 同步配置文件到dhcp服務器
啟動相關服務并設置開機啟動
chkconfig httpd on chkconfig xinetd on chkconfig cobblerd onchkconfig dhcpd on/etc/init.d/httpd restart/etc/init.d/xinetd restart/etc/init.d/cobblerd restart/etc/init.d/dhcpd restart
設置Cobbler相關服務啟動腳本
cat < < "EOF" > /etc/rc.d/init.d/cobbler #!/bin/sh# chkconfig: - 80 90# description:cobbler case $1 in start)/etc/init.d/httpd start/etc/init.d/xinetd start/etc/init.d/dhcpd start/etc/init.d/cobblerd start;; stop)/etc/init.d/httpd stop/etc/init.d/xinetd stop/etc/init.d/dhcpd stop/etc/init.d/cobblerd stop;; restart)/etc/init.d/httpd restart/etc/init.d/xinetd restart/etc/init.d/dhcpd restart/etc/init.d/cobblerd restart;; status)/etc/init.d/httpd status/etc/init.d/xinetd status/etc/init.d/dhcpd status/etc/init.d/cobblerd status;; sync)cobbler sync;;*) echo "Input error,please in put 'start|stop|restart|status|sync'!";exit 2>&1 >/dev/null &;;esacEOF chmod +x /etc/rc.d/init.d/cobbler? #添加腳本執行權限chkconfig cobbler on? #添加開機啟動service cobbler? restart? #重啟cobbler

Cobbler的使用

掛載系統安裝鏡像到http服務器站點目錄

1、上傳ISO鏡像至服務器/usr/local/src/目錄
2、創建文件夾

mkdir -p /var/www/html/os/CentOS-6.5-x86_64? #創建掛載目錄

3、掛載ISO鏡像到/var/www/html/os/CentOS-6.5-x86_64目錄

mount -t iso9660 -o loop /usr/local/src/CentOS-6.5-x86_64-bin-DVD1.iso? /var/www/html/os/CentOS-6.5-x86_64 vi /etc/fstab?? #添加以下代碼。實現開機自動掛載/usr/local/src/CentOS-6.5-x86_64-bin-DVD1.iso?? /var/www/html/os/CentOS-6.5-x86_64?? iso9660??? defaults,ro,loop? 0 0

備注:iso9660使用df -T 查看設備 卸載:umount /var/www/html/os/CentOS-6.5-x86_64
重復上面的操作,把自己需要安裝的CentOS系統鏡像文件都掛載到/var/www/html/os/目錄下
例如:
CentOS-5.10-x86_64-bin-DVD-1of2.iso
CentOS-7.0-1406-x86_64-DVD.iso

導入系統鏡像到Cobbler

從DVD中導入客戶端的OS。這將自動設置了“x86_64”,并將其命名為CentOS-6.5-x86_64。{注:這需要一點時間,不要急。可查看/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/目錄文件生成情況。}

cobbler import --path=/var/www/html/os/CentOS-6.5-x86_64? --name=CentOS-6.5-x86_64? --arch=x86_64? #導入系統鏡像文件,需要一段時間 命令格式:cobbler import --path=鏡像路徑 -- name=安裝引導名 --arch=32位或64位參數說明: --name??? 為安裝源定義一個名字--arch??? 指定安裝源是32位還是64位、ia64, 目前支持的選項有: x86│x86_64│ia64

注意1: 這個安裝源的唯一標示 就是根據這兩個參數來定義
本例導入成功后,安裝源的唯一標示就是:centos6.5-x86_64 ,如果重復,系統會提示導入失敗,其它命令可通過cobbler –help來進行查看。如果需要更多的參數定制,也可以查看官方文檔: man cobbler ,然后查找 import 的配置,可以使用另外一個命令: cobbler distro。

從上面顯示信息所知,cobbler會將鏡像中的所有安裝文件拷貝到本地一份,放在/var/www/cobbler/ks_mirrors下的 centos6.5-x86_64目錄下。同時會創建一個名字為centos6.5-x86_64的一個發布版本,以及一個名字為centos6.5- x86_64的profile文件。

注意2:/var/www/cobbler 目錄必須具有足夠容納 Linux安裝文件的空間。如果空間不夠,可以對/var/www/cobbler目錄進行移動,建軟鏈接來修改文件存儲位置。
例如:

# ln -s /home/cobbler /var/www

導入時間較長, 請耐心等待!!!在正常導完之后會給出如下提示:

……(省略)associating kickstarts*** TASK COMPLETE ***

有時可能會出現卡住的現象,如果導入時間過長,可通過比對文件大小來確定是否已經正常導入

比對文件大小的方法

[root@cobbler ~]# du -sh /var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/3.9G/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/ [root@cobbler ~]# du -sh /var/www/html/os/CentOS-6.5-x86_644.1G/system/CentOS-6.5-x86_64/

如果上述兩個命令執行過顯示的結果出入較大, 則可能文件沒有正常導入
在重新導入之前最好先把之前的內容刪除再導入
cobbler [distro] remove –name=[CentOS-6.5-x86_64] 方括號中的內容根據自己的情況來填寫 , 更多命令通過cobbler –help 來查看
剩下其它系統導入方法類似,只是名字和路徑更改下即可。重復上面的操作,把其他的系統鏡像文件導入到Cobbler導入完成之后,可通過 cobbler list 來查看導入的結果。

創建kickstarts自動安裝腳本(For Centos/RHEL)

注意:這是關鍵步驟之一
由于需要安裝的操作系統發行廠商不同,因此KS文件的寫法要求,也不一而足。
本文只討論 CentOs/RHEL 系列的 KS配置

另外:操作系統 版本不同,KS也存在一定的差異,比如CentOS5 ,和CentOS6下就有不同,切記!

官網的文檔在此:
CentOS5 的 (網上大多是這個系列的) : http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-kickstart2-options.html

CentOS6 的 (能看到的配置案例很少) : https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html

默認kickstart文件是/var/lib/cobbler/kickstarts/sample.ks,需要手動為每個發行版單獨指定,或單獨修改。
自定義ks文件,下面是我自己定義的一個centos6.5模板

cd /var/lib/cobbler/kickstarts? #進入默認Kickstart模板目錄vi /var/lib/cobbler/kickstarts/CentOS-6.5-x86_64.ks? #創建CentOS-6.5-x86_64安裝腳本 #platform=x86, AMD64, or Intel EM64T# System authorization informationauth? --useshadow? --enablemd5# System bootloader configurationbootloader --location=mbr# Partition clearing informationclearpart --all --initlabel#Partition informationpart swap --fstype swap --size=24000part /boot --fstype ext4 --size=200part / --fstype ext4 --size=15000part /opt --fstype ext4 --size=100 --grow? # Use text mode installtext? # keykey --skip# Firewall configurationfirewall --disable# Run the Setup Agent on first bootfirstboot --disable# System keyboardkeyboard us# System languagelang en_US# Use network installationurl --url=$tree# If any cobbler repo definitions were referenced in the kickstart profile, include them here.$yum_repo_stanza# Network information$SNIPPET('network_config')#network --bootproto=dhcp?? --device=em1# Reboot after installationreboot #Root passwordrootpw --iscrypted $default_password_crypted# SELinux configurationselinux --disabled# Do not configure the X Window Systemskipx# System timezonetimezone?? Asia/Shanghai# Install OS instead of upgradeinstall# Clear the Master Boot Recordzerombr? %packages@ base@ coree2fsprogs-ckermitgrub-bluez-pin-firstboot-rhgb-zshkernel-devel-OpenIPMI-tools-xdeltanet-snmpsysstatlslk-nmapkernel-synapticscontrol-centerlibaiocompat-libstdc++-33subversion? %pre$SNIPPET('log_ks_pre')$SNIPPET('kickstart_start')$SNIPPET('pre_install_network_config')# Enable installation monitoring$SNIPPET('pre_anamon')? %post# Set default language[ -f /etc/sysconfig/i18n ] && cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ksbakcat < < EOF > /etc/sysconfig/i18nLANG="en_US"SUPPORTED="en_US.UTF-8:en_US:en"SYSFONT="latarcyrheb-sun16"EOF? ## Disable ipv6#/bin/cat >> /etc/modprobe.conf < < EOF #alias net-pf-10 off #alias ipv6 off #EOF /bin/sed -i 's/NETWORKING_IPV6.*$/NETWORKING_IPV6=no/' /etc/sysconfig/network??? #disable ctrl-alt-del sed -i 's/^ca/#ca/' /etc/inittab # Set default run level to 3 sed -i? 's/^id:5/id:3/'? /etc/inittab??? cat >> /etc/yum.repos.d/163.repo < < EOF [base] name=CentOS-$releasever - Base - 163.com baseurl=http://mirrors.163.com/centos/6/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6 EOF?????? # Tune snmp settings [ -d /etc/snmp ] || mkdir /etc/snmp if [ -f /etc/snmp/snmpd.conf ]; then?? cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.ksbak fi??? # stop unuseful services # nsrvs is the list for stop for i in `ls /etc/rc3.d/S*`?? do?????? CURSRV=`echo $i|cut -c 15-`?? echo $CURSRV?? case $CURSRV in?????????? crond | irqbalance | network |? sshd | syslog )?????? echo "Base services, Skip!"?????? ;;?????? *)?????????? echo "change $CURSRV to off"?????????? chkconfig --level 235 $CURSRV off?????????? service $CURSRV stop?????? ;;?? esac?? done???????? echo "kernel.core_uses_pid = 1" > /etc/sysctl.confecho "kernel.msgmax = 65536" >> /etc/sysctl.confecho "kernel.msgmnb = 65536" >> /etc/sysctl.confecho "kernel.shmall = 4294967296" >> /etc/sysctl.confecho "kernel.shmmax = 68719476736" >> /etc/sysctl.confecho "kernel.sysrq = 0" >> /etc/sysctl.confecho "net.ipv4.conf.default.accept_source_route = 0" >> /etc/sysctl.confecho "net.ipv4.conf.default.rp_filter = 1" >> /etc/sysctl.confecho "net.ipv4.ip_forward = 0" >> /etc/sysctl.confecho "net.ipv4.tcp_retrans_collapse = 0" >> /etc/sysctl.confecho "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.confecho "net.ipv4.tcp_max_tw_buckets = 6000 " >> /etc/sysctl.confecho "net.ipv4.tcp_sack = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_window_scaling = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_rmem = 4096 87380 4194304? " >> /etc/sysctl.confecho "net.ipv4.tcp_wmem = 4096 16384 4194304? " >> /etc/sysctl.confecho "net.core.wmem_default = 8388608 " >> /etc/sysctl.confecho "net.core.rmem_default = 8388608 " >> /etc/sysctl.confecho "net.core.rmem_max = 16777216 " >> /etc/sysctl.confecho "net.core.wmem_max = 16777216 " >> /etc/sysctl.confecho "net.core.netdev_max_backlog = 262144 " >> /etc/sysctl.confecho "net.core.somaxconn = 262144 " >> /etc/sysctl.confecho "net.ipv4.tcp_max_orphans = 3276800 " >> /etc/sysctl.confecho "net.ipv4.tcp_max_syn_backlog = 262144 " >> /etc/sysctl.confecho "net.ipv4.tcp_timestamps = 0 " >> /etc/sysctl.confecho "net.ipv4.tcp_synack_retries = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_syn_retries = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_tw_recycle = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_tw_reuse = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_mem = 94500000 915000000 927000000? " >> /etc/sysctl.confecho "net.ipv4.tcp_fin_timeout = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_keepalive_time = 1200 " >> /etc/sysctl.confecho "net.ipv4.ip_local_port_range = 1024 65535 " >> /etc/sysctl.conf??? echo "* soft nofile 65535" >> /etc/security/limits.confecho "* hard nofile 65535" >> /etc/security/limits.confecho "* soft nproc 65535" >> /etc/security/limits.confecho "* hard nproc 65535" >> /etc/security/limits.conf? # configuratioin of? the nameserver#cat > /etc/resolv.conf < < EOF#search localdomain#nameserver 8.8.8.8#EOF#add a default gw#route add -net? 10.0.0.0/16? dev eth0 gw 192.168.1.140 # Execute external scriptscd /rootwget http://192.168.21.128/cobbler/ks_mirror/config/autoip.shsh /root/autoip.sh? chmod 600 /etc/passwd? chmod 600 /etc/shadow? chmod 600 /etc/group? chmod 600 /etc/gshadow :wq! #保存退出vi /var/www/cobbler/ks_mirror/config/autoip.sh? #創建腳本,自動設置Linux系統靜態IP地址、DNS、網關、計算機名稱 #!/bin/shROUTE=$(route -n|grep "^0.0.0.0"|awk '{print $2}')BROADCAST=$(/sbin/ifconfig eth0|grep -i bcast|awk '{print $3}'|awk -F":" '{print $2}')HWADDR=$(/sbin/ifconfig eth0|grep -i HWaddr|awk '{print $5}')IPADDR=$(/sbin/ifconfig eth0|grep "inet addr"|awk '{print $2}'|awk -F":" '{print $2}')NETMASK=$(/sbin/ifconfig eth0|grep "inet addr"|awk '{print $4}'|awk -F":" '{print $2}')cat >/etc/sysconfig/network-scripts/ifcfg-eth0< /etc/sysconfig/network-scripts/ifcfg-eth1< /etc/sysconfig/network< > /etc/hostshostname=$HOSTNAMEecho "nameserver? 8.8.8.8"? > /etc/resolv.confecho "nameserver? 8.8.4.4" >> /etc/resolv.conf :wq!? #保存退出

注意:kickstarts自動安裝腳本中不允許有中文(注釋有中文也不行),否則會報錯

修改profile指定新的KS啟動文件

按照操作系統版本分別關聯系統鏡像文件和kickstart自動安裝文件
在第一次導入系統鏡像時,cobbler會給安裝鏡像指定一個默認的kickstart自動安裝文件

例如:CentOS-6.5-x86_64版本的kickstart自動安裝文件為:/var/lib/cobbler/kickstarts/sample.ks

cobbler profile report --name? CentOS-6.5-x86_64? #查看profile設置 cobbler distro report --name CentOS-6.5-x86_64 #查看安裝鏡像文件信息 cobbler profile remove --name=CentOS-6.5-x86_64? #移除profile cobbler profile add --name=CentOS-6.5-x86_64 --distro=CentOS-6.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.5-x86_64.ks? #添加 cobbler profile edit --name=CentOS-6.5-x86_64 --distro=CentOS-6.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.5-x86_64.ks? #編輯 命令:cobbler profile add|edit|remove --name=安裝引導名 --distro=系統鏡像名 --kickstart=kickstart自動安裝文件路徑參數說明:--name:自定義的安裝引導名,注意不能重復--distro:系統安裝鏡像名,用cobbler distro list可以查看--kickstart:與系統鏡像文件相關聯的kickstart自動安裝文件(此文件必須預先準備好 )更多命令參數可執行cobbler --help查看 再次執行cobbler check 檢查下配置 #查看Cobbler列表 cobbler listcobbler reportcobbler profile reportcobbler distro list # 查看導入列表 #通過profile查找對應的kickstart自動安裝文件 例如:ksfile=$( cobbler profile report --name? CentOS-6.5-x86_64|grep -E '^Kickstart' |head -n 1|cut -d ':' -f 2 );cat $ksfile;

重復上面的操作,把其他的系統鏡像文件和kickstart自動安裝文件關聯起來

注意:
1、kickstart自動安裝文件需要預先配置好
2、每次修改完配置文件,需要執行一次同步操作:cobbler sync 配置才能生效
3、kickstart自動安裝文件可以用工具生成(需要用到圖形界面操作)

yum? install system-config-kickstart #安裝yum groupinstall "X Window System" #安裝X Window圖形界面system-config-kickstart #運行kickstart配置service? cobbler? sync? #與cobbler sync作用相同service? cobbler? restart? #重啟cobbler

為Cobbler添加RPM倉庫

命令行下操作,添加epel和epel-test的repo
把repo添加到profle

cobbler repo add --mirror=http://mirrors.ustc.edu.cn/epel/6/x86_64/ --name=epel6-x86_64 --arch=x86_64 --breed=yumcobbler repo add --mirror=http://mirrors.ustc.edu.cn/epel/testing/6/x86_64/ --name=epel6-x86_64-testing --arch=x86_64 --breed=yum

這個只是對centos有效,如果你吧repo添加到profle,他會自動添加到節點上的repo上,指向內網,非常方便。

cobbler profile edit --name=CentOS6.5-x86_64 --repos="epel6-x86_64 epel6-x86_64-testing"

這個時候,就需要同步epel的源到本地,考驗你的網絡速度

cobbler reposync

也可以通過設置–mirror-locally=0不下載到本地,而通過kickstart server去倉庫下載rpm包。

我內網已經有,所以就直接同步就可以。

rsync -avlH root@10.1.199.11:/var/www/cobbler/repo_mirror/ /var/www/cobbler/repo_mirror

另外還有兩個源,你可以考慮使用 centos update和centos plus

cobbler repo add --name=Centos6-CENTOSPLUS --mirror=http://mirrors.ustc.edu.cn/centos/6/centosplus/x86_64/ --arch=x86_64 --breed=yumcobbler repo add --name=Centos6-UPDATES --mirror=http://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ --arch=x86_64 --breed=yum

同步Cobbler配置

獲取上述所有配置的cobbler(包括啟動DHCP等)

cobbler sync

cobbler會自動進行初始化工作,移除已經存在的啟動項,然后根據模板拷貝loader文件。之后再生成pxe的配置文件,生成dhcp的配置文件,最后再重啟dhcp服務。
注:每次更改Kickstart 配置文件,都需要使用cobbler sync重新同步所有配置

到目前為止,全部的準備工作已經算全部完成,接下來要做的就是啟動服務了。在之前的調試過程中,很多服務已經啟動過了,這里只需要啟動xinetd服務即可:

/etc/init.d/xinetd start

至此,就可以使用虛擬機來測試Cobbler安裝了。

添加指定客戶機系統配置到Cobbler

1. 指定一個網段使用特定的裝機配置

cobbler system add --name=test_000 --ip=192.168.1.0/24 --profile=CentOS-5.9-x86_64

2. 添加一個指定服務器的裝機配置
指定服務器的mac地址,并設置好主機名、IP地址等信息,需要提示知道服務器MAC地址,根據MAC應用到具體機器上。

還可以指定ks參數。–kickstart=/var/lib/cobbler/kickstarts/webserver.ks

cobbler system add --name=test_001 --hostname=test_001 --mac=00:0C:29:E3:81:32 --interface=eth0 --ip-address=192.168.1.123 --subnet=255.255.255.0 --gateway=192.168.1.1 --static=1 --profile=Centos-5.9-x86_64

3. 修改system配置
機器IP地址變更為192.168.21.118

cobbler system add --name=test_001 --ip=192.168.21.118

變更system配置名稱

cobbler system rename --name=test001 --newname=abc

4. 刪除system配置
需要刪除的profile名稱為test_001

cobbler system remove --name=test_001

5. 查看定義的系統列表

cobbler system listtest_001

設置好后,需要執行排錯和同步

cobbler checkcobbler sync

Cobbler的Web管理界面的安裝與配置

用web 界面進行管理Cobbler是一個非常簡便的方法, 只需要安裝cobbler_web 軟件包即可
1.

yum? -y? install? cobbler_web

2. 設置cobbler web登陸,用戶登陸密碼
為cobbler添加cobbler用戶,并設置密碼

htdigest /etc/cobbler/users.digest "Cobbler" cobbler # 添加cobbler用戶,提示輸入2遍密碼確認

3. 配置cobbler web 登錄認證

vi /etc/cobbler/modules.conf修改authentication 部分中的module,修改后如下:module = authn_configfile # 修改認證方式為密碼文件類型命令自動修改sed -i 's/authn_denyall/authn_configfile/g' /etc/cobbler/modules.conf

4. 同步cobbler

# cobbler sync??? /輸出*** TASK COMPLETE *** 表示配置無錯誤

5. 重啟cobbler 與http

# /etc/init.d/httpd restart# /etc/init.d/cobblerd restart

6. 訪問web頁面: https://192.168.21.128/cobbler_web 使用剛才創建的用戶登錄,密碼就是上面設置的。

cobbler的使用,主要是集中在上面幾個菜單里。這里簡單解析一下。

Distros:這個其實就是發行版,類似Centos,ubuntu,suse。centos6.2和centos6.3,是不同的distros。假設我們導入一個centos6.3的iso,就是增加了一個Distros

Profiles:針對Distros的設置,一個distros,可以保護多個profiles,包括不同的kickstart文件。源的設置,都是在這里設置。

Systems:針對是每個節點,這里可以指定節點的ip地址,dns name,還有就是ipmi的用戶名和密碼,實現遠程開機,關機。這是一個重點,日后對機器的操作,全部在sytem的菜單里操作。system里,會指定節點使用哪個profile。

Repos:這個主要是針對Redhat和Centos有效,可以管理源,并且這些源,可以在profile里添加。比較方便。需要注意的是,對于ubuntu的源,只能在kickstart 腳本里指定。

Images:這個我沒用到,看說明主要是針對不能pxe的機器,采用iso啟動。

Kicsstart Templates:這是核心,cobbler內置了幾個ks文件,你如果導入一個centos,系統會默認關聯一個ks文件,你不需要做任何設置,就可 以把os自動裝完。對于ubuntu,我們就需要單獨創建一個preseed文件,這些文件可以通過web管理和修改。非常方便。

Snippets:這是cobbler的精華。一些常用的設置,寫成一個模塊,讓ks文件調用。這樣更加靈活。例如centos的網絡固定IP地址的設置,就是通過這里實現。

使用web頁面管理Cobbler

1:添加DVD源,
點擊Importer DVD (先掛載鏡像ISO),然后再Importer,點擊run

2:Events觀察日志
Tue Nov 19 08:11:54 2013 Sync complete log /complete表示完成:
3:Distros里面查看源
CentOS6.4-x86_64
4:Profiles里添加部署工程
選擇Distros和ks文件位置,然后保存

5:客戶端從網絡啟動后選擇對應的工程文件開始自動部署

Cobbler測試安裝

1. 為了增加裝機的安全,可設置裝機密碼

openssl? passwd? -1? -salt? 'root'? minunix$1$root$oZ2U5GhxaJ1b4q4tpPQnE0編輯pxedefault.template,加入密碼部分vim? /etc/cobbler/pxe/pxedefault.template在TIMEOUT 上面加入一行MENU MASTER PASSWD $1$root$oZ2U5GhxaJ1b4q4tpPQnE0vim /etc/cobbler/pxe/pxeprofile.template在LABEL 標簽中加入一行 MENU PASSWD修改完之后記得同步配置, cobbler check && cobbler sync

2. 自定義PXE 菜單TITLE
修改pxedefault.template 文件
修改MENU TITLE 后面的內容為自己想要的內容
eg: MENU TITLE MinUnix Install System| http://www.minunix.com
修改完之后記得同步配置, cobbler check && cobbler sync

3. 自定義安裝系統
可以通過命令 cobbler system add 進行自定義安裝某個版本的系統,
更多命令可通過cobbler system add –help 獲得幫助

把需要安裝系統的機器的bios設置為優先通過網絡啟動,然后重啟機器,會看到一個啟動界面,第一項默認是local,也就是說20秒如果不選擇其它安裝選項系統將正常啟動,所以不用擔心正常機器會受到影響。

首次安裝操作系統

1、 將需要安裝系統的服務器,以下簡稱客戶端,放到和cobbler服務端同樣的子網中。
2、 啟動cobbler服務端上的cobblerd等相關服務。
3、 從PXE啟動客戶端主機。
(1) 客戶端尋找設置DHCP。
(2) 客戶端從PXE啟動。
(3) 客戶端進入cobbler profile選擇界面,用戶可以根據應用的不同,選擇不同的cobbler配置文件。
在啟動的時候選擇PXE的模式。

然后就能看到下面的圖示內容。虛擬機通過dhcp獲得了122段的ip,然后通過tftp獲得到pxe的啟動文件。

下圖是cobbler的pxe安裝啟動菜單,這里有我們剛剛創建好的CentOS版本。

系統安裝使用默認的ks文件,經過短暫的等待,系統就自動被安裝好了。

完成后自動重啟,可以用先前定義好的密碼(“111111″)登陸了.
安裝好的系統如下圖所示。

Linux系統重裝測試

重裝節點的系統,你可以在cobbler上設置,無論web還是命令行。不過你還有一種選擇,就是直接在客戶機上進行。
koan:kickstart over a network。就可以實現這個功能。需要在客戶端安裝koan,就可以。
要使用koan,有一個前提,就是需要你網絡里有dhcp。koan安裝系統不需要PXE支持,我覺得應該像Windos下通過ghost文件安裝或還原系統,重啟系統后就進入自己安裝或還原狀態。
在要重裝的機器安裝koan,需要先安裝epel源

yum install koan

查看cobbler server上的配置文件,對于centos5.x 的系統koan不能采用yum安裝,否則會因python版本過低而報錯。

1,先確定當前linux系統中已經安裝了koan軟件。對于koan的安裝可以放到ks文件中在安裝系統的過程中完成安裝操作。執行如下命令檢查

# rpm -qa|grep koankoan-2.0.11-2.el6.noarch

koan的命令使用,倒是比較簡單:http://linux.die.net/man/1/koan

2,有了koan軟件后可以執行如下操作,查看cobbler上的系統版本列表

# koan --server=192.168.21.128 --list=profiles- looking for Cobbler at http://192.168.21.128/cobbler_apicentos-6.0-i386centos-6.0-i386-kvmcentos6-vmcentos-6.0-x86_64

這里我們選擇centos-6.0-i386來重裝。可以執行如下命令

# koan --server=192.168.21.128 --profile=centos-6.0-i386 --replace-self- looking for Cobbler at http://192.168.21.128/cobbler_api- reading URL: http://192.168.21.128/cblr/svc/op/ks/profile/centos-6.0-i386install_tree: http://192.168.21.128/cobbler/ks_mirror/centos-6.0-i386downloading initrd initrd.img to /boot/initrd.imgurl=http://192.168.21.128/cobbler/images/centos-6.0-i386/initrd.img- reading URL: http://192.168.21.128/cobbler/images/centos-6.0-i386/initrd.imgdownloading kernel vmlinuz to /boot/vmlinuzurl=http://192.168.21.128/cobbler/images/centos-6.0-i386/vmlinuz- reading URL: http://192.168.21.128/cobbler/images/centos-6.0-i386/vmlinuz- ['/sbin/grubby', '--add-kernel', '/boot/vmlinuz', '--initrd', '/boot/initrd.img', '--args', '"ks=http://192.168.21.128/cblr/svc/op/ks/profile/centos-6.0-i386 ksdevice=link kssendmac lang= text "', '--copy-default', '--make-default', '--title=kick1313675750']- reboot to apply changes# reboot

紅色部分是手工輸入的,從其他部分信息可以看到,koan幫我們做了很多本該人工操作的內容。

接下來看下重啟的過程:

由此看到,系統已經進入重裝的狀態了。

安裝使用心得

網上絕大部分資料中用到的IOS鏡像都是DVD文件,我用minimal版本的iso也能成功安裝。

在xen上測試安裝客戶機時,xen上新建的客戶機網卡需要使用橋接模式,默認是NAT模式,如果是默認模式,則xen將會通過xen宿主機自帶的DHCP服務器獲取IP(192.168.122.*),從而導致通過網絡安裝失敗。

以上所有內容雖然是在xen虛擬機上測試的,但完全可以直接使用于生產環境中,不會給現有環境帶來任何影響。唯一需要做的就是規劃好現有網絡。

對于很多人擔心的生成環境開啟DHCP服務問題,我認為不會對現有生產環境產生任何影響,理由有二:

1、沒有人會在裝好系統后讓網卡使用dhcp模式,通常都是為網卡配置靜態ip

2、從測試過程中看到,就算是服務器默認設置成了通過pxe啟動,而且也順利的通過pxe啟動了,但之后會收到cobbler的引導菜單。如果默認沒有任何選擇的話,20秒后會使用local方式加載,也就是啟動硬盤上的系統。

綜上所述,cobbler還是很安全的。

可能遇到的錯誤

cobbler check檢查出現的錯誤

# cobbler check

可自動 檢查安裝環境是否滿足cobbler服務的需要

執行完后可能出現下面的信息(按提示解決相關問題即可):

The following are potential configuration items that you may want to fix:? 1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost,or kickstarting features will not work.? This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it. 2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network. 3 : you need to set some SELinux content rules to ensure cobbler works correctly in your SELinux environment, run the following:????? /usr/sbin/semanage fcontext -a -t public_content_t "/tftpboot/.*" && \????? /usr/sbin/semanage fcontext -a -t public_content_t "/var/www/cobbler/images/.*" 4 : 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. 5 : change 'disable' to 'no' in /etc/xinetd.d/tftp 6 : change 'disable' to 'no' in /etc/xinetd.d/rsync 7 : since iptables may be running, ensure 69, 80, and 25151 are unblocked 8 : debmirror package is not installed, it will be required to manage debian deployments and repositories 9 : The default password used by the sample templates for newly installed machines????? (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed,????? try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one? Restart cobblerd and then run 'cobbler sync' to apply changes.

上面這段信息大意就是:

1,編輯/etc/cobbler/settings文件,找到 server選項,修改為適當的ip地址,本實例配置ip為:192.168.21.128(此為cobbler服務地址)
問題1和2可用shell代碼自動修改

HostIP=$(/sbin/ip addr show dev eth0 | sed -n 3p | awk '{print $2}'| awk -F\/ '{print $1}')sed -i 's/^\(server:\).*$/\1 '$HostIP'/g' /etc/cobbler/settingssed -i 's/^\(next_server:\).*$/\1 '$HostIP'/g' /etc/cobbler/settings

2,編輯/etc/cobbler/settings文件,找到 next_server選項,修改為適當的ip地址,本實例配置ip為:192.168.21.128(注:此為DHCP服務地址)

3,SELinux的設置。如果上面已經關閉了SELinux就不用管了
這個需要重啟機器才能生效,所以建議修改完重啟

sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config[root@cobbler ~]# sestatusSELinux status:???????????????? disabled

4,執行 cobbler get-loaders,系統將自動下載loader程序(下載引導文件),完成提示4的修復工作。

5,編輯/etc/xinetd.d/tftp文件,將文件中的disable字段的配置由yes改為no
問題5和6可用shell代碼自動修改

sed -i 's/disable.*$/disable = no/g' /etc/xinetd.d/tftpsed -i 's/disable.*$/disable = no/g' /etc/xinetd.d/rsync或sed -i '/disable/c\\tdisable\t\t\t= no' /etc/xinetd.d/tftp sed -i 's/\=\ yes/\=\ no /g' /etc/xinetd.d/rsync

6,編輯/etc/xinetd.d/rsync文件,將文件中的disable字段的配置由yes改為no(注:此為使cobbler管理rsync功能)

7,在iptables中將69,80,25151端口打開。如果僅僅只是在內部環境中使用,建議直接將防火墻關掉

chkconfig ip6tables offchkconfig iptables off/etc/init.d/ip6tables stop/etc/init.d/iptables stop

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

yum -y install debmirror cman安裝debmirror和cman注釋掉如下兩行。#@dists="sid";#@arches="i386";

9,修改cobbler用戶的默認密碼,可以使用如下命令生成密碼,并使用生成后的密碼替換/etc/cobbler/settings中的密碼。生成密碼命令:

openssl passwd -1 -salt 'random-phrase-here' 'your-password-here' 其中“random-phrase-here”為干擾碼 # openssl passwd -1 -salt 'random-phrase-here''root123' # 生產cobbler安裝系統root密碼,密碼為root123$1$random-p$99lAzJZEl9uunSaThe9oM0 加入cobbler配置,修改 /etc/cobbler/settings #default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."default_password_crypted: "$1$random-p$99lAzJZEl9uunSaThe9oM0"

較驗cobbler check出錯

Traceback (most recent call last):File "/usr/bin/cobbler", line 35, in ?sys.exit(app.main())File "/usr/lib/python2.4/site-packages/cobbler/cli.py", line 558, in mainrc = cli.run(sys.argv)File "/usr/lib/python2.4/site-packages/cobbler/cli.py", line 202, in runself.token = self.remote.login("", self.shared_secret)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 __requestverbose=self.__verboseFile "/usr/lib64/python2.4/xmlrpclib.py", line 1147, in requestreturn self._parse_response(h.getfile(), sock)File "/usr/lib64/python2.4/xmlrpclib.py", line 1286, in _parse_responsereturn u.close()File "/usr/lib64/python2.4/xmlrpclib.py", line 744, in closeraise Fault(**self._stack[0])xmlrpclib.Fault:

解決方法:此為BUG,按下方操作執行即可。

service cobblerd restartcobbler get-loaders

所有提示全部fix之后,執行

/etc/init.d/cobblerd restart

在此使用cobbler check檢查系統,只出現如下提示,可以不用管

同步cobbler配置
對cobbler所有修改,需要

cobbler sync

其它錯誤

1、Dell機器安裝報錯:linux error parsing kickstart provice the etho does not exist
解決方法:
在kickstarts自動安裝腳本中注釋掉#$SNIPPET(‘network_config’)
添加一行:network –bootproto=dhcp –device=em1

遇錯誤多看/var/log/message再根據百度谷歌解決。

附錄

Cobbler命令說明

命令名稱
命令用途

cobbler check
核對當前設置是否有問題

cobbler list
列出所有的cobbler元素

cobbler report
列出元素的詳細信息

cobbler sync
同步配置到數據目錄,更改配置最好都要執行下

cobbler reposync
同步yum倉庫

cobbler distro
查看導入的發行版系統信息

cobbler system
查看添加的系統信息

cobbler profile
查看配置信息

命令參考:

cobbler --helpcobbler distro --helpcobbler distro add --help

Cobbler配置文件

cobbler有許多的配置文件,但是只有少部分基本功能需要修改。
Cobbler最主要的setting file就是/etc/cobbler/settings。Cobbler2.4.0開始引入動態修改模式(Dynamic Settings),我們只需啟動這一模式,便不用再手動修改這個文件了。該文件是YAML格式的,如果直接修改setting文件,則必須重啟 cobbler服務才會生效,但如果是通過CLI命令或者是Web GUI進行修改的話,改動會立即生效,無需重啟服務。
修改allow_dynamic_settings的值為1

cd /etc/cobbler/cp settings settings.savesed -i 's/^[[:space:]]\+/ /' /etc/cobbler/settingssed -i 's/allow_dynamic_settings: 0/allow_dynamic_settings: 1/g' /etc/cobbler/settings修改該配置后重啟cobbler服務 /etc/init.d/cobblerd restart 這個時候,你就可以通過命令行來編輯配置 cobbler setting reportcobbler setting report [--name=option]cobbler setting edit --name=option --value=xxx

命令來動態修改cobbler配置
命令用法參考:CentOS6.5安裝和配置Cobbler 2.4:http://www.chenshake.com/centos6-4-installation-and-configuration-cobbler-2-4/

Cobbler目錄說明

1、Cobbler配置文件目錄:/etc/cobbler
/etc/cobbler/settings #cobbler主配置文件
/etc/cobbler/dhcp.template #DHCP服務的配置模板
/etc/cobbler/tftpd.template #tftp服務的配置模板
/etc/cobbler/rsync.template #rsync服務的配置模板
/etc/cobbler/iso #iso模板配置文件
/etc/cobbler/pxe #pxe模板文件
/etc/cobbler/power #電源的配置文件
/etc/cobbler/users.conf #Web服務授權配置文件
/etc/cobbler/users.digest #用于web訪問的用戶名密碼配置文件
/etc/cobbler/dnsmasq.template #DNS服務的配置模板
/etc/cobbler/modules.conf #Cobbler模塊配置文件

2、Cobbler數據目錄:/var/lib/cobbler
/var/lib/cobbler/config #配置文件
/var/lib/cobbler/triggers #Cobbler命令
/var/lib/cobbler/kickstarts #默認存放kickstart文件
/var/lib/cobbler/loaders #存放的各種引導程序

3、系統安裝鏡像目錄:/var/www/cobbler
/var/www/cobbler/ks_mirror #導入的系統鏡像列表
/var/www/cobbler/images #導入的系統鏡像啟動文件
/var/www/cobbler/repo_mirror #yum源存儲目錄

4、日志目錄:/var/log/cobbler
/var/log/cobbler/install.log #客戶端系統安裝日志
/var/log/cobbler/cobbler.log #cobbler日志

什么是PXE

嚴格來說,PXE 并不是一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE Client。PXE (Pre-boot Execution Environment)協議使計算機可以通過網絡啟動。協議分為 client 和 server 端,PXE client 在網卡的 ROM 中,當計算機引導時,BIOS 把 PXE client 調入內存執行,由 PXE client 將放置在遠端的文件通過網絡下載到本地運行。運行 PXE 協議需要設置 DHCP 服務器 和 TFTP 服務器。DHCP 服務器用來給 PXE client(將要安裝系統的主機)分配一個 IP 地址,由于是給 PXE client 分配 IP 地址,所以在配置 DHCP 服務器時需要增加相應的 PXE 設置。此外,在 PXE client 的 ROM 中,已經存在了 TFTP Client。PXE Client 通過 TFTP 協議到 TFTP Server 上下載所需的文件。

更多內容請參考:Linux Kickstart無人值守安裝(上):http://baidu.blog.51cto.com/71938/158675

kickstart是什么

許多系統管理員寧愿使用自動化的安裝方法來安裝紅帽企業Linux.為了滿足這種需要,紅帽創建了kickstart安裝方法。KickStart 是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,并生成一個名為ks.cfg的文件;在其 后的安裝過程中(不只局限于生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找?KickStart生成的文件, 當找到合適的參數時,就采用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所有需 要填寫的參數時,安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然后去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啟選項 來重啟系統,并結束安裝。

Kickstart文件可以存放于單一的服務器上,在安裝過程中被獨立的機器所讀取.這個安裝方法可以支持使用單一kickstart文件在多臺機器上安裝紅帽企業Linux,這對于網絡和系統管理員來說是個理想的選擇.

Kickstart給用戶提供了一種自動化安裝紅帽企業Linux的方法.

如何執行kickstart安裝

kickstart 安裝可以使用本地光盤,本地硬盤驅動器,或通過 NFS,FTP,HTTP 來執行.
要使用 kickstart,必須:
1.創建一個kickstart文件.
2.創建有kickstart文件的引導介質或者使這個文件在網絡上可用.
3.籌備安裝樹.
4.開始kickstart安裝.
更多詳細內容請參考:
kickstart配置文件詳解:http://blog.chinaunix.net/uid-17240700-id-2813881.html

參考資料:
安裝參考:
官方文檔:http://www.cobblerd.org/manuals/2.6.0/
git wiki:https://github.com/cobbler/cobbler/wiki/
Cobbler全自動批量安裝部署Linux系統:http://www.osyunwei.com/archives/7606.html
CentOS6.5安裝和配置Cobbler 2.4:http://www.chenshake.com/centos6-4-installation-and-configuration-cobbler-2-4/
運維自動化之Cobbler系統安裝詳解:http://os.51cto.com/art/201109/288604_all.htm
使用 Cobbler 自動化和管理系統安裝:http://www.ibm.com/developerworks/cn/linux/l-cobbler/#configsome
CentOS 6.3 安裝和配置cobbler:http://blog.xymvp.com/?thread-index-fid-1-tid-129.htm
定制自己的CentOS6.4系統的ISO,及制作網絡安裝CentOS系統:http://wenku.baidu.com /link?url=_qfHMfepD2SnCzjY3MTh-NXvzLojjIQfU9LBfYAxw_qbPsLV2tcB7dDku7zuZNfFuePY8UccjbDRuGtWvrU3tByO1brsLuxBnTJxbzry7oW

配置參考:
品運維自動化之cobbler的安裝序:http://cwtea.blog.51cto.com/4500217/1047410/
運維自動化部署Cobbler之實戰使用-Centos篇:http://blog.sina.com.cn/s/blog_5372b96d0101fjuv.html
利用Cobbler批量布署CentOS:http://kerry.blog.51cto.com/172631/648430/

kickstart自動安裝文件配置參考:
基于Cobbler建立網絡安裝環境:http://tangobean.com/server/network-installation-with-cobbler/

轉載于:https://www.cnblogs.com/ligao/p/6065183.html

總結

以上是生活随笔為你收集整理的cobbler 配置(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。