天天看點

Cobbler全自動安裝CentOS(整理)

環境:    

oel6.3 x64 (centos6.3 x64)     

網絡環境中無其它dhcp伺服器 

本文出自:http://koumm.blog.51cto.com

1

2

3

<code># chkconfig iptables off</code>

<code># vi /etc/selinux/config</code>

<code>selinux=disabled</code>

<code># sestatus  重新開機後檢視</code>

說明:基礎源與epel源。 

<code>rpm -ivh http:</code><code>//download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm</code>

<code>yum -y install cobbler cobbler-web httpd rsync tftp-server xinetd dhcp python-ctypes debmirror pykickstart fence-agents</code>

開啟tftp與rsync服務 

<code>sed -i </code><code>'/disable/c disable = no'</code> <code>/etc/xinetd.d/tftp</code>

<code>sed -i -e </code><code>'s/= yes/= no/g'</code> <code>/etc/xinetd.d/rsync</code>

<code># vi /etc/httpd/conf/httpd.conf</code>

<code>servername </code><code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>80</code>

4

<code>sed -i </code><code>'s/next_server: 127.0.0.1/next_server: 192.168.1.10/g'</code> <code>/etc/cobbler/settings</code>

<code>sed -i </code><code>'s/server: 127.0.0.1/server: 192.168.1.10/g'</code> <code>/etc/cobbler/settings</code>

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

<code>sed -i </code><code>'s/manage_rsync: 0/manage_rsync: 1/g'</code> <code>/etc/cobbler/settings</code>

<code>sed -i </code><code>'s/module = authn_denyall/module = authn_configfile/g'</code> <code>/etc/cobbler/modules.conf</code>

<code>htdigest /etc/cobbler/users.digest </code><code>"cobbler"</code> <code>cobbler</code>

<code># openssl passwd -</code><code>1</code> <code>-salt </code><code>'random-phrase-here'</code> <code>'111111'</code>

<code>$</code><code>1</code><code>$random-p$wbz3jxhrzcs/1ne4s9g4z.</code>

<code># vi /etc/cobbler/settings</code>

<code># 修改為如下配置</code>

<code>default_password_crypted: </code><code>"$1$random-p$wbz3jxhrzcs/1ne4s9g4z."</code>

5

6

7

8

9

10

11

12

13

14

15

16

17

<code># mv /etc/cobbler/dhcp.template /etc/cobbler/dhcp.template.bak</code>

<code># vi /etc/cobbler/dhcp.template</code>

<code>ddns-update-style interim;</code>

<code>allow booting;</code>

<code>allow bootp;</code>

<code>ignore client-updates;</code>

<code>set</code> <code>vendorclass = option vendor-</code><code>class</code><code>-identifier;</code>

<code>subnet </code><code>192.168</code><code>.</code><code>1.0</code> <code>netmask </code><code>255.255</code><code>.</code><code>255.0</code> <code>{</code>

<code>option routers </code><code>192.168</code><code>.</code><code>1.1</code><code>;</code>

<code>option domain-name-servers </code><code>202.100</code><code>.</code><code>192.68</code><code>;</code>

<code>option subnet-mask </code><code>255.255</code><code>.</code><code>255.0</code><code>;</code>

<code>range </code><code>dynamic</code><code>-bootp </code><code>192.168</code><code>.</code><code>1.120</code> <code>192.168</code><code>.</code><code>1.254</code><code>;</code>

<code>filename </code><code>"/pxelinux.0"</code><code>;</code>

<code>default</code><code>-lease-time </code><code>21600</code><code>;</code>

<code>max-lease-time </code><code>43200</code><code>;</code>

<code>next-server $next_server;</code>

<code>}</code>

<code>chkconfig httpd on</code>

<code>chkconfig xinetd on</code>

<code>chkconfig dhcpd on</code>

<code>chkconfig cobblerd on</code>

<code>service httpd start</code>

<code>service xinetd start</code>

<code>service dhcpd start</code>

<code>service cobblerd start</code>

<code>[root@pxe ~]# cobbler </code><code>get</code><code>-loaders</code>

<code>task started: </code><code>2013</code><code>-</code><code>12</code><code>-15_191305_get_loaders</code>

<code>task started (id=download bootloader content, time=sun dec </code><code>15</code> <code>19</code><code>:</code><code>13</code><code>:</code><code>05</code> <code>2013</code><code>)</code>

<code>downloading http:</code><code>//www.cobblerd.org/loaders/readme to /var/lib/cobbler/loaders/readme</code>

