使用cobbler批量安裝操做系統(基於Centos7.x)

1.1 cobbler簡介

  Cobbler是一個Linux服務器安裝的服務,能夠經過網絡啓動(PXE)的方式來快速安裝、重裝物理服務器和虛擬機,同時還能夠管理DHCP,DNS等。html

  Cobbler可使用命令行方式管理,也提供了基於Web的界面管理工具(cobbler-web),還提供了API接口,能夠方便二次開發使用。node

  Cobbler是較早前的kickstart的升級版,優勢是比較容易配置,還自帶web界面比較易於管理。python

  Cobbler內置了一個輕量級配置管理系統,但它也支持和其它配置管理系統集成,如Puppet,暫時不支持SaltStack。linux

  Cobbler官網http://cobbler.github.ioios

  在使用cobbler以前須要瞭解kickstart的使用: http://www.cnblogs.com/clsn/p/7833333.htmlgit

1.1.1 cobbler集成的服務

    PXE服務支持github

    DHCP服務管理web

    DNS服務管理(可選bind,dnsmasq)django

    電源管理vim

    Kickstart服務支持

    YUM倉庫管理

    TFTP(PXE啓動時須要)

    Apache(提供kickstart的安裝源,並提供定製化的kickstart配置)

1.2 安裝cobbler

1.2.1 環境說明

複製代碼
[root@Cobbler ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@Cobbler ~]# uname -r 3.10.0-693.el7.x86_64 [root@Cobbler ~]# getenforce Disabled [root@Cobbler ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@Cobbler ~]# hostname -I 10.0.0.202 172.16.1.202
複製代碼

yum源說明:

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

1.2.2 使用yum安裝cobbler

yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd xinetd

   說明:cobbler是依賴與epel源下載

1.2.3 cobbler語法檢查前先啓動http與cobbler

systemctl start httpd.service
systemctl start cobblerd.service
cobbler check

1.2.4 進行語法檢查

