天天看點

cobbler 無人值守安裝

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 -&gt; </code><code>/var/lib/tftpboot/pxelinux</code><code>.0</code>

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

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

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

<code>trying hardlink </code><code>/var/lib/cobbler/loaders/grub-x86</code><code>.efi -&gt; </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 -&gt; </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          : &lt;&lt;inherit&gt;&gt;</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         : &lt;&lt;inherit&gt;&gt;</code>

<code>Red Hat Management Server      : &lt;&lt;inherit&gt;&gt;</code>

<code>Repos                          : []</code>

<code>Server Override                : &lt;&lt;inherit&gt;&gt;</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,如需轉載請自行聯系原作者

繼續閱讀