<code>downloading http:</code><code>//www.cobblerd.org/loaders/copying.elilo to /var/lib/cobbler/loaders/copying.elilo</code>

<code>downloading http:</code><code>//www.cobblerd.org/loaders/copying.yaboot to /var/lib/cobbler/loaders/copying.yaboot</code>

<code>downloading http:</code><code>//www.cobblerd.org/loaders/copying.syslinux to /var/lib/cobbler/loaders/copying.syslinux</code>

<code>downloading http:</code><code>//www.cobblerd.org/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi</code>

<code>downloading http:</code><code>//www.cobblerd.org/loaders/yaboot-1.3.14-12 to /var/lib/cobbler/loaders/yaboot</code>

<code>downloading http:</code><code>//www.cobblerd.org/loaders/pxelinux.0-3.61 to /var/lib/cobbler/loaders/pxelinux.0</code>

<code>downloading http:</code><code>//www.cobblerd.org/loaders/menu.c32-3.61 to /var/lib/cobbler/loaders/menu.c32</code>

<code>downloading http:</code><code>//www.cobblerd.org/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi</code>

<code>downloading http:</code><code>//www.cobblerd.org/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi</code>

<code>*** task complete ***</code>

<code>[root@pxe ~]#</code>

<code># vi /etc/debmirror.conf</code>

<code>說明:前提是安裝debmirror pykickstart這兩個包,注釋掉如下兩行。</code>

<code>#@dists=</code><code>"sid"</code><code>;</code>

<code>#@arches=</code><code>"i386"</code><code>;</code>

<code>[root@pxe ~]# cobbler check</code>

<code>the following are potential configuration items that you may want to fix:</code>

<code>1</code> <code>: service dhcpd </code><code>is</code> <code>not running</code>

<code>restart cobblerd and then run </code><code>'cobbler sync'</code> <code>to apply changes.</code>

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<code>[root@pxe ~]# cobbler sync</code>

<code>task started: </code><code>2013</code><code>-</code><code>12</code><code>-15_192432_sync</code>

<code>task started (id=sync, time=sun dec </code><code>15</code> <code>19</code><code>:</code><code>24</code><code>:</code><code>32</code> <code>2013</code><code>)</code>

<code>running pre-sync triggers</code>

<code>cleaning trees</code>

<code>mkdir: /</code><code>var</code><code>/lib/tftpboot/pxelinux.cfg</code>

<code>mkdir: /</code><code>var</code><code>/lib/tftpboot/grub</code>

<code>mkdir: /</code><code>var</code><code>/lib/tftpboot/s390x</code>

<code>mkdir: /</code><code>var</code><code>/lib/tftpboot/ppc</code>

<code>mkdir: /</code><code>var</code><code>/lib/tftpboot/etc</code>

<code>removing: /</code><code>var</code><code>/lib/tftpboot/grub/images</code>

<code>copying bootloaders</code>

<code>trying hardlink /</code><code>var</code><code>/lib/cobbler/loaders/pxelinux.</code><code>0</code> <code>-&gt; /</code><code>var</code><code>/lib/tftpboot/pxelinux.</code><code>0</code>

<code>trying hardlink /</code><code>var</code><code>/lib/cobbler/loaders/menu.c32 -&gt; /</code><code>var</code><code>/lib/tftpboot/menu.c32</code>

<code>trying hardlink /</code><code>var</code><code>/lib/cobbler/loaders/yaboot -&gt; /</code><code>var</code><code>/lib/tftpboot/yaboot</code>

<code>trying hardlink /usr/share/syslinux/memdisk -&gt; /</code><code>var</code><code>/lib/tftpboot/memdisk</code>

<code>trying hardlink /</code><code>var</code><code>/lib/cobbler/loaders/grub-x86.efi -&gt; /</code><code>var</code><code>/lib/tftpboot/grub/grub-x86.efi</code>

<code>trying hardlink /</code><code>var</code><code>/lib/cobbler/loaders/grub-x86_64.efi -&gt; /</code><code>var</code><code>/lib/tftpboot/grub/grub-x86_64.efi</code>

<code>copying distros to tftpboot</code>

<code>copying images</code>

<code>generating pxe configuration files</code>

<code>generating pxe menu structure</code>

<code>rendering dhcp files</code>

<code>generating /etc/dhcp/dhcpd.conf</code>

<code>rendering tftpd files</code>

<code>generating /etc/xinetd.d/tftp</code>

<code>cleaning link caches</code>

<code>rendering rsync files</code>

<code>running post-sync triggers</code>

