1.阿裡雲源
1
2
3
<code>[root@linux-node1 ~]</code><code># wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo</code>
<code>[root@linux-node1 ~]</code><code># wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo</code>
<code>[root@linux-node1 ~]</code><code># yum clean all</code>
2.作業系統(centos7.3 會有問題選擇centos7.2或者7.1)
<code>[root@linux-node1 ~]</code><code># cat /etc/redhat-release </code>
<code>CentOS Linux release 7.2.1511 (Core) </code>
<code>[root@linux-node1 ~]</code><code>#</code>
3.安裝需要的軟體
<code>[root@linux-node1 ~]</code><code># yum install -y httpd dhcp tftp cobbler</code>
4.啟動httpd和cobblerd
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<code>[root@linux-node1 ~]</code><code># systemctl start httpd </code>
<code>[root@linux-node1 ~]</code><code># systemctl enable httpd </code>
<code>Created </code><code>symlink</code> <code>from </code><code>/etc/systemd/system/multi-user</code><code>.target.wants</code><code>/httpd</code><code>.service to </code><code>/usr/lib/systemd/system/httpd</code><code>.service.</code>
<code>[root@linux-node1 ~]</code><code># systemctl start cobblerd</code>
<code>[root@linux-node1 ~]</code><code># systemctl enable cobblerd</code>
<code>Created </code><code>symlink</code> <code>from </code><code>/etc/systemd/system/multi-user</code><code>.target.wants</code><code>/cobblerd</code><code>.service to </code><code>/usr/lib/systemd/system/cobblerd</code><code>.service.</code>
<code>[root@linux-node1 ~]</code><code># </code>
<code>檢查是否啟動</code>
<code>[root@linux-node1 ~]</code><code># netstat -lntup</code>
<code>Active Internet connections (only servers)</code>
<code>Proto Recv-Q Send-Q Local Address Foreign Address State PID</code><code>/Program</code> <code>name </code>
<code>tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 922</code><code>/sshd</code>
<code>tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1580</code><code>/master</code>
<code>tcp 0 0 127.0.0.1:25151 0.0.0.0:* LISTEN 2820</code><code>/python2</code>
<code>tcp6 0 0 :::80 :::* LISTEN 2792</code><code>/httpd</code>
<code>tcp6 0 0 :::22 :::* LISTEN 922</code><code>/sshd</code>
<code>tcp6 0 0 ::1:25 :::* LISTEN 1580</code><code>/master</code>
5.執行cobbler check檢查需要配置的cobbler子產品
<code>[root@linux-node1 ~]</code><code># cobbler check </code>
<code>The following are potential configuration items that you may want to fix:</code>
<code>1 : The </code><code>'server'</code> <code>field </code><code>in</code> <code>/etc/cobbler/settings</code> <code>must be </code><code>set</code> <code>to something other than localhost, or kickstarting features will not work. This should be a resolvable </code><code>hostname</code> <code>or IP </code><code>for</code> <code>the boot server as reachable by all machines that will use it.</code>
<code>2 : For PXE to be functional, the </code><code>'next_server'</code> <code>field </code><code>in</code> <code>/etc/cobbler/settings</code> <code>must be </code><code>set</code> <code>to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.</code>
<code>3 : change </code><code>'disable'</code> <code>to </code><code>'no'</code> <code>in</code> <code>/etc/xinetd</code><code>.d</code><code>/tftp</code>
<code>4 : some network boot-loaders are missing from </code><code>/var/lib/cobbler/loaders</code><code>, you may run </code><code>'cobbler get-loaders'</code> <code>to download them, or, </code><code>if</code> <code>you only want to handle x86</code><code>/x86_64</code> <code>netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely. Files </code><code>in</code> <code>this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The </code><code>'cobbler get-loaders'</code> <code>command</code> <code>is the easiest way to resolve these requirements.</code>
<code>5 : </code><code>enable</code> <code>and start rsyncd.service with systemctl</code>
<code>6 : debmirror package is not installed, it will be required to manage debian deployments and repositories</code>
<code>7 : ksvalidator was not found, </code><code>install</code> <code>pykickstart</code>
<code>8 : The default password used by the sample templates </code><code>for</code> <code>newly installed machines (default_password_crypted </code><code>in</code> <code>/etc/cobbler/settings</code><code>) is still </code><code>set</code> <code>to </code><code>'cobbler'</code> <code>and should be changed, try: </code><code>"openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'"</code> <code>to generate new one</code>
<code>9 : fencing tools were not found, and are required to use the (optional) power management features. </code><code>install</code> <code>cman or fence-agents to use them</code>
<code>Restart cobblerd and </code><code>then</code> <code>run </code><code>'cobbler sync'</code> <code>to apply changes.</code>
5.1 修改1和2
<code>[root@linux-node1 ~]</code><code># grep "192.168.56.13" /etc/cobbler/settings</code>
<code>next_server: 192.168.56.13</code>
<code>server: 192.168.56.13</code>
5.2修改3
<code>[root@linux-node1 ~]</code><code># grep "disable" /etc/xinetd.d/tftp</code>
<code> </code><code>disable = no</code>
5.3修改4
<code>[root@linux-node1 ~]</code><code># cobbler get-loaders</code>
<code>task started: 2017-02-20_033851_get_loaders</code>
<code>task started (</code><code>id</code><code>=Download Bootloader Content, </code><code>time</code><code>=Mon Feb 20 03:38:51 2017)</code>
<code>downloading https:</code><code>//cobbler</code><code>.github.io</code><code>/loaders/README</code> <code>to </code><code>/var/lib/cobbler/loaders/README</code>
<code>downloading https:</code><code>//cobbler</code><code>.github.io</code><code>/loaders/COPYING</code><code>.elilo to </code><code>/var/lib/cobbler/loaders/COPYING</code><code>.elilo</code>
<code>downloading https:</code><code>//cobbler</code><code>.github.io</code><code>/loaders/COPYING</code><code>.yaboot to </code><code>/var/lib/cobbler/loaders/COPYING</code><code>.yaboot</code>
<code>downloading https:</code><code>//cobbler</code><code>.github.io</code><code>/loaders/COPYING</code><code>.syslinux to </code><code>/var/lib/cobbler/loaders/COPYING</code><code>.syslinux</code>
<code>downloading https:</code><code>//cobbler</code><code>.github.io</code><code>/loaders/elilo-3</code><code>.8-ia64.efi to </code><code>/var/lib/cobbler/loaders/elilo-ia64</code><code>.efi</code>
<code>downloading https:</code><code>//cobbler</code><code>.github.io</code><code>/loaders/yaboot-1</code><code>.3.17 to </code><code>/var/lib/cobbler/loaders/yaboot</code>
<code>downloading https:</code><code>//cobbler</code><code>.github.io</code><code>/loaders/pxelinux</code><code>.0-3.86 to </code><code>/var/lib/cobbler/loaders/pxelinux</code><code>.0</code>
<code>downloading https:</code><code>//cobbler</code><code>.github.io</code><code>/loaders/menu</code><code>.c32-3.86 to </code><code>/var/lib/cobbler/loaders/menu</code><code>.c32</code>
<code>downloading https:</code><code>//cobbler</code><code>.github.io</code><code>/loaders/grub-0</code><code>.97-x86.efi to </code><code>/var/lib/cobbler/loaders/grub-x86</code><code>.efi</code>
<code>downloading https:</code><code>//cobbler</code><code>.github.io</code><code>/loaders/grub-0</code><code>.97-x86_64.efi to </code><code>/var/lib/cobbler/loaders/grub-x86_64</code><code>.efi</code>
<code>*** TASK COMPLETE ***</code>
5.4修改5
<code>[root@linux-node1 ~]</code><code># systemctl start rsyncd</code>
<code>[root@linux-node1 ~]</code><code># systemctl enable rsyncd</code>
<code>Created </code><code>symlink</code> <code>from </code><code>/etc/systemd/system/multi-user</code><code>.target.wants</code><code>/rsyncd</code><code>.service to </code><code>/usr/lib/systemd/system/rsyncd</code><code>.service.</code>
<code>[root@linux-node1 ~]</code><code># netstat -lntup </code>
<code>tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2874</code><code>/rsync</code>
<code>tcp6 0 0 :::873 :::* LISTEN 2874</code><code>/rsync</code>
5.5 修改7 ,6不用管
<code>[root@linux-node1 ~]</code><code># yum -y install install pykickstart</code>
5.6 修改客戶機的密碼
<code>[root@linux-node1 ~]</code><code># openssl passwd -1 -salt '123123' '123123'</code>
<code>$1$123123$MAV.kVI</code><code>/b3swmFLErPD2b0</code>
<code>[root@linux-node1 ~]</code><code># vim /etc/cobbler/settings </code>
<code>[root@linux-node1 ~]</code><code># grep "default_password_crypted" /etc/cobbler/settings</code>
<code>default_password_crypted: </code><code>"$1$123123$MAV.kVI/b3swmFLErPD2b0"</code>
5.7 修改9
[root@linux-node1 ~]# yum -y install cman fence-agents
5.8校驗
<code>出現如下狀況就可以了</code>
<code>[root@linux-node1 ~]</code><code># systemctl restart cobblerd</code>
<code>1 : debmirror package is not installed, it will be required to manage debian deployments and repositories</code>
6 讓cobbler管理dhcp
20
21
22
23
24
25
26
27
28
29
30
31
<code>[root@linux-node1 ~]</code><code># grep "manage_dhcp" /etc/cobbler/settings</code>
<code>manage_dhcp: 1</code>
<code># if using cobbler with manage_dhcp, put the IP address</code>
<code># Note that if manage_dhcp and manage_dns are disabled, the respective</code>
<code>[root@linux-node1 ~]</code><code># vim /etc/cobbler/dhcp.template</code>
<code>subnet 192.168.56.0 netmask 255.255.255.0 {</code>
<code> </code><code>option routers 192.168.56.2;</code>
<code> </code><code>option domain-name-servers 192.168.56.2;</code>
<code> </code><code>option subnet-mask 255.255.255.0;</code>
<code> </code><code>range dynamic-bootp 192.168.56.100 192.168.56.254;</code>
<code> </code><code>default-lease-</code><code>time</code> <code>21600;</code>
<code> </code><code>max-lease-</code><code>time</code> <code>43200;</code>
<code> </code><code>next-server $next_server;</code>
<code> </code><code>class </code><code>"pxeclients"</code> <code>{</code>
<code> </code><code>match </code><code>if</code> <code>substring (option vendor-class-identifier, 0, 9) = </code><code>"PXEClient"</code><code>;</code>
<code> </code><code>if</code> <code>option pxe-system-</code><code>type</code> <code>= 00:02 {</code>
<code> </code><code>filename </code><code>"ia64/elilo.efi"</code><code>;</code>
<code> </code><code>} </code><code>else</code> <code>if</code> <code>option pxe-system-</code><code>type</code> <code>= 00:06 {</code>
<code> </code><code>filename </code><code>"grub/grub-x86.efi"</code><code>;</code>
<code> </code><code>} </code><code>else</code> <code>if</code> <code>option pxe-system-</code><code>type</code> <code>= 00:07 {</code>
<code> </code><code>filename </code><code>"grub/grub-x86_64.efi"</code><code>;</code>
<code> </code><code>} </code><code>else</code> <code>{</code>
<code> </code><code>filename </code><code>"pxelinux.0"</code><code>;</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code>}</code>
<code>[root@linux-node1 ~]</code><code># systemctl restart cobblerd</code>
7.讓配置檔案生效
32
33
34
35
36
37
38
<code>[root@linux-node1 ~]</code><code># cobbler sync </code>
<code>task started: 2017-02-20_041326_sync</code>
<code>task started (</code><code>id</code><code>=Sync, </code><code>time</code><code>=Mon Feb 20 04:13:26 2017)</code>
<code>running pre-</code><code>sync</code> <code>triggers</code>
<code>cleaning trees</code>
<code>removing: </code><code>/var/lib/tftpboot/grub/images</code>
<code>copying bootloaders</code>
<code>trying hardlink </code><code>/var/lib/cobbler/loaders/pxelinux</code><code>.0 -> </code><code>/var/lib/tftpboot/pxelinux</code><code>.0</code>
<code>trying hardlink </code><code>/var/lib/cobbler/loaders/menu</code><code>.c32 -> </code><code>/var/lib/tftpboot/menu</code><code>.c32</code>
<code>trying hardlink </code><code>/var/lib/cobbler/loaders/yaboot</code> <code>-> </code><code>/var/lib/tftpboot/yaboot</code>
<code>trying hardlink </code><code>/usr/share/syslinux/memdisk</code> <code>-> </code><code>/var/lib/tftpboot/memdisk</code>
<code>trying hardlink </code><code>/var/lib/cobbler/loaders/grub-x86</code><code>.efi -> </code><code>/var/lib/tftpboot/grub/grub-x86</code><code>.efi</code>
<code>trying hardlink </code><code>/var/lib/cobbler/loaders/grub-x86_64</code><code>.efi -> </code><code>/var/lib/tftpboot/grub/grub-x86_64</code><code>.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 </code><code>/etc/dhcp/dhcpd</code><code>.conf</code>
<code>rendering TFTPD files</code>
<code>generating </code><code>/etc/xinetd</code><code>.d</code><code>/tftp</code>
<code>cleaning link caches</code>
<code>running post-</code><code>sync</code> <code>triggers</code>
<code>running python triggers from </code><code>/var/lib/cobbler/triggers/sync/post/</code><code>*</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 stderr: Redirecting to </code><code>/bin/systemctl</code> <code>restart dhcpd.service</code>
<code>running shell triggers from </code><code>/var/lib/cobbler/triggers/sync/post/</code><code>*</code>
<code>running python triggers from </code><code>/var/lib/cobbler/triggers/change/</code><code>*</code>
<code>running python trigger cobbler.modules.scm_track</code>
<code>running shell triggers from </code><code>/var/lib/cobbler/triggers/change/</code><code>*</code>
8.上傳鏡像
<code>[root@linux-node1 opt]</code><code># ll</code>
<code>total 4228096</code>
<code>-rw-r--r-- 1 root root 4329570304 Feb 20 04:20 CentOS-7-x86_64-DVD-1511.iso</code>
<code>[root@linux-node1 opt]</code><code># mount -o loop /opt/CentOS-7-x86_64-DVD-1511.iso /mnt </code>
<code>mount</code><code>: </code><code>/dev/loop0</code> <code>is write-protected, mounting </code><code>read</code><code>-only</code>
<code>[root@linux-node1 opt]</code><code># </code>
<code>導入鏡像</code>
<code>[root@linux-node1 opt]</code><code># cobbler import --path=/mnt --name=CentOS-7.2-x86_64 --arch=x86_64</code>
<code>task started: 2017-02-20_042242_import</code>
<code>task started (</code><code>id</code><code>=Media </code><code>import</code><code>, </code><code>time</code><code>=Mon Feb 20 04:22:42 2017)</code>
<code>。。。。。 此處比較慢</code>
<code>鏡像導入這一步其實是,複制鏡像的過程</code>
<code>[root@linux-node1 mnt]</code><code># cd /var/www/cobbler/ks_mirror</code>
<code>[root@linux-node1 ks_mirror]</code><code># ls</code>
<code>CentOS-7.2-x86_64 config</code>
<code>[root@linux-node1 ks_mirror]</code><code>#</code>
9檢查校驗
<code>[root@linux-node1 ks_mirror]</code><code># cobbler list </code>
<code>distros:</code>
<code> </code><code>CentOS-7.2-x86_64</code>
<code>profiles:</code>
<code>systems:</code>
<code>repos:</code>
<code>images:</code>
<code>mgmtclasses:</code>
<code>packages:</code>
<code>files:</code>
10上傳配置檔案
<code>[root@linux-node1 kickstarts]</code><code># ll</code>
<code>total 56</code>
<code>-rw-r--r-- 1 root root 1355 Feb 18 15:39 CentOS-7-x86_64.cfg </code><code>#這個配置檔案</code>
<code>-rw-r--r-- 1 root root 115 Nov 17 03:09 default.ks</code>
<code>-rw-r--r-- 1 root root 22 Nov 17 03:09 esxi4-ks.cfg</code>
<code>-rw-r--r-- 1 root root 22 Nov 17 03:09 esxi5-ks.cfg</code>
<code>drwxr-xr-x 2 root root 54 Feb 20 03:29 install_profiles</code>
<code>-rw-r--r-- 1 root root 1424 Nov 17 03:09 legacy.ks</code>
<code>-rw-r--r-- 1 root root 292 Nov 17 03:09 pxerescue.ks</code>
<code>-rw-r--r-- 1 root root 2916 Nov 17 03:09 sample_autoyast.xml</code>
<code>-rw-r--r-- 1 root root 1825 Nov 17 03:09 sample_end.ks</code>
<code>-rw-r--r-- 1 root root 0 Nov 17 03:09 sample_esx4.ks</code>
<code>-rw-r--r-- 1 root root 324 Nov 17 03:09 sample_esxi4.ks</code>
<code>-rw-r--r-- 1 root root 386 Nov 17 03:09 sample_esxi5.ks</code>
<code>-rw-r--r-- 1 root root 1784 Nov 17 03:09 sample.ks</code>
<code>-rw-r--r-- 1 root root 3419 Nov 17 03:09 sample_old.seed</code>
<code>-rw-r--r-- 1 root root 5879 Nov 17 03:09 sample.seed</code>
<code>[root@linux-node1 kickstarts]</code><code># pwd</code>
<code>/var/lib/cobbler/kickstarts</code> <code>#目錄</code>
<code>[root@linux-node1 kickstarts]</code><code>#</code>
11.檢視profile
<code>[root@linux-node1 kickstarts]</code><code># cobbler profile list</code>
12. 檢視參數
<code>[root@linux-node1 kickstarts]</code><code># cobbler profile report </code>
<code>Name : CentOS-7.2-x86_64</code>
<code>TFTP Boot Files : {}</code>
<code>Comment : </code>
<code>DHCP Tag : default</code>
<code>Distribution : CentOS-7.2-x86_64</code>
<code>Enable gPXE? : 0</code>
<code>Enable PXE Menu? : 1</code>
<code>Fetchable Files : {}</code>
<code>Kernel Options : {}</code>
<code>Kernel Options (Post Install) : {}</code>
<code>Kickstart : </code><code>/var/lib/cobbler/kickstarts/sample_end</code><code>.ks</code>
<code>Kickstart Metadata : {}</code>
<code>Management Classes : []</code>
<code>Management Parameters : <<inherit>></code>
<code>Name Servers : []</code>
<code>Name Servers Search Path : []</code>
<code>Owners : [</code><code>'admin'</code><code>]</code>
<code>Parent Profile : </code>
<code>Internal proxy : </code>
<code>Red Hat Management Key : <<inherit>></code>
<code>Red Hat Management Server : <<inherit>></code>
<code>Repos : []</code>
<code>Server Override : <<inherit>></code>
<code>Template Files : {}</code>
<code>Virt Auto Boot : 1</code>
<code>Virt Bridge : xenbr0</code>
<code>Virt CPUs : 1</code>
<code>Virt Disk Driver Type : raw</code>
<code>Virt File Size(GB) : 5</code>
<code>Virt Path : </code>
<code>Virt RAM (MB) : 512</code>
<code>Virt Type : kvm</code>
13.修改核心參數
<code>[root@linux-node1 kickstarts]</code><code># cobbler profile edit --name=CentOS-7.2-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg </code>
<code>[root@linux-node1 kickstarts]</code><code># cobbler profile edit --name=CentOS-7.2-x86_64 --kopts='net.ifnames=0 biosdevname=0'</code>
<code>Kernel Options : {</code><code>'biosdevname'</code><code>: </code><code>'0'</code><code>, </code><code>'net.ifnames'</code><code>: </code><code>'0'</code><code>}</code>
<code>Kickstart : </code><code>/var/lib/cobbler/kickstarts/CentOS-7-x86_64</code><code>.cfg</code>
<code>Virt Path :</code>
14 啟動xinetd
<code>[root@linux-node1 kickstarts]</code><code># yum -y install xinetd </code>
<code>[root@linux-node1 kickstarts]</code><code># systemctl start xinetd</code>
<code>[root@linux-node1 kickstarts]</code><code># systemctl enable xinetd</code>
15.配置檔案接着生成
<code>[root@linux-node1 kickstarts]</code><code># cobbler sync</code>
16.建立一台虛拟機(非克隆機) 關掉本地的dhcp服務
可以看出自動安裝了
完畢安裝
17.cobbler的web界面管理
<code>yum -y </code><code>install</code> <code>cobbler-web</code>
<code>htdigest </code><code>/etc/cobbler/users</code><code>.digest </code><code>"Cobbler"</code> <code>cobbler </code><code>#讓輸入密碼 給cobbler密碼</code>
<code>systemctl restart httpd</code>
<a href="https://s4.51cto.com/wyfs02/M01/8D/C0/wKiom1ipmR7gufUfAACJs8sQpdI667.png-wh_500x0-wm_3-wmp_4-s_908865701.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/8D/C0/wKiom1ipmR-wdzoIAABo-e75ALk779.png-wh_500x0-wm_3-wmp_4-s_1301431131.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/8D/BD/wKioL1ipmSPSdVnlAADxI59Ee54041.png-wh_500x0-wm_3-wmp_4-s_346872822.png" target="_blank"></a>
18.對特定伺服器的mac位址配置設定特定的IP
<a href="https://s3.51cto.com/wyfs02/M02/8D/BD/wKioL1ipni_BR2e2AADk_jHD2_c498.png-wh_500x0-wm_3-wmp_4-s_3489028662.png" target="_blank"></a>
<code>[root@linux-node1 kickstarts]</code><code># cobbler system add --name=linux-node2 --mac=00:50:56:39:A9:37 --profile=CentOS-7.2-x86_64 --ip-address=192.168.56.112 --subnet=255.255.255.0 --gateway=192.168.56.2 --interface=eth0 --static=1 --hostname=linux-node2.com --name-servers="192.168.56.2" --kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg </code>
<code>[root@linux-node1 kickstarts]</code><code># cobbler system list </code>
<code> </code><code>linux-node2</code>
再次啟動剛所對應mac的伺服器
<a href="https://s1.51cto.com/wyfs02/M01/8D/BD/wKioL1ipoNmizPKmAABN2UwDKUM545.png-wh_500x0-wm_3-wmp_4-s_3893992992.png" target="_blank"></a>
本文轉自 小小三郎1 51CTO部落格,原文連結:http://blog.51cto.com/wsxxsl/1899308,如需轉載請自行聯系原作者