複製代碼
[root@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 : change 'disable' to 'no' in /etc/xinetd.d/tftp 4 : 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. 5 : enable and start rsyncd.service with systemctl 6 : debmirror package is not installed, it will be required to manage debian deployments and repositories 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.2.5 解決當中的報錯

命令集

複製代碼
sed -i 's/server: 127.0.0.1/server: 172.16.1.202/' /etc/cobbler/settings sed -i 's/next_server: 127.0.0.1/next_server: 172.16.1.202/' /etc/cobbler/settings sed -i 's/manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings sed -ri "/default_password_crypted/s#(.*: ).*#\1\"`openssl passwd -1 -salt 'oldboy' '123456'`\"#" /etc/cobbler/settings sed -i 's#yes#no#' /etc/xinetd.d/tftp systemctl start rsyncd systemctl enable rsyncd systemctl enable tftp.socket systemctl start tftp.socket systemctl restart cobblerd.service sed -i.ori 's#192.168.1#172.16.1#g;22d;23d' /etc/cobbler/dhcp.template cobbler sync
複製代碼

詳解

解決1、2

cp /etc/cobbler/settings{,.ori}
sed -i 's/server: 127.0.0.1/server: 172.16.1.202/' /etc/cobbler/settings sed -i 's/next_server: 127.0.0.1/next_server: 172.16.1.202/' /etc/cobbler/settings

問題3

sed 's#yes#no#g' /etc/xinetd.d/tftp -i

4下載包所需的軟件包

[root@Cobbler ~]# cobbler get-loaders [root@Cobbler ~]# ls /var/lib/cobbler/loaders COPYING.elilo elilo-ia64.efi menu.c32 yaboot COPYING.syslinux grub-x86_64.efi pxelinux.0 COPYING.yaboot grub-x86.efi README

5啓動rsync服務

[root@Cobbler ~]# systemctl start rsyncd.service [root@Cobbler ~]# systemctl enable rsyncd.service

6 debian相關無需修改

7、修改安裝完成後的root密碼

openssl passwd -1 -salt 'random-phrase-here' 'your-password-here' random-phrase-here 隨機字符串 your-password-here 密碼

示例

[root@Cobbler ~]# openssl passwd -1 -salt 'CLSN' '123456' $1$CLSN$LpJk4x1cplibx3q/O4O/K/

管理dhcp

sed -i 's/manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings

防止重裝

sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings

修改dhcp模板

複製代碼

[root@cobbler-node1~]# sed -i 's#manage_dhcp: 0#manage_dhcp: 1#g' /etc/cobbler/settings #使用cobbler管理dhcp

[root@cobbler-node1~]# vim /etc/cobbler/dhcp.template #修改cobbler的dhcp模版,由於cobbler會替換。

subnet 172.16.1.0 netmask 255.255.255.0 {

     option routers             172.16.1.2;

     option domain-name-servers 172.16.1.2;

     option subnet-mask         255.255.255.0;

     range dynamic-bootp        172.16.1.200 172.16.1.250;

     default-lease-time         21600;

     max-lease-time             43200;

     next-server                $next_server;

複製代碼

cobbler組配置文件位置

/etc/cobbler/settings

注意:修改完成以後要使用cobbler sync 進行同步,不然不生效。

1.2.6 修改以後

再次檢查語法:

複製代碼
[root@Cobbler ~]# cobbler check The following are potential configuration items that you may want to fix: 1 : debmirror package is not installed, it will be required to manage debian deployments and repositories 2 : 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.
複製代碼

重啓全部服務

systemctl restart httpd.service
systemctl restart cobblerd.service
systemctl restart dhcpd.service
systemctl restart rsyncd.service
systemctl restart tftp.socket

到此cobbler就安裝完成,下面進行web界面的操做。

1.3 cobbler的web及界面操做

瀏覽器訪問https://10.0.0.202/cobbler_web

   注意CentOS7中cobbler只支持https訪問。

1.3.1 瀏覽器報500錯誤的解決方法

  

複製代碼
[root@localhost /]# rpm -qa | grep "python2-django" python2-django-1.11.13-4.el7.noarch 這個包只要在1.8以上,就有問題 TEMPLATE_CONTEXT_PROCESSORS was deprecated in Django 1.8 and removed in Django 1.10. It's not possible to import it anymore.  解決方法 一、rpm -e --nodeps python2-django 二、yum install python2-pip 三、pip install --upgrade pip 四、pip install Django==1.8.17
複製代碼

 

   帳號密碼默認均爲cobbler

 

1.3.1 操做說明--導入鏡像

1)在虛擬機上添加上鏡像

 

2)掛載上鏡像

[root@Cobbler ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 is write-protected, mounting read-only [root@Cobbler ~]# df -h |grep mnt /dev/sr0 4.3G 4.3G 0 100% /mnt

   3)進行導入鏡像

 方式一:

   選擇Import DVD  輸入Prefix(文件前綴),Arch(版本),Breed(品牌),Path(要從什麼地方導入)

   在導入鏡像的時候要注意路徑,防止循環導入。

   信息配置好後,點擊run,便可進行導入。

 

導入過程使用rsync進行導入,三個進程消失表示導入完畢

[root@Cobbler mnt]# ps -ef |grep rsync root 12026 1 0 19:04 ? 00:00:00 /usr/bin/rsync --daemon --no-detach root 13554 11778 12 19:51 ? 00:00:06 rsync -a /mnt/ /var/www/cobbler/ks_mirror/CentOS7.4-x86_64 --progress root 13555 13554 0 19:51 ? 00:00:00 rsync -a /mnt/ /var/www/cobbler/ks_mirror/CentOS7.4-x86_64 --progress root 13556 13555 33 19:51 ? 00:00:17 rsync -a /mnt/ /var/www/cobbler/ks_mirror/CentOS7.4-x86_64 --progress root 13590 10759 0 19:52 pts/1 00:00:00 grep --color=auto rsync

查看日誌能夠發現右running進程

      日誌位於 Events

 

方式二:  

  1. cobbler import --path=/mnt/ --name=CentOS-7.1-x86_64 --arch=x86_64
  2. # --path 鏡像路徑
  3. # --name 爲安裝源定義一個名字
  4. # --arch 指定安裝源是32位、64位、ia64, 目前支持的選項有: x86│x86_64│ia64
  5. # 安裝源的惟一標示就是根據name參數來定義,本例導入成功後,安裝源的惟一標示就是:CentOS-7.1-x86_64,若是重複,系統會提示導入失敗。