<code>running python triggers from /</code><code>var</code><code>/lib/cobbler/triggers/sync/post/*</code>

<code>running python trigger cobbler.modules.sync_post_restart_services</code>

<code>running: dhcpd -t -q</code>

<code>received on stdout:</code>

<code>received on stderr:</code>

<code>running: service dhcpd restart</code>

<code>received on stdout: 正在啟動 dhcpd:[确定]</code>

<code>running shell triggers from /</code><code>var</code><code>/lib/cobbler/triggers/sync/post/*</code>

<code>running python triggers from /</code><code>var</code><code>/lib/cobbler/triggers/change/*</code>

<code>running python trigger cobbler.modules.scm_track</code>

<code>running shell triggers from /</code><code>var</code><code>/lib/cobbler/triggers/change/*</code>

說明:本節在前面已經考慮過cobbler check的錯誤提示了,大部分處理了。 

<code>[root@pxe ~]# service cobblerd restart</code>

<code>stopping cobbler daemon:                                   [确定]</code>

<code>starting cobbler daemon:                                   [确定]</code>

<code>[root@pxe ~]# service xinetd restart</code>

<code>停止 xinetd:                                              [确定]</code>

<code>正在啟動 xinetd:                                          [确定]</code>

<code># mount /dev/cdrom /mnt</code>

<code># cobbler </code><code>import</code> <code>--path=/mnt --arch=x86_64 --name=centos-</code><code>5.9</code>

<code>task started: </code><code>2013</code><code>-</code><code>12</code><code>-15_193916_import</code>

<code>task started (id=media </code><code>import</code><code>, time=sun dec </code><code>15</code> <code>19</code><code>:</code><code>39</code><code>:</code><code>16</code> <code>2013</code><code>)</code>

<code>found a candidate signature: breed=redhat, version=rhel5</code>

<code>found a matching signature: breed=redhat, version=rhel5</code>

<code>adding distros from path /</code><code>var</code><code>/www/cobbler/ks_mirror/centos-</code><code>5.9</code><code>-x86_64:</code>

<code>creating </code><code>new</code> <code>distro: centos-</code><code>5.9</code><code>-x86_64</code>

<code>trying symlink: /</code><code>var</code><code>/www/cobbler/ks_mirror/centos-</code><code>5.9</code><code>-x86_64 -&gt; /</code><code>var</code><code>/www/cobbler/links/centos-</code><code>5.9</code><code>-x86_64</code>

<code>creating </code><code>new</code> <code>profile: centos-</code><code>5.9</code><code>-x86_64</code>

<code>creating </code><code>new</code> <code>distro: centos-</code><code>5.9</code><code>-xen-x86_64</code>

<code>trying symlink: /</code><code>var</code><code>/www/cobbler/ks_mirror/centos-</code><code>5.9</code><code>-x86_64 -&gt; /</code><code>var</code><code>/www/cobbler/links/centos-</code><code>5.9</code><code>-xen-x86_64</code>

<code>creating </code><code>new</code> <code>profile: centos-</code><code>5.9</code><code>-xen-x86_64</code>

<code>associating repos</code>

<code>checking </code><code>for</code> <code>rsync repo(s)</code>

<code>checking </code><code>for</code> <code>rhn repo(s)</code>

<code>checking </code><code>for</code> <code>yum repo(s)</code>

<code>starting descent into /</code><code>var</code><code>/www/cobbler/ks_mirror/centos-</code><code>5.9</code><code>-x86_64 </code><code>for</code> <code>centos-</code><code>5.9</code><code>-x86_64</code>

<code>processing repo at : /</code><code>var</code><code>/www/cobbler/ks_mirror/centos-</code><code>5.9</code><code>-x86_64</code>

<code>need to process repo/comps: /</code><code>var</code><code>/www/cobbler/ks_mirror/centos-</code><code>5.9</code><code>-x86_64</code>

<code>looking </code><code>for</code> <code>/</code><code>var</code><code>/www/cobbler/ks_mirror/centos-</code><code>5.9</code><code>-x86_64/repodata/*comps*.xml</code>

<code>running: createrepo -c cache -s sha --groupfile /</code><code>var</code><code>/www/cobbler/ks_mirror/centos-</code><code>5.9</code><code>-x86_64/repodata/comps.xml</code>

<code>/</code><code>var</code><code>/www/cobbler/ks_mirror/centos-</code><code>5.9</code><code>-x86_64</code>

<code>received on stdout: spawning worker </code><code>0</code> <code>with</code> <code>3579</code> <code>pkgs</code>

<code>worker </code><code>0</code><code>:</code>

<code>..........</code>

<code>... 略....</code>

<code>workers finished</code>

<code>gathering worker results</code>

<code>saving primary metadata</code>

<code>saving file lists metadata</code>

<code>saving other metadata</code>

<code>generating sqlite dbs</code>

<code>sqlite dbs complete</code>

<code>starting descent into /</code><code>var</code><code>/www/cobbler/ks_mirror/centos-</code><code>5.9</code><code>-x86_64 </code><code>for</code> <code>centos-</code><code>5.9</code><code>-xen-x86_64</code>

說明: cobbler将鏡像拷貝一份放在/var/www/cobbler/ks_mirrors/centos-5.9-x86_64目錄下。   

同時會建立一個名字為centos-5.9-x86_64的一個釋出版本,以及一個名字為centos-5.9-x86_64的profile檔案。 

<code>[root@pxe kickstarts]# cobbler list</code>

<code>distros:</code>

<code>centos-</code><code>5.9</code><code>-x86_64</code>

<code>centos-</code><code>5.9</code><code>-xen-x86_64</code>

<code>profiles:</code>

<code>systems:</code>

<code>repos:</code>

<code>images:</code>

<code>mgmtclasses:</code>

<code>packages:</code>

<code>files:</code>

說明:   

預設kickstart檔案是/var/lib/cobbler/kickstarts/sample.ks,需要手動為每個發行版單獨指定, 或單獨修改。 

<code># cobbler distro list</code>

<code>#</code>

<code>vi /</code><code>var</code><code>/lib/cobbler/kickstarts/centos-</code><code>5.9</code><code>.ks</code>

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

<code>install</code>

<code>text</code>

<code>cdrom</code>

<code>lang zh_cn.utf-</code><code>8</code>

<code>keyboard us</code>

<code>reboot</code>

<code>url --url=http:</code><code>//192.168.1.10/cobbler/ks_mirror/centos-5.9-x86_64</code>

<code>network --device eth0 --bootproto dhcp --noipv6 --hostname oa</code>

<code>rootpw --iscrypted $</code><code>1</code><code>$h0bnnowm$he1r/mwv6lqbhugi8xw/t.</code>

<code>firewall --disabled</code>

<code>authconfig --enableshadow --enablemd5</code>

<code>selinux --disabled</code>

<code>timezone asia/shanghai</code>

<code>bootloader --location=mbr --driveorder=sda --append=</code><code>"rhgb quiet"</code>

<code># the following </code><code>is</code> <code>the partition information you requested</code>

<code># note that any partitions you deleted are not expressed</code>

<code># here so unless you clear all partitions first, </code><code>this</code> <code>is</code>

<code># not guaranteed to work</code>

<code>clearpart --all --initlabel</code>

<code>part /boot --fstype ext3 --size=</code><code>200</code> <code>--asprimary</code>

<code>part swap --size=</code><code>2048</code>

<code>part / --fstype ext3 --size=</code><code>200</code> <code>--grow</code>

<code>%packages</code>

<code>@admin-tools</code>

<code>@base</code>

<code>@chinese-support</code>

<code>@core</code>

<code>@development-libs</code>

<code>@development-tools</code>

<code>@dialup</code>

<code>@editors</code>

<code>@gnome-desktop</code>

<code>@games</code>

<code>@graphical-internet</code>

<code>@graphics</code>

<code>@java</code>

<code>@legacy-software-development</code>

<code>@legacy-software-support</code>

<code>@office</code>

<code>@printing</code>

<code>@sound-and-video</code>

<code>@text-internet</code>

<code>@base-x</code>

<code>system-config-kickstart</code>

<code>kexec-tools</code>

<code>iscsi-initiator-utils</code>

<code>fipscheck</code>

<code>squashfs-tools</code>

<code>device-mapper-multipath</code>

<code>sgpio</code>

<code>imake</code>

<code>emacs</code>

<code>libsane-hpaio</code>

<code>xorg-x11-utils</code>

<code>xorg-x11-server-xnest</code>

<code>xorg-x11-server-xvfb</code>

<code>%post</code>

<code>service sendmail stop</code>

說明   

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檔案後,會在啟動菜單中顯示。 

<code># cobbler profile edit --name=centos-</code><code>5.9</code><code>-x86_64 --distro=centos-</code><code>5.9</code><code>-x86_64 --kickstart=/</code><code>var</code><code>/lib/cobbler/kickstarts/centos-</code><code>5.9</code><code>.ks</code>

示例:   

<code># cobbler profile edit --name=centos-</code><code>5.9</code><code>-xen-x86_64 --distro=centos-</code><code>5.9</code><code>-x86_64 --kickstart=/</code><code>var</code><code>/lib/cobbler/kickstarts/centos-</code><code>5.9</code><code>-xen.ks</code>

<code># cobbler profile add --name=centos-</code><code>5.9</code><code>-half-auto --distro=centos-</code><code>5.9</code><code>-x86_64 --kickstart=/</code><code>var</code><code>/lib/cobbler/kickstarts/centos-</code><code>5.9</code><code>-halfauto.ks</code>

如圖所示: 

Cobbler全自動安裝CentOS(整理)

<code># cobbler profile rename --name=centos-</code><code>5.9</code><code>-x86_64 --newname=centos-5u9-x64</code>

<code># cobbler profile remove --name=centos-</code><code>5.9</code><code>-x86_64</code>

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

<code>cobbler system add --name=test_000 --ip=</code><code>192.168</code><code>.</code><code>1.0</code><code>/</code><code>24</code> <code>--profile=centos-</code><code>5.9</code><code>-x86_64</code>

指定伺服器的mac位址,并設定好主機名、ip位址等資訊,需要提示知道伺服器mac位址,根據mac應用到具體機器上。    

<code>還可以指定ks參數。--kickstart=/</code><code>var</code><code>/lib/cobbler/kickstarts/webserver.ks</code>

<code>cobbler system add --name=test_001 --hostname=test_001 --mac=</code><code>00</code><code>:0c:</code><code>29</code><code>:e3:</code><code>81</code><code>:</code><code>32</code> <code>--</code><code>interface</code><code>=eth0 --ip-address=</code><code>192.168</code><code>.</code><code>1.123</code> <code>--subnet=</code><code>255.255</code><code>.</code><code>255.0</code> <code>--gateway=</code><code>192.168</code><code>.</code><code>1.1</code> <code>--</code><code>static</code><code>=</code><code>1</code> <code>--profile=centos-</code><code>5.9</code><code>-x86_64</code>

機器ip位址變更為192.168.10.110    

<code>cobbler system add --name=test_001 --ip=</code><code>192.168</code><code>.</code><code>1.110</code>

變更system配置名稱   

<code>cobbler system rename --name=test001 --newname=abc</code>

需要删除的profile名稱為test_001   

<code>cobbler system remove --name=test_001</code>

<code>cobbler system list</code>

<code>test_001</code>

<code>wget ftp:</code><code>//rpmfind.net/linux/epel/5/i386/koan-1.6.6-1.el5.noarch.rpm</code>

<code>rpm -ivh koan-</code><code>1.6</code><code>.</code><code>6</code><code>-</code><code>1</code><code>.el5.noarch.rpm</code>

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

<code># koan --server=</code><code>192.168</code><code>.</code><code>1.10</code> <code>--list=profiles</code>

<code>- looking </code><code>for</code> <code>cobbler at http:</code><code>//192.168.1.10/cobbler_api</code>

<code>- reading url: http:</code><code>//192.168.1.10/cblr/svc/op/ks/profile/centos-5.9-x86_64</code>

<code>install_tree: http:</code><code>//192.168.1.10/cobbler/ks_mirror/centos-5.9-x86_64</code>

<code>downloading initrd initrd.img to /boot/initrd.img</code>

<code>url=http:</code><code>//192.168.1.10/cobbler/images/centos-5.9-x86_64/initrd.img</code>

<code>- reading url: http:</code><code>//192.168.1.10/cobbler/images/centos-5.9-x86_64/initrd.img</code>

<code>downloading kernel vmlinuz to /boot/vmlinuz</code>

<code>url=http:</code><code>//192.168.1.10/cobbler/images/centos-5.9-x86_64/vmlinuz</code>

<code>- reading url: http:</code><code>//192.168.1.10/cobbler/images/centos-5.9-x86_64/vmlinuz</code>

<code>- [</code><code>'/sbin/grubby'</code><code>, </code><code>'--add-kernel'</code><code>, </code><code>'/boot/vmlinuz'</code><code>, </code><code>'--initrd'</code><code>, </code><code>'/boot/initrd.img'</code><code>, </code><code>'--args'</code><code>, </code><code>'"ks=http://192.168.1.10/cblr/svc/op/ks/profile/centos-5.9-x86_64 ksdevice=link kssendmac lang= text "'</code><code>, </code><code>'--copy-default'</code><code>, </code><code>'--make-default'</code><code>, </code><code>'--title=kick1387098833'</code><code>]</code>

<code>- reboot to apply changes</code>

<code># reboot</code>

reboot重新開機伺服器後,用戶端伺服器會自動重新安裝作業系統 

Cobbler全自動安裝CentOS(整理)