防僞碼:沒有相當程度的孤獨是不可能有內心的平和。
1、概述
本文部分圖片源自網絡,侵刪。
1.1 介紹
官網地址 | http://cobbler.github.io/ |
官網介紹:Cobbleris a Linux installation server that allows for rapid setup of networkinstallation environments. It glues together and automates many associatedLinux tasks so you do not have to hop between many various commands andapplications when deploying new systems, and, in some cases, changing existingones. Cobbler can help with provisioning, managing DNS and DHCP, packageupdates, power management, configuration management orchestration, and muchmore.
運維自動化包括標準化、工具化、Web化、服務化、智能化等幾個不同的層級,在一家規模稍大、擁有服務器上千臺甚至是幾萬臺的生產環境中,想要真正實現運維自動化,工具化系統安裝流程、統一系統安裝規範,是其中最不能忽略的重要環節。普通的自動化部署可以採用pxe+dhcp+tftp配合kickstart實現,但是面對多版本、多部署需求的情況下,這種普通的部署方式可能達不到我們的要求;這時候就需要藉助cobbler開源自動化部署工具來實現。
Cobbler是一個Linux服務器安裝的服務(在經過調整也可以支持網絡安裝windows),用以自動化批量安裝服務器系統,是當前自動化運維環境中不可或缺的工具。該工具使用python開發,小巧輕便(才15k行python代碼),使用簡單的命令即可完成PXE網絡安裝環境的配置,同時還可以管理DHCP、DNS、yum倉庫、構造系統ISO鏡像。
Cobbler可以使用命令行方式管理,也提供了基於Web的界面管理工具(cobbler-web),還提供了API接口,可以方便二次開發使用。
Cobbler是較早前的kickstart的升級版,優點是比較容易配置,還自帶web界面比較易於管理。
Cobbler內置了一個輕量級配置管理系統,但它也支持和其它配置管理系統集成,如Puppet,暫時不支持SaltStack。
Cobbler集成的服務:
PXE服務支持
DHCP服務管理
DNS服務管理(可選bind,dnsmasq)
電源管理
Kickstart服務支持
YUM倉庫管理
TFTP(PXE啓動時需要)
Apache(提供kickstart的安裝源,並提供定製化的kickstart配置)
1.1.1 PXE概述
首先,要自動安裝系統的機器,必須支持PXE,無論是有PXE的網卡或者芯片等(目前絕大部分的機器均支持)。
預啓動執行環境(Preboot eXecution Environment,PXE,也被稱爲預執行環境)是讓計算機通過網卡獨立地使用數據設備(如硬盤)或者安裝操作系統。PXE當初是作爲Intel的有線管理體系的一部分,Intel和 Systemsoft於1999年9月20日公佈其規格(版本2.1)。通過使用像網際協議(IP)、用戶數據報協議(UDP)、動態主機設定協定(DHCP)、小型文件傳輸協議(TFTP)等幾種網絡協議和全局唯一標識符(GUID)、通用網絡驅動接口(UNDI)、通用唯一識別碼(UUID)的概念並通過對客戶機(通過PXE自檢的電腦)固件擴展預設的API來實現目的。PXE 客戶機(client)這個術語是指機器在PXE啓動過程中的角色。一個PXE 客戶機(client)可以是一臺服務器、桌面級電腦、筆記本電腦或者其他裝有PXE啓動代碼的機器。
客戶機的固件爲接受到可用的PXE啓動服務器,要在網絡中嘗試找出PXE重定向服務(DHCP代理)。在分析返回的包後,固件會向合適的啓動服務器詢問網絡自檢程序(NBP)的路徑,並且通過TFTP協議下載到電腦的內存中,有可能會去校驗它,最後執行它。當只有全部的PXE 客戶機(client)只使用一個NBP時,全部的PXE 客戶機可能會被指定是用BOOTP協議,從而不需要DHCP代理,但是仍然需要TFTP啓動服務。
PXE 協議大致上結合了DHCP和TFTP,雖然都有在兩者上面有改進。DHCP用於查找合適的啓動服務器,TFTP用於下載初始引導程序和附加文件。爲了開始一個PXE自檢會話,PXE固件廣播一個帶有明確的PXE選項DHCPDISCOVER包(擴展DHCPDISCOVER)到67/UDP端口(DHCP服務器端口)。PXE選項是PXE固件有PXE能力的鑑定,但是會被一般的DHCP服務忽略。當固件受到從這樣的服務受到DHCPOFFER包時,它會通過要求其提供配置信息來自我配置。
當 PXE 重定向服務 (DHCP代理) 收到一個 擴展DHCPDISCOVER 包時,它會通過發送一個帶有明確的PXE選項DHCPDISCOVER包到PXE客戶機的68/UDP端口 (DHCP 客戶機端口)來回答。一個擴展DHCPDISCOVER包主要包含:
一個PXE發現控制領域,以決定是使用多播,廣播(網路)或單播來聯繫PXE啓動服務器。
一個列出可用的PXE啓動服務器類型的地址表。
一個代表每個一個PXE啓動服務器類型的條目單。
一個帶有帶有提示用戶按下哪一個鍵來看到啓動菜單的PXE啓動菜單。
一個超過多長時間就啓動第一啓動菜單的超時數值。
一個DHCP代理服務可能在相同的主機上運行一個標準的DHCP服務器。儘管兩個服務不可以共享67/UDP 端口,DHCP代理服務在4011/UDP 端口上運行,要求從客戶端來的DHCPDISCOVER 包變成DHCPREQUEST 包。標準DHCP服務在其發送的DHCPOFFER 包中加入特殊的PXE 選項組合,這樣PXE客戶端知道可以在同一個主機的 4011/UDP 端口找到一個DHCP代理服務。
和一個正在啓動系統的啓動服務聯繫必須有一個IP地址(可能來自DHCP服務)。通過多播或單播一個帶有特殊的PXE選項的 DHCPREQUEST 包(擴展DHCPREQUEST包)到 4011/UDP端口,或者廣播(網路)這種包到 67/UDP端口。這種包包含有PXE啓動服務類型和PXE啓動層,一個守護進程允許運行多個啓動服務類型。 一個擴展 DHCPREQUEST包可能是一個DHCPINFORM包。下面是PXE具體工作原理圖,
簡單總結一下:
PXE Client發送廣播包請求DHCP分配IP地址DHCP;
Server回覆請求,給出IP地址以及Boot;
Server的地址PXE下載引導文件執行引導程序;
1.1.2 KickStart概述
KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,並生成一個名爲ks.cfg的文件;在其後的安裝過程中(不只侷限於生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以只告訴安裝程序從何處取ks.cfg(注:Cobbler一般使用.ks或.cfg文件)文件,然後去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啓選項來重啓系統,並結束安裝。
工作原理大致如下:
cobbler是實現自動化安裝操作系統的工具。它解決了PXE安裝時的弊端(只能實現單一操作系統的安裝)。實際上,cobbler是對PXE二次封裝可實現多版本,多環境操作系統安裝的高級抽象工具。
1.1.3 Cobbler概念和命令詳解
概念 | 說明 |
發行版 | 表示一個操作系統。它承載了內核和 initrd 的信息,以及內核參數等其他數據。 |
配置文件 | 包含一個發行版、一個 kickstart 文件以及可能的存儲庫,還包含更多特定的內核參數等其他數據。 |
系統 | 表示要配給的機器。它包含一個配置文件或一個鏡像,還包含 IP 和 MAC 地址、電源管理(地址、憑據、類型)以及更爲專業的數據等信息。 |
存儲庫 | 保存一個 yum 或 rsync 存儲庫的鏡像信息。 |
鏡像 | 可替換一個包含不屬於此類別的文件的發行版對象(例如,無法分爲內核和 initrd 的對象)。 |
相關命令詳解
命令名稱 | 命令用途 |
cobbler check | 檢查cobbler配置 |
cobbler list | 列出所有的cobbler元素 |
cobbler report | 列出元素的詳細信息 |
cobbler distro | 查看導入的發行版系統信息 |
cobbler system | 查看添加的系統信息 |
cobbler profile | 查看配置信息 |
cobbler sync | 同步Cobbler配置,更改配置最好都要執行下 |
cobbler reposync | 同步yum倉庫 |
cobbler distro add --name=string--kernel=path --initrd=path
[--kopts=string] [--kopts-post=string] [--ksmeta=string]
[--arch=x86|x86_64|ia64] [--breed=redhat|debian|suse]
[--template-files=string]
2、部署測試
2.1 環境準備
系統版本 | CentOS 6.5 X64 Minimal |
主機IP | 192.168.10.5 |
網絡環境 | VMware NAT,靜態,網關192.168.10.2 |
系統環境 | 硬盤250G,關閉SElinux、iptables,配置阿里雲yum源 |
安裝epel:
yum install -y http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
2.2 cobbler
yum安裝Cobbler、DHCP、httpd等相關工具:
yum -y install cobbler cobbler-web dhcptftp-server pykickstart httpd
部分配置文件:
/etc/cobbler # 配置文件目錄 /etc/cobbler/settings # cobbler主配置文件,這個文件是YAML格式,Cobbler是python寫的程序。 /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模塊配置文件 /var/lib/cobbler # Cobbler數據目錄 /var/lib/cobbler/config # 配置文件 /var/lib/cobbler/kickstarts # 默認存放kickstart文件 /var/lib/cobbler/loaders # 存放的各種引導程序 /var/www/cobbler # 系統安裝鏡像目錄 /var/www/cobbler/ks_mirror # 導入的系統鏡像列表 /var/www/cobbler/images # 導入的系統鏡像啓動文件 /var/www/cobbler/repo_mirror # yum源存儲目錄 /var/log/cobbler # 日誌目錄 /var/log/cobbler/install.log # 客戶端系統安裝日誌 /var/log/cobbler/cobbler.log # cobbler日誌
2.3 配置Cobbler
啓動httpd服務:
[root@Cobbler~]#/etc/init.d/httpd restart Stopping httpd: [ OK ] Starting httpd: httpd: apr_sockaddr_info_get() failedfor Cobbler httpd: Could not reliably determine the server's fullyqualified domain name, using 127.0.0.1 for ServerName [ OK ]
啓動Cobbler:
[root@Cobbler~]#/etc/init.d/cobblerd start Starting cobbler daemon: [ OK ]
檢查Cobbler的配置:
[root@Cobbler~]#cobbler check Traceback (most recent call last): File"/usr/bin/cobbler", line 36, in <module> sys.exit(app.main()) File"/usr/lib/python2.6/site-packages/cobbler/cli.py", line 657, in main rc =cli.run(sys.argv) File"/usr/lib/python2.6/site-packages/cobbler/cli.py", line 270, in run self.token =self.remote.login("", self.shared_secret) File "/usr/lib64/python2.6/xmlrpclib.py",line 1199, in __call__ returnself.__send(self.__name, args) File"/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request verbose=self.__verbose File"/usr/lib64/python2.6/xmlrpclib.py", line 1253, in request returnself._parse_response(h.getfile(), sock) File"/usr/lib64/python2.6/xmlrpclib.py", line 1392, in _parse_response returnu.close() File"/usr/lib64/python2.6/xmlrpclib.py", line 838, in close raiseFault(**self._stack[0]) xmlrpclib.Fault: <Fault 1: "<class'cobbler.cexceptions.CX'>:'login failed'">
解決以上問題:
[root@Cobbler~]#/etc/init.d/cobblerd restart Stopping cobbler daemon: [ OK ] Starting cobbler daemon: [ OK ] [root@Cobbler~]#cobbler get-loaders task started: 2016-09-03_053311_get_loaders task started (id=Download Bootloader Content, time=SatSep 3 05:33:11 2016) downloading http://cobbler.github.io/loaders/README to/var/lib/cobbler/loaders/README downloadinghttp://cobbler.github.io/loaders/COPYING.elilo to/var/lib/cobbler/loaders/COPYING.elilo downloadinghttp://cobbler.github.io/loaders/COPYING.yaboot to/var/lib/cobbler/loaders/COPYING.yaboot downloading http://cobbler.github.io/loaders/COPYING.syslinuxto /var/lib/cobbler/loaders/COPYING.syslinux downloadinghttp://cobbler.github.io/loaders/elilo-3.8-ia64.efi to/var/lib/cobbler/loaders/elilo-ia64.efi downloadinghttp://cobbler.github.io/loaders/yaboot-1.3.17 to /var/lib/cobbler/loaders/yaboot downloadinghttp://cobbler.github.io/loaders/pxelinux.0-3.86 to/var/lib/cobbler/loaders/pxelinux.0 downloadinghttp://cobbler.github.io/loaders/menu.c32-3.86 to/var/lib/cobbler/loaders/menu.c32 downloadinghttp://cobbler.github.io/loaders/grub-0.97-x86.efi to/var/lib/cobbler/loaders/grub-x86.efi downloadinghttp://cobbler.github.io/loaders/grub-0.97-x86_64.efi to/var/lib/cobbler/loaders/grub-x86_64.efi *** TASK COMPLETE ***
再次檢查:
[root@Cobbler~]#cobbler check The following are potential configuration items thatyou may want to fix: 1 : The 'server' field in /etc/cobbler/settings mustbe set to something other than localhost, or kickstarting features will notwork. This should be a resolvablehostname or IP for the boot server as reachable by all machines that will useit. 2 : For PXE to be functional, the 'next_server' fieldin /etc/cobbler/settings must be set to something other than 127.0.0.1, andshould match the IP of the boot server on the PXE network. 3 : change 'disable' to 'no' in /etc/xinetd.d/tftp 4 : change 'disable' to 'no' in /etc/xinetd.d/rsync 5 : file /etc/xinetd.d/rsync does not exist 6 : debmirror package is not installed, it will berequired to manage debian deployments and repositories 7 : The default password used by the sample templatesfor 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 touse the (optional) power management features. install cman or fence-agents touse them Restart cobblerd and then run 'cobbler sync' to applychanges.
先備份配置文件:
[root@Cobbler~]#cp /etc/cobbler/settings /etc/cobbler/settings.bak
設置Cobbler服務器IP:
[root@Cobbler~]#sed -i 's/server: 127.0.0.1/server: 192.168.10.5/'/etc/cobbler/settings
設置next_server,作用和kickstart的類似,tftp的ip:
[root@Cobbler~]#sed -i 's/next_server: 127.0.0.1/next_server:192.168.10.5/' /etc/cobbler/settings
用Cobbler管理DHCP:
[root@Cobbler~]#sed -i 's/manage_dhcp:0/manage_dhcp: 1/' /etc/cobbler/settings
防止循環裝系統,適用於服務器第一啓動項是PXE啓動:
[root@Cobbler~]#sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings
設置新裝系統的默認root密碼123456。random-phrase-here爲干擾碼,可以自行設定:
[root@Cobbler ~]#openssl passwd -1 -salt 'test' '123456' $1$test$at615QShYKduQlx5z9Zm7/ [root@Cobbler ~]#vim /etc/cobbler/settings default_password_crypted: "$1$test$at615QShYKduQlx5z9Zm7/"
開啓rsync,把disable的yes改爲no:
[root@Cobbler ~]#vim /etc/xinetd.d/rsync servicersync { disable=no flags =IPv6 socket_type =stream wait =no user =root server =/usr/bin/rsync server_args =--daemon log_on_failure +=USERID } [root@Cobbler~]#/etc/init.d/xinetd restart Stopping xinetd: [FAILED] Starting xinetd: [ OK ]
配置DHCP模板:
[root@Cobbler ~]#vim /etc/cobbler/dhcp.template subnet 192.168.10.0 netmask 255.255.255.0 { optionrouters 192.168.10.2; optiondomain-name-servers 114.114.114.114; optionsubnet-mask 255.255.255.0; rangedynamic-bootp 192.168.10.60192.168.10.100; default-lease-time 21600; max-lease-time 43200; next-server $next_server;
配置詳解:
subnet192.168.10.0 netmask 255.255.255.0:分配的ip地址所在的網段爲192.168.10.0/24。 optionrouters:爲客戶端設定默認網關。 optiondomain-name-servers:客戶端指明DNS服務器的IP地址。 optionsubnet-mask:客戶端設定子網掩碼。 range dynamic-bootp:分配的ip地址範圍
同步Cobbler配置:
[root@Cobbler~]#cobbler sync task started: 2016-09-03_063123_sync task started (id=Sync, time=Sat Sep 3 06:31:23 2016) running pre-sync triggers cleaning trees removing: /var/lib/tftpboot/pxelinux.cfg/default removing: /var/lib/tftpboot/grub/images removing: /var/lib/tftpboot/grub/grub-x86.efi removing: /var/lib/tftpboot/grub/grub-x86_64.efi removing: /var/lib/tftpboot/grub/efidefault removing: /var/lib/tftpboot/s390x/profile_list copying bootloaders 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 images 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 running post-sync triggers running python triggers from/var/lib/cobbler/triggers/sync/post/* running python triggercobbler.modules.sync_post_restart_services running: dhcpd -t -q received on stdout: received on stderr: running: service dhcpd restart received on stdout: 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/* *** TASK COMPLETE ***
設置開機啓動:
[root@Cobbler~]#chkconfig httpd on [root@Cobbler~]#chkconfig xinetd on [root@Cobbler~]#chkconfig cobblerd on [root@Cobbler~]#/etc/init.d/httpd restart Stopping httpd: [ OK ] Starting httpd: httpd: apr_sockaddr_info_get() failedfor Cobbler httpd: Could not reliably determine the server's fullyqualified domain name, using 127.0.0.1 for ServerName [ OK ] [root@Cobbler~]#/etc/init.d/xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] [root@Cobbler~]#/etc/init.d/cobblerd restart Stopping cobbler daemon: [ OK ] Starting cobbler daemon: [ OK ] [root@Cobbler~]#/etc/init.d/dhcpd restart Shutting down dhcpd: [ OK ] Starting dhcpd:
編寫Cobbler相關服務啓動腳本:
[root@Cobbler ~]#vim /etc/init.d/cobbler #!/bin/bash # chkconfig: 345 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/cobblerdstatus ;; sync) cobbler sync ;; *) echo"Inputerror,please in put 'start|stop|restart|status|sync'!" exit2 ;; esac [root@Cobbler~]#chmod +x /etc/init.d/cobbler
2.4 導入鏡像
在虛擬機上掛載CentOS6.5的鏡像:
[root@Cobbler~]#mount /dev/cdrom /mnt mount: block device /dev/sr0 is write-protected,mounting read-only [root@Cobbler~]#cobbler import --path=/mnt/ --name=CentOS-6.5-x86_64--arch=x86_64 task started: 2016-09-03_065512_import task started (id=Media import, time=Sat Sep 3 06:55:12 2016) Found a candidate signature: breed=redhat,version=rhel6 Found a matching signature: breed=redhat,version=rhel6 Adding distros from path/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64: creating new distro: CentOS-6.5-x86_64 trying symlink:/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64 ->/var/www/cobbler/links/CentOS-6.5-x86_64 creating new profile: CentOS-6.5-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-6.5-x86_64for CentOS-6.5-x86_64 processing repo at :/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64 need to process repo/comps:/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64 looking for/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/repodata/*comps*.xml Keeping repodata as-is:/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/repodata *** TASK COMPLETE ***
查看鏡像列表:
[root@Cobbler~]#cobbler distro list CentOS-6.5-x86_64
2.5 配置ks文件
創建CentOS6.5的ks文件:
[root@Cobbler ~]#cd /var/lib/cobbler/kickstarts/ [root@Cobbler kickstarts]#ls default.ks install_profiles sample_autoyast.xml sample_esxi4.ks sample_old.seed esxi4-ks.cfg legacy.ks sample_end.ks sample_esxi5.ks sample.seed esxi5-ks.cfg pxerescue.ks sample_esx4.ks sample.ks [root@Cobbler kickstarts]#vim CentOS-6.5-x86_64.ks # Cobbler for Kickstart Configurator for CentOS 6.5 byhdj #告知安裝程序,這是一次全新安裝,而不是升級upgrade。 install # 這些$開頭的變量都是調用配置文件裏的值。 url --url=$tree #使用文本模式安裝。 text #設置在安裝過程中使用的語言以及系統的缺省語言。 lang en_US.UTF-8 #設置系統鍵盤類型。 keyboard us #清除mbr引導信息。 zerombr #系統引導相關配置。 bootloader --location=mbr --driveorder=sda --append="crashkernel=autorhgb quiet" # Network information $SNIPPET('network_config') timezone --utc Asia/Shanghai authconfig --enableshadow --passalgo=sha512 rootpw --iscrypted $default_password_crypted clearpart --all --initlabel # CentOS6系統磁盤默認格式ext4。 #--grow告訴分區使用所有可用空間(若有),或使用設置的最大值。 #以MB爲單位的分區最小值 part /boot --fstype ext4 --size=200 part swap --size=2048 part / --fstype ext4 --size=1 --grow firstboot --disable #關閉selinux。 selinux --disabled #關閉防火牆。 firewall --disabled #設置日誌級別。 logging --level=info #設定安裝完成後重啓,此選項必須存在。 reboot %pre $SNIPPET('log_ks_pre') $SNIPPET('kickstart_start') $SNIPPET('pre_install_network_config') # Enable installation monitoring $SNIPPET('pre_anamon') %end #軟件包 %packages @Base @Compatibility libraries @Debugging Tools @Development tools @Dial-up Networking Support @Hardware monitoring utilities @Performance Tools tree nmap sysstat lrzsz dos2unix telnet iptraf ncurses-devel openssl-devel zlib-devel OpenIPMI-tools screen %end %post %end
查看安裝鏡像文件信息:
[root@Cobblerkickstarts]#cobbler list distros: CentOS-6.5-x86_64 profiles: CentOS-6.5-x86_64 systems: repos: images: mgmtclasses: packages: files: [root@Cobblerkickstarts]#cobbler distro report --name=CentOS-6.5-x86_64 Name : CentOS-6.5-x86_64 Architecture : x86_64 TFTP Boot Files : {} Breed : redhat Comment : Fetchable Files : {} Initrd :/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/images/pxeboot/initrd.img Kernel :/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/images/pxeboot/vmlinuz Kernel Options : {} Kernel Options (Post Install) : {} Kickstart Metadata : {'tree':'http://@@http_server@@/cblr/links/CentOS-6.5-x86_64'} Management Classes : [] OS Version : rhel6 Owners : ['admin'] Red Hat Management Key : <<inherit>> Red Hat Management Server : <<inherit>> Template Files : {}
同步cobbler:
[root@Cobblerkickstarts]#cobbler sync task started: 2016-09-03_210603_sync task started (id=Sync, time=Sat Sep 3 21:06:03 2016) running pre-sync triggers cleaning trees removing: /var/www/cobbler/images/CentOS-6.5-x86_64 removing: /var/lib/tftpboot/pxelinux.cfg/default removing: /var/lib/tftpboot/grub/images removing: /var/lib/tftpboot/grub/grub-x86.efi removing: /var/lib/tftpboot/grub/grub-x86_64.efi removing: /var/lib/tftpboot/grub/efidefault removing: /var/lib/tftpboot/images/CentOS-6.5-x86_64 removing: /var/lib/tftpboot/s390x/profile_list copying bootloaders 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 files for distro: CentOS-6.5-x86_64 trying hardlink/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS-6.5-x86_64/vmlinuz trying hardlink/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/images/pxeboot/initrd.img ->/var/lib/tftpboot/images/CentOS-6.5-x86_64/initrd.img copying images generating PXE configuration files generating PXE menu structure copying files for distro: CentOS-6.5-x86_64 trying hardlink/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/images/pxeboot/vmlinuz ->/var/www/cobbler/images/CentOS-6.5-x86_64/vmlinuz trying hardlink/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/images/pxeboot/initrd.img ->/var/www/cobbler/images/CentOS-6.5-x86_64/initrd.img Writing template files for CentOS-6.5-x86_64 rendering DHCP files generating /etc/dhcp/dhcpd.conf rendering TFTPD files generating /etc/xinetd.d/tftp processing boot_files for distro: CentOS-6.5-x86_64 cleaning link caches running post-sync triggers running python triggers from/var/lib/cobbler/triggers/sync/post/* running python triggercobbler.modules.sync_post_restart_services running: dhcpd -t -q received on stdout: received on stderr: running: service dhcpd restart 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/* *** TASK COMPLETE ***
3、驗證
創建一臺空虛擬機,複製其MAC地址:
--name 自定義,但不能重複:
[root@Cobblerkickstarts]#cobbler system add --name=test01--mac=00:50:56:37:C5:F7 --profile=CentOS-6.5-x86_64 --ip-address=192.168.10.60--subnet=255.255.255.0 --gateway=192.168.10.2 --interface=eth0 --static=1--hostname=test01 --name-servers="114.114.114.114"
開啓空虛擬機電源,系統開始自動安裝:
安裝完成:
4、總結
本文只實驗了一小部分功能,更多高級功能和特性待續。