PXE服務支持python
DHCP服務管理linux
DNS服務管理(可選bind,dnsmasq)ios
電源管理web
Kickstart服務支持vim
YUM倉庫管理瀏覽器
TFTP(PXE啓動時須要)bash
Apache(提供kickstart的安裝源,並提供定製化的kickstart配置)服務器
[root@Cobbler ~]# cat /etc/redhat-release微信
CentOS Linux release 7.2.1511 (Core)網絡
[root@Cobbler ~]# uname -r
3.10.0-693.el7.x86_64
[root@Cobbler ~]# getenforceDisabled
[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
yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd
說明:cobbler是依賴與epel源下載
systemctl start httpd.service
systemctl start cobblerd.service
cobbler check
[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.
命令集合
########################################################################################################
sed -i 's/server: 127.0.0.1/server: 172.16.1.63/' /etc/cobbler/settings
sed -i 's/next_server: 127.0.0.1/next_server: 172.16.1.63/' /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 -i 's#yes#no#' /etc/xinetd.d/tftp
sed -ri "/default_password_crypted/s#(.*: ).*#\1\"`openssl passwd -1 -salt 'asasd' '123456'`\"#" /etc/cobbler/settings
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
#/etc/cobbler/setting中的server配置須要修改,將127.0.0.1修改成cobbler服務器ip
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
#讓xinetd管理thtp服務
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 'sdfsdf' '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模板(切記不可連續執行)
sed -i.ori 's#192.168.1#172.16.1#g;22d;23d' /etc/cobbler/dhcp.template
cobbler組配置文件位置
/etc/cobbler/settings
注意:修改完成以後要使用cobbler sync 進行同步,不然不生效。
再次檢查語法:
[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界面的操做。
瀏覽器訪問https://10.0.0.63/cobbler_web
注意CentOS7中cobbler只支持https訪問。
帳號密碼默認均爲cobbler
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
導入完成後生成的文件夾
[root@Cobbler ks_mirror]# pwd
/var/www/cobbler/ks_mirror
[root@Cobbler ks_mirror]# ls
CentOS7.4-x86_64 config
注意:虛擬機的內存不能小於2G,網卡的配置要保證網絡互通
啓動虛擬機
啓動虛擬機便可發現會有cobbler的選擇界面
選擇CentOS7.4便可進行安裝,安裝過程與光盤安裝一致,這裏就不在複述。
1)查看導入的鏡像,點擊edit
2)在內核參數中添加net.ifnames=0 biosdevname=0
可以讓顯示的網卡變爲eth0 ,而不是CentOS7中的ens33
修改完成後點擊保存
另外一種方法:
1)建立新的ks文件
2)添加ks文件,並配置文件名
建立完成後點擊Save進行保存
CentOS7 ks配置文件參考
# Cobbler for Kickstart Configurator for CentOS 7 by yao zhang
install
url --url=$tree
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS7
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $default_password_crypted
clearpart --all --initlabel
part /boot --fstype xfs --size 1024
part swap --size 1024
part / --fstype xfs --size 1 --grow
firstboot --disable
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
@^minimal
@compat-libraries
@core
@debugging
@development
bash-completion
chrony
dos2unix
kexec-tools
lrzsz
nmap
sysstat
telnet
tree
vim
wget
%end
%post
systemctl disable postfix.service
%end
1)選擇systems 建立一個新的系統
2)定義系統信息
3)配置全局網絡信息
能夠配置主機名、網關、DNS等
我這裏面是雙網卡,因此只配置主機名和DNS
4)配置網卡信息,eth0,eth1
須要注意,選擇static靜態,
以上的全部配置完成後,點擊Save進行保存
附錄:
VMware workstation中查看虛擬機mac地址的方法。在虛擬機設置中。
cobbler web 界面說明
若是以前的設置就顯示安裝進度
[root@Cobbler ~]# cobbler syncTraceback (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
出現這個錯誤的緣由是虛擬機的內存不足2G,
將內存調爲2G便可(這個錯誤只會出如今CentOS7.3之上)
小夥伴們能夠關注個人微信公衆號:linux運維菜鳥之旅
關注「中國電信天津網廳」公衆號,首次綁定可免費領2G流量,爲你的學習提供流量!