Cobbler實現自動化安裝作業系統

luashin發表於2016-03-09

一、cobbler簡介

   Cobbler是實現自動化安裝作業系統的工具。它解決了PXE安裝時的弊端(只能實現單一作業系統的安裝)。實際上,cobbler是對PXE二次封裝可實現多版本,多環境作業系統安裝的高階抽象工具。

工作原理大致如下:

實際上,cobbler是對PXE的二次封裝。cobbler可以自動的實現PXE配置中的某些手動過程。PXE的工作原理大致如下:

關於PXE具體配置,可參考http://guoting.blog.51cto.com/8886857/1533029


二、cobbler安裝配置

說明:
目標主機:172.16.10.9

作業系統:CentOS 6.5
安裝、初步配置cobbler
    
## 1、安裝cobbler
# 說明,cobbler 的 rpm 安裝包,是由epel源提供
yum install cobbler -y
 
2、安裝並啟動httpd
yum -y install httpd
service httpd start
 
3、啟動cobblerd服務
service cobblerd start
 
4、配置cobbler
## 使用cobbler chenck 命令,可以檢查cobbler配置檔案是否配置正確
## cobbler check 首次會出現以下提示:
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 : 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.
4 : change 'disable' to 'no' in /etc/xinetd.d/rsync
5 : debmirror package is not installed, it will be required to manage debian \
  deployments and repositories
6 : ksvalidator was not found, install pykickstart
7 : 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
8 : fencing tools were not found, and are required to use the (optional) power \
  management features. install cman or fence-agents to use them
 
Restart cobblerd and then run 'cobbler sync' to apply changes.
 
## 解決辦法:
1、修改/etc/cobbler/settings檔案中的server引數的值為提供cobbler服務的主機相應的IP\
   地址或主機名,如172.16.10.9;
2、修改/etc/cobbler/settings檔案中的next_server引數的值為提供PXE服務的主機相應的\
   IP地址,如172.16.10.9;
3、如果當前節點可以訪問網際網路,執行“cobbler get-loaders”命令即可;否則,需要\
  安裝syslinux程式包,而後複製/usr/share/syslinux/{pxelinux.0,memu.c32}等檔案至\
  /var/lib/cobbler/loaders/目錄中;
4、執行“chkconfig rsync on”命令即可;
5、註釋/etc/debmirror.conf檔案中的“@dists="sid";”一行;
6、註釋/etc/debmirror.conf檔案中的“@arches="i386";”一行;
7、執行“openssl passwd -1 -salt $(openssl rand -hex 4)”生成密碼,並用其替換\
  /etc/cobbler/settings檔案中default_password_crypted引數的值;
8、執行“yum install cman fence-agents”命令安裝相應的程式包即可;
## 說明 5,6,8 步驟不是必需的。
 
接著重啟cobblerd,而後執行“cobbler sync”同步新的配置至cobbler。

結果如下:

下面需要配置dhcp,tftp服務。說明:cobbler 的執行依賴於dhcp、tftp、rsync及dns服務。其中dhcp可由dhcpd(isc)提供,也可由dnsmasq提供;tftp可由 tftp-server程式包提供,也可由cobbler自帶的tftp功能提供;rsync由rsync程式包提供;dns可由bind提供,也可由 dnsmasq提供。

cobbler可自行管理這些服務中的 部分甚至是全部,但需要配置/etc/cobbler/settings檔案中的“manage_dhcp”、“manage_tftpd”、 “manage_rsync”和“manage_dns”分別進行定義。另外,由於每種服務都有著不同的實現方式,如若需要進行自定義,需要透過修改 /etc/cobbler/modules.conf配置檔案中各服務的模組引數的值來實現。

下面採用了獨立管理的方式,即不透過cobbler來管理這些服務。(常用方式)

配置DHCP服務

yum install dhcp -y
# 編輯 /etc/dhcp/dhcpd.conf 配置檔案,內容如下:
option domain-name "example.com";
option domain-name-servers 172.16.0.1;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 172.16.0.0 netmask 255.255.0.0 {
  range 172.16.10.14 172.16.10.99;
  option routers 172.16.0.1;
  next-server 172.16.10.9;
  filename "pxelinux.0";
}
####################################
service dhcpd start

配置rsync和tftp服務

yum install rsync tftp-server -y
chkconfig rsync on ## 當然這一步在前面cobbler check時,已經完成,非必需的
chkconfig rsync on
service xinted start