導入完成後生成的文件夾

[root@Cobbler ks_mirror]# pwd /var/www/cobbler/ks_mirror [root@Cobbler ks_mirror]# ls CentOS7.4-x86_64 config

cd /var/lib/cobbler/kickstarts/

CentOS-6.8-x86_64文件

  View Code

CentOS-7-x86_64.cfg文件

  View Code

cobbler profile edit --name=CentOS-7.1-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg 

cobbler profile edit --name=CentOS-6.8-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6-x86_64.cfg

# 修改安裝系統的內核參數,在CentOS7系統有一個地方變了,就是網卡名變成eno16777736這種形式,可是爲了運維標準化,咱們須要將它變成咱們經常使用的eth0,所以使用下面的參數。但要注意是CentOS7才須要下面的步驟,CentOS6不須要。

[root@linux-node1 ~]# cobbler profile edit --name=CentOS-7.1-x86_64 --kopts='net.ifnames=0 biosdevname=0'

# 查看安裝鏡像文件信息

[root@linux-node1 ~]# cobbler distro report --name=CentOS-7.1-x86_64

# 查看全部的profile設置

[root@linux-node1 ~]# cobbler profile report

# 查看指定的profile設置

[root@linux-node1 ~]# cobbler profile report --name=CentOS-7.1-x86_64

cobbler sync   每次修改profile都須要同步

 

1.3.2 建立一臺空白虛擬機,進行測試網路安裝

注意:虛擬機的內存不能小於2G,網卡的配置要保證網絡互通

啓動虛擬機

   啓動虛擬機便可發現會有cobbler的選擇界面

選擇CentOS7.4便可進行安裝,安裝過程與光盤安裝一致,這裏就不在複述。

1.4 定製化安裝操做系統

1.4.1 添加內核參數

1)查看導入的鏡像,點擊edit

 

2)在內核參數中添加net.ifnames=0 biosdevname=0

   可以讓顯示的網卡變爲eth0 ,而不是CentOS7中的ens33

   修改完成後點擊保存

1.4.2 查看鏡像屬性

 

1.4.3 編寫ks文件

1)建立新的ks文件

 

2)添加ks文件,並配置文件名

      建立完成後點擊Save進行保存

CentOS7  ks配置文件參考

  View Code  ks文件內容(centos7.x)

1.4.4 自定義安裝系統

1)選擇systems 建立一個新的系統

2)定義系統信息

3)配置全局網絡信息

      主機名、網關、DNS

4)配置網卡信息,eth0,eth1

   須要注意,選擇static靜態,

 

   以上的全部配置完成後,點擊Save進行保存

附錄:

   VMware workstation中查看虛擬機mac地址的方法。在虛擬機設置中。

 

 cobbler web 界面說明

1.5 安裝虛擬機

1.5.1 開啓虛擬機

若是以前的設置就顯示安裝進度

 

1.5.2 安裝完成進行檢查

1.6 cobbler使用常見錯誤

1.6.1 cobbler check報錯

複製代碼
[root@Cobbler ~]# cobbler sync Traceback (most recent call last): File "/usr/bin/cobbler", line 36, in <module> sys.exit(app.main()) File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 662, in main rc = cli.run(sys.argv) File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 269, in run self.token = self.remote.login("", self.shared_secret) File "/usr/lib64/python2.7/xmlrpclib.py", line 1233, in __call__ return self.__send(self.__name, args) File "/usr/lib64/python2.7/xmlrpclib.py", line 1587, in __request verbose=self.__verbose File "/usr/lib64/python2.7/xmlrpclib.py", line 1273, in request return self.single_request(host, handler, request_body, verbose) File "/usr/lib64/python2.7/xmlrpclib.py", line 1306, in single_request return self.parse_response(response) File "/usr/lib64/python2.7/xmlrpclib.py", line 1482, in parse_response return u.close() File "/usr/lib64/python2.7/xmlrpclib.py", line 794, in close raise Fault(**self._stack[0]) xmlrpclib.Fault: <Fault 1: "<class 'cobbler.cexceptions.CX'>:'login failed'">
複製代碼

