環境:
OEL6.3 x64 (CentOS6.3 x64)
網絡環境中無其它DHCP伺服器
本文出自:http://koumm.blog.51cto.com
一、 cobbler安裝準備
1. 關閉iptables與selinux
# chkconfig iptables off
# vi /etc/selinux/config
SELINUX=disabled
# sestatus 重新開機後檢視
2. 安裝源準備并安裝cobbler軟體
說明:基礎源與epel源。
rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install cobbler cobbler-web httpd rsync tftp-server xinetd dhcp python-ctypes debmirror pykickstart fence-agents
二、 配置tftp-server與rsync
開啟tftp與rsync服務
sed -i '/disable/c disable = no' /etc/xinetd.d/tftp
sed -i -e 's/= yes/= no/g' /etc/xinetd.d/rsync
三、配置cobbler
1. 配置httpd配置檔案
# vi /etc/httpd/conf/httpd.conf
ServerName 127.0.0.1:80
2. 配置cobbler主配置檔案
sed -i 's/next_server: 127.0.0.1/next_server: 192.168.1.10/g' /etc/cobbler/settings
sed -i 's/server: 127.0.0.1/server: 192.168.1.10/g' /etc/cobbler/settings
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings
sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings
3. 配置cobbler web登入認證配置檔案
(1) 修改認證檔案
sed -i 's/module = authn_denyall/module = authn_configfile/g' /etc/cobbler/modules.conf
(2) 設定使用者名密碼:
htdigest /etc/cobbler/users.digest "Cobbler" cobbler
4. 生成Cobbler安裝系統root初始密碼
(1)這裡生成密鑰和配置預設密鑰,ks檔案引用
# openssl passwd -1 -salt 'random-phrase-here' '111111'
$1$random-p$WbZ3JxhRzCS/1Ne4S9g4Z.
(2) 将上面的加密串加入cobbler配置檔案中。
# vi /etc/cobbler/settings
# 修改為如下配置
default_password_crypted: "$1$random-p$WbZ3JxhRzCS/1Ne4S9g4Z."
四、配置DHCP與啟動cobbler相關服務
1. 配置dhcp配置檔案
# mv /etc/cobbler/dhcp.template /etc/cobbler/dhcp.template.bak
# vi /etc/cobbler/dhcp.template
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 202.100.192.68;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.1.120 192.168.1.254;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
}
2. 需要啟動的服務
chkconfig httpd on
chkconfig xinetd on
chkconfig dhcpd on
chkconfig cobblerd on
service httpd start
service xinetd start
service dhcpd start
service cobblerd start
五、效驗cobbler安裝條件
1. 修複cobbler check時出現的第一條錯誤資訊
[root@pxe ~]# cobbler get-loaders
task started: 2013-12-15_191305_get_loaders
task started (id=Download Bootloader Content, time=Sun Dec 15 19:13:05 2013)
downloading http://www.cobblerd.org/loaders/README to /var/lib/cobbler/loaders/README
downloading http://www.cobblerd.org/loaders/COPYING.elilo to /var/lib/cobbler/loaders/COPYING.elilo
downloading http://www.cobblerd.org/loaders/COPYING.yaboot to /var/lib/cobbler/loaders/COPYING.yaboot
downloading http://www.cobblerd.org/loaders/COPYING.syslinux to /var/lib/cobbler/loaders/COPYING.syslinux
downloading http://www.cobblerd.org/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi
downloading http://www.cobblerd.org/loaders/yaboot-1.3.14-12 to /var/lib/cobbler/loaders/yaboot
downloading http://www.cobblerd.org/loaders/pxelinux.0-3.61 to /var/lib/cobbler/loaders/pxelinux.0
downloading http://www.cobblerd.org/loaders/menu.c32-3.61 to /var/lib/cobbler/loaders/menu.c32
downloading http://www.cobblerd.org/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi
downloading http://www.cobblerd.org/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi
*** TASK COMPLETE ***
[root@pxe ~]#
2. 修複debian/ubuntu系統安裝選項支援包
# vi /etc/debmirror.conf
說明:前提是安裝debmirror pykickstart這兩個包,注釋掉如下兩行。
#@dists="sid";
#@arches="i386";
3. cobbler check效驗環境
[root@pxe ~]# cobbler check
The following are potential configuration items that you may want to fix:
1 : service dhcpd is not running
Restart cobblerd and then run 'cobbler sync' to apply changes.
4. 按上文校驗提示操作修複
[root@pxe ~]# cobbler sync
task started: 2013-12-15_192432_sync
task started (id=Sync, time=Sun Dec 15 19:24:32 2013)
running pre-sync triggers
cleaning trees
mkdir: /var/lib/tftpboot/pxelinux.cfg
mkdir: /var/lib/tftpboot/grub
mkdir: /var/lib/tftpboot/s390x
mkdir: /var/lib/tftpboot/ppc
mkdir: /var/lib/tftpboot/etc
removing: /var/lib/tftpboot/grub/p_w_picpaths
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
trying hardlink /var/lib/cobbler/loaders/yaboot -> /var/lib/tftpboot/yaboot
trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
copying distros to tftpboot
copying p_w_picpaths
generating PXE configuration files
generating PXE menu structure
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
rendering TFTPD files
generating /etc/xinetd.d/tftp
cleaning link caches
rendering Rsync files
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout: 正在啟動 dhcpd:[确定]
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/*
*** TASK COMPLETE ***
[root@pxe ~]#
說明:本節在前面已經考慮過cobbler check的錯誤提示了,大部分處理了。
5. 重新開機cobblerd 與xinetd服務
[root@pxe ~]# service cobblerd restart
Stopping cobbler daemon: [确定]
Starting cobbler daemon: [确定]
[root@pxe ~]# service xinetd restart
停止 xinetd: [确定]
正在啟動 xinetd: [确定]
六、導入linux ISO安裝鏡像
1. 挂載ISOCD光牒鏡像
# mount /dev/cdrom /mnt
2. 開始導入CD光牒鏡像
# cobbler import --path=/mnt --arch=x86_64 --name=Centos-5.9
task started: 2013-12-15_193916_import
task started (id=Media import, time=Sun Dec 15 19:39:16 2013)
Found a candidate signature: breed=redhat, version=rhel5
Found a matching signature: breed=redhat, version=rhel5
Adding distros from path /var/www/cobbler/ks_mirror/Centos-5.9-x86_64:
creating new distro: Centos-5.9-x86_64
trying symlink: /var/www/cobbler/ks_mirror/Centos-5.9-x86_64 -> /var/www/cobbler/links/Centos-5.9-x86_64
creating new profile: Centos-5.9-x86_64
creating new distro: Centos-5.9-xen-x86_64
trying symlink: /var/www/cobbler/ks_mirror/Centos-5.9-x86_64 -> /var/www/cobbler/links/Centos-5.9-xen-x86_64
creating new profile: Centos-5.9-xen-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
starting descent into /var/www/cobbler/ks_mirror/Centos-5.9-x86_64 for Centos-5.9-x86_64
processing repo at : /var/www/cobbler/ks_mirror/Centos-5.9-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/Centos-5.9-x86_64
looking for /var/www/cobbler/ks_mirror/Centos-5.9-x86_64/repodata/*comps*.xml
running: createrepo -c cache -s sha --groupfile /var/www/cobbler/ks_mirror/Centos-5.9-x86_64/repodata/comps.xml
/var/www/cobbler/ks_mirror/Centos-5.9-x86_64
received on stdout: Spawning worker 0 with 3579 pkgs
Worker 0:
..........
... 略....
..........
Worker 0:
Workers Finished
Gathering worker results
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
received on stderr:
starting descent into /var/www/cobbler/ks_mirror/Centos-5.9-x86_64 for Centos-5.9-xen-x86_64
processing repo at : /var/www/cobbler/ks_mirror/Centos-5.9-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/Centos-5.9-x86_64
looking for /var/www/cobbler/ks_mirror/Centos-5.9-x86_64/repodata/*comps*.xml
*** TASK COMPLETE ***
說明: cobbler将鏡像拷貝一份放在/var/www/cobbler/ks_mirrors/CentOS-5.9-x86_64目錄下。
同時會建立一個名字為CentOS-5.9-x86_64的一個釋出版本,以及一個名字為CentOS-5.9-x86_64的profile檔案。
[root@pxe kickstarts]# cobbler list
distros:
Centos-5.9-x86_64
Centos-5.9-xen-x86_64
profiles:
Centos-5.9-x86_64
Centos-5.9-xen-x86_64
systems:
repos:
p_w_picpaths:
mgmtclasses:
packages:
files:
七、修改安裝更改kickstart檔案
1. 相關知識内容
說明:
預設kickstart檔案是/var/lib/cobbler/kickstarts/sample.ks,需要手動為每個發行版單獨指定, 或單獨修改。
# cobbler distro list
Centos-5.9-x86_64
Centos-5.9-xen-x86_64
#
2. 手動建立自定義新的kickstart檔案
vi /var/lib/cobbler/kickstarts/centos-5.9.ks
install
text
cdrom
lang zh_CN.UTF-8
keyboard us
reboot
url --url=http://192.168.1.10/cobbler/ks_mirror/Centos-5.9-x86_64
network --device eth0 --bootproto dhcp --noipv6 --hostname oa
rootpw --iscrypted $1$H0bnNoWM$HE1R/mWv6LqbhUGI8Xw/t.
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all --initlabel
part /boot --fstype ext3 --size=200 --asprimary
part swap --size=2048
part / --fstype ext3 --size=200 --grow
%packages
@admin-tools
@base
@chinese-support
@core
@development-libs
@development-tools
@dialup
@editors
@gnome-desktop
@games
@graphical-internet
@graphics
@java
@legacy-software-development
@legacy-software-support
@office
@printing
@sound-and-video
@text-internet
@base-x
system-config-kickstart
kexec-tools
iscsi-initiator-utils
fipscheck
squashfs-tools
device-mapper-multipath
sgpio
imake
emacs
libsane-hpaio
xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
%post
service sendmail stop
3. 修改profile指定新的KS啟動檔案,按角色進行分類
說明
1. 選擇Centos-5.9-x86_64,将采用Centos-5.9-x86_64安裝源,并通過/var/lib/cobbler/kickstarts/centos-5.9.ks檔案進行全自動安裝。
2. 如有其它發行版,導入完鏡像後,可以通過以下方式進行修改,否則将采用預設KS進行安裝系統。
3. 也可以采用不同的ks檔案來實作個性能自動安裝,如下面第三條add指令,添加一個半自動的ks檔案。
4. 如果沒有按下面内容修改指定ks檔案的話,引導菜單隻顯示Centos-5.9-x86_64預設一項。指定ks檔案後,會在啟動菜單中顯示。
# cobbler profile edit --name=Centos-5.9-x86_64 --distro=Centos-5.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos-5.9.ks
示例:
# cobbler profile edit --name=Centos-5.9-xen-x86_64 --distro=Centos-5.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos-5.9-xen.ks
# cobbler profile add --name=Centos-5.9-half-auto --distro=Centos-5.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos-5.9-halfauto.ks
如圖所示:
4. 更改profile名稱
# cobbler profile rename --name=Centos-5.9-x86_64 --newname=CentOS-5U9-x64
5. 删除profile配置,需要删除的profile名稱為Centos-5.9-x86_64,删除後,安裝啟動菜單相關項消失。
# cobbler profile remove --name=Centos-5.9-x86_64
八、添加指定客戶機系統配置到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.10.110
cobbler system add --name=test_001 --ip=192.168.1.110
變更system配置名稱
cobbler system rename --name=test001 --newname=abc
4. 删除system配置
需要删除的profile名稱為test_001
cobbler system remove --name=test_001
5. 檢視定義的系統清單
cobbler system list
test_001
九、安裝用戶端作業系統
(1) 通過網卡pxe啟動
(2) 自動完成安裝
十、重裝用戶端作業系統
wget ftp://rpmfind.net/linux/epel/5/i386/koan-1.6.6-1.el5.noarch.rpm
rpm -ivh koan-1.6.6-1.el5.noarch.rpm
# koan --server=192.168.1.10 --list=profiles
- looking for Cobbler at http://192.168.1.10/cobbler_api
- reading URL: http://192.168.1.10/cblr/svc/op/ks/profile/Centos-5.9-x86_64
install_tree: http://192.168.1.10/cobbler/ks_mirror/Centos-5.9-x86_64
downloading initrd initrd.img to /boot/initrd.img
url=http://192.168.1.10/cobbler/p_w_picpaths/Centos-5.9-x86_64/initrd.img
- reading URL: http://192.168.1.10/cobbler/p_w_picpaths/Centos-5.9-x86_64/initrd.img
downloading kernel vmlinuz to /boot/vmlinuz
url=http://192.168.1.10/cobbler/p_w_picpaths/Centos-5.9-x86_64/vmlinuz
- reading URL: http://192.168.1.10/cobbler/p_w_picpaths/Centos-5.9-x86_64/vmlinuz
- ['/sbin/grubby', '--add-kernel', '/boot/vmlinuz', '--initrd', '/boot/initrd.img', '--args', '"ks=http://192.168.1.10/cblr/svc/op/ks/profile/Centos-5.9-x86_64 ksdevice=link kssendmac lang= text "', '--copy-default', '--make-default', '--title=kick1387098833']
- reboot to apply changes
# reboot