配置cobbler

配置 cobbler 時,需要用到cobbler命令,對cobbler命令簡單說明:(常用)
cobbler命令的子命令:
    import:從光碟中匯入 Install Tree。會自動定義到Repository。
    reposync: 從網際網路中同步的Install Tree。
    buildiso:主要用於安裝的機器不支援網路卡引導,此時就需要製作ISO映象完成安裝。
    distro:定義Distribution
    sync:完成配置檔案的同步
    profile:定義Profile
    check: 檢查cobbler的配置檔案
其中每個子命令都有 [add|edit|copy|getks*|list|remove|rename|report] 等子命令。\
  具體使用可使用幫助資訊。例如: cobbler import add --help檢視幫助。
###################################################################################################
使cobbler變得可用的第一步為定義distro,其可以透過為其指定外部的安裝引導核心及ramdisk\
   檔案的方式實現。
而如果已經有完整的系統安裝樹(如CentOS6的安裝映象)則推薦使用import直接匯入的方式進行。
 
cobbler使用profile來為特定的需求類別提供所需要安裝配置,即在distro的基礎上透過提供\
   kickstart檔案來生成一個特定的系統安裝配置。
distro的profile可以出現在PXE的引導選單中作為安裝的選擇之一。
##################################################################################################
 
## 當然 kickstart 檔案事先完成。具體可參考http://guoting.blog.51cto.com/8886857/1533029
cobbler import --name=centos-6.5-x86_64 --path=/media/cdrom
cobbler profile add --name=centos6.5 --distro=centos-6.5-x86_64 --kickstart=/root/centos-6.5-x86_64.cfg
 
cobbler sync
## 詳細安裝過程可參照官網:

結果示例:

此時,配置就完成了,可以實現自動化安裝了。

此時就可以實現自動化了。

注意:kickstart檔案中的url位置,--url=指明Repository的位置,不同的系統對於不同的路徑。要實現多系統的安裝,可以check import不同的作業系統。系統版本的作業系統,也可使用不同的kickstart檔案來定義。

cobbler的web配置

上面的操作也可以透過web介面來設定,具體步驟如下:
    
###### 配置cobbler_web的認證功能
 
###安裝軟體
yum install cobbler_web
 
## cobbler_web支援多種認證方式,如authn_configfile、authn_ldap或authn_pam等,\
  預設為authn_denyall,即拒絕所有使用者登入。
 
### 這裡 使用authn_pam模組認證cobbler_web使用者
 
## 首先修改 /etc/cobbler/modules中[authentication]段的module引數的值為authn_pam。
## 接著新增系統使用者,使用者名稱和密碼按需設定即可,例如下面的命令所示。
useradd cobbler
echo 'cblrpass' | passwd --stdin cobbler
 
# 而後將cblradmin使用者新增至cobbler_web的admin組中。修改/etc/cobbler/users.conf檔案,
   將cblradmin使用者名稱新增為admin引數的值即可,如下所示。
[admins]
admin = "cobbler"
 
##最後重啟cobblerd服務,透過訪問即可。

下面是配置介面:


具體配置過程,這裡不再演示。


# cat kickstart.cfg
******************************************************************************************************
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url=""
# Root password
rootpw --iscrypted $1$iRHppr42$VMesh73wBqhUTjKp6OYOD.
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info --host=172.16.0.1
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# System bootloader configuration
bootloader --append="rhgb crashkernel=auto quiet" --location=mbr --driveorder="sda"
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all  
# Disk partitioning information
part /boot --fstype="ext4" --size=200
part pv.008 --size=61440

volgroup vg0 --pesize=8192 pv.008
logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
logvol swap --name=swap --vgname=vg0 --size=2048
logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240
logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480

#repo --name="Fedora EPEL"  --baseurl=

%post
echo -e 'Mage Education Learning Services\n\n' >> /etc/issue

sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab

%end

%packages
@base
@basic-desktop
@chinese-support
@client-mgmt-tools
@core
@desktop-platform
@fonts
@general-desktop
@graphical-admin-tools
@legacy-x
@network-file-system-client
@perl-runtime
@remote-desktop-clients
@x11
lftp
ibus-table-cangjie
ibus-table-erbi
ibus-table-wubi

%end
******************************************************************************************************


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9034054/viewspace-2052650/,如需轉載,請註明出處,否則將追究法律責任。

相關文章