解決辦法

systemctl restart httpd.service
systemctl restart cobblerd.service
cobbler check

1.6.2 No space left on device

 

   出現這個錯誤的緣由是虛擬機的內存不足2G,

   將內存調爲2G便可(這個錯誤只會出如今CentOS7.3之上)

1.7 附錄cobbler_CentOS6.x_ks配置文件

  View ks文件參考  centos6.x

1.8自定義登錄界面

有時候須要給我的打廣告,能夠經過這種方式

[root@cobbler-node1 ~]# grep "xuliangwei" /etc/cobbler/pxe/pxedefault.template #自定義裝機頁面

MENU TITLE Xuliangwei | http://xuliangwei.com

[root@cobbler-node1 ~]# cobbler sync #同步


 

1.8 cobbler koan自動重裝系統

介紹
koan是kickstart-over-a-network的縮寫,它是cobbler的客戶端幫助程序,koan容許你經過網絡提供虛擬機,也容許你重裝已經存在的客戶端。當運行時,koan會從遠端的cobbler server獲取安裝信息,而後根據獲取的安裝信息進行安裝。
一、在客戶端安裝koan
[root@localhost ~]# yum install -y koan
二、執行安裝命令
[root@localhost ~]# koan --server=192.168.56.133 --list=profiles
- looking for Cobbler at http://192.168.56.133:80/cobbler_api
centos-7-x86_64
三、
在指定要重裝的系統上執行要重裝的哪一個系統
[root@localhost ~]# koan --replace-self --server=192.168.56.133 --profile=centos-7-x86_64
- looking for Cobbler at http://192.168.56.130:80/cobbler_api
- reading URL: http://192.168.56.130/cblr/svc/op/ks/profile/CentOS-7-x86_64
install_tree: http://192.168.56.130/cblr/links/CentOS-7-x86_64
downloading initrd initrd.img to /boot/initrd.img_koan
url=http://192.168.56.130/cobbler/images/CentOS-7-x86_64/initrd.img
- reading URL: http://192.168.56.130/cobbler/images/CentOS-7-x86_64/initrd.img
downloading kernel vmlinuz to /boot/vmlinuz_koan
url=http://192.168.56.130/cobbler/images/CentOS-7-x86_64/vmlinuz
- reading URL: http://192.168.56.130/cobbler/images/CentOS-7-x86_64/vmlinuz
- ['/sbin/grubby', '--add-kernel', '/boot/vmlinuz_koan', '--initrd', '/boot/initrd.img_koan', '--args', '"ksdevice=link lang= text net.ifnames=0 ks=http://192.168.56.130/cblr/svc/op/ks/profile/CentOS-7-x86_64 biosdevname=0 kssendmac "', '--copy-default', '--make-default', '--title=kick1489851371']
- ['/sbin/grubby', '--update-kernel', '/boot/vmlinuz_koan', '--remove-args=root']
- reboot to apply changes
四、而後重啓就會自動安裝新系統了

修改安裝引導界面提示符(小技巧)
[root@localhost ~]# vim /etc/cobbler/pxe/pxedefault.template

1.9 自定義yum源

複製代碼
1.添加yum源
cobbler repo add --name=openstack-mitaka --mirror=https://mirrors.aliyun.com/centos-vault/7.2.1511/cloud/Source/openstack-mitaka/ --arch=x86_64 --breed=yum

2.同步repo

cobbler reposync

3.添加repo到對應的profile

cobbler profile edit --name=Centos-7-x86_64 --repo=https://mirrors.aliyun.com/centos-vault/7.2.1511/cloud/Source/openstack-mitaka/

4.修改kickstart文件,添加這些到%post %end之間
%post
systemctl disable postfix.service
$yum_config_stanza
%end
5.添加定時任務,按期同步repo
echo '1 3 * * * /usr/bin/cobbler reposync --tries=3 --no--fail' >> /var/spool/cron/root
複製代碼

 

1.10參考文檔

  http://blog.oldboyedu.com/autoinstall-cobbler/

  http://www.zyops.com/autoinstall-cobbler

  https://www.xuliangwei.com

相關文章
相關標籤/搜索