PXE(preboot execute environment,預啓動執行環境)是由Intel公司開發的最新技術,工做於Client/Server的網絡模式,支持工做站經過網絡從遠端服務器下載映像,並由此支持經過網絡啓動操做系統,在啓動過程當中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端(客戶端)基本軟件設置,從而引導預先安裝在服務器中的終端操做系統。PXE能夠引導多種操做系統,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系統等。python
二,PXE工做流程linux
三,Cobbler功能ios
四,安裝環境web
虛擬機兩臺,一臺爲Cobbler主機一臺爲測試安裝機ubuntu
虛擬機網絡設置爲(兩臺網絡同樣)windows
主機系統爲CentOS7.4centos
設置固定IP爲192.168.80.130網關爲VM默認網關192.168.80.2api
五,安裝Cobbler服務器
配置yum源網絡
rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
安裝包
yum -y install httpd dhcp tftp cobbler xinetd
關閉防火牆和selinux
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed 's#enforcing#disabled#g' /etc/selinux/config -i
啓動
systemctl start cobblerd systemctl start httpd
啓動cobbler檢查(須要完成如下列出問題才能使用)
cobbler check
1,有個server文件必須設置成本地
2,設置PXE文件去那裏找
3,設置Selinex
4,把配置文件的disable設置爲no
5,網絡啓動的東西設置在這個目錄,經過命令去下載
6,啓動rsync
7,若是使用ubuntu系統須要安裝這個包,這裏不須要安裝
8,須要安裝pykickstart包
9,生成默認的密碼放在文件
10,須要安裝電源管理
運行命令下載一些網絡用的文件
cobbler get-loaders
安裝xinetd
yum -y install xinetd
修改配置文件/etc/cobbler/settings兩個地址設置爲本機地址
server 192.168.80.130 next_server 192.168.80.130
修改完重啓
systemctl restart cobblerd
修改配置文件/etc/xinetd.d/tftp
disable = no
修改完重啓
systemctl restart xinetd
啓動rsync並設置爲自啓動
systemctl start rsyncd systemctl enable rsyncd
安裝pykickstart
yum -y install pykickstart
設置默認密碼 執行命令
openssl passwd -1 -salt 'cobler' 'cobler'
生成一個密碼設置在/etc/cobbler/settings
default_password_crypted: "$1$123123$MAV.kVI/b3swmFLErPD2b0"
重啓cobblerd
檢查(這兩個問題不用處理)
設置cobbler能夠管理dhcp
/etc/cobbler/settings
manage_dhcp: 1
修改dhcp配置文件/etc/cobbler/dhcp.template修改標紅部分,其餘保持默認
重啓cobbler(就把剛剛配置的dhcp覆蓋dhcp配置文件/etc/dhcp/dhcpd.conf)
systemctl restart cobblerd
執行
cobbler sync
導入鏡像
先掛載一個鏡像光盤
mount /dev/cdrom /mnt
導入鏡像
cobbler import --path=/mnt/ --name=Centos-7.2-x86_64 --arch=x86_64
導入的鏡像目錄爲/var/www/cobbler/ks_mirror
查看導入鏡像
cobbler profile list
kickstarts文件在目錄/var/lib/cobbler/kickstarts/裏面
自定義一個kickstarts文件而且綁定在剛剛傳入的鏡像
Centos7.2-x86_64.cfg
這裏設置的root密碼生成命令是
perl -e 'print crypt("123qwe",q($1$password)),"\n"'
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --iscrypted $1$m1pE0DG6$vALBphGGynqvUzfJaWZ6U1 # Use network installation url --url="$tree" # System language lang en_US # Firewall configuration firewall --disabled # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # SELinux configuration selinux --disabled # Network information network --bootproto=dhcp --device=eth0 network --bootproto=dhcp --device=eth1 # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --asprimary --fstype="ext4" --size=200 part swap --fstype="swap" --size=1024 part / --fstype="ext4" --grow --size=1 %packages @base @core @compat-libraries @debugging @development @gnome-desktop @X Window System %end
定義爲剛剛傳入鏡像的初始化文件
cobbler profile edit --name=CentOS-7.2-x86_64 --kickstart=/var/lib/cobbler/kickstarts/Centos7.2-x86_64.cfg
查看
增長內核參數讓網卡變成eth0
cobbler profile edit --name Centos-7.2-x86_64 --kopts='net.ifnames=0 biosdevname=0'
查看
修改配置都須要同步生效
cobbler sync
新建一個虛擬機
啓動就會從dhcp獲取到地址自動安裝
自動安裝完一臺虛擬機以備用
PS:導入CentOS7.4鏡像沒法安裝,緣由不明,就像把7.4製做成U盤同樣沒法安裝系統,有timeout提示
六,cobbler提供的web界面
cobbler還提供一個web頁面
https://192.168.80.130/cobbler_web
PS:必須是https訪問
配置文件問爲/etc/cobbler/users.digest
修改密碼htdigest /etc/cobbler/users.digest "Cobbler" cobbler
默認用戶名和密碼均爲cobbler
若是沒有頁面顯示則安裝
yum -y cobbler-web
安裝完重啓httpd
七,cobbler倉庫
在使用cobbler安裝的虛擬機下面的文件/etc/yum.repos.d/cobbler-config.repo記錄一個yum包的地址
報錯 提示沒法讀取到源主機的文件
源主機其實有這個repo文件
添加庫(不要執行一旦執行會下載好幾百個G的東西)
cobbler repo add --name=CentOS-7-x86_64-epel --mirro=https://mirrors.aliyun.com/epel/7Server/x86_64/ --arch=x86_64 --breed=yum
同步
cobbler reposync
cobbler會自動把鏡像下載到本地而且構建本地倉庫
執行如下的命令同步一個openstack
cobbler repo add --name=openstack-newton --mirror=https://mirrors.aliyun.com/centos/7.4.1708/cloud/x86_64/openstack-newton/ --arch=x86_64 --breed=yum cobbler reposync
放置的目錄是/var/www/cobbler/repo_mirror/openstack-newton
這個目錄有一個config.repo文件要放置在配置文件
在web界面把剛剛的yum源放進去(編輯初始化文檔也能夠)
默認安裝的時候就是推過去的在配置文件/etc/cobbler/settings
yum_post_install_mirror: 1
八,cobbler根據主機mac地址自動化安裝
準備一臺主機獲取到mac地址
根據mac地址設置安裝信息
cobbler system add --name=liuyueming \ --mac=00:0C:29:2C:DC:6B \ --profile=CentOS-7.2-x86_64 \ --ip-address=192.168.80.188 \ --subnet=255.255.255.0 \ --gateway=192.168.80.2 \ --interface=eth0 \ --static=1 \ --hostname=liuyueming \ --name-servers="192.168.80.2" \ --kickstart=/var/lib/cobbler/kickstarts/default.ks
同步
cobbler sync
查看
cobbler system list
cat /etc/dhcp/dhcpd.conf能夠看到剛纔DHCP配置
啓動該主機就會按照自定義的IP地址以及主機名安裝
沒安裝成功。。。
九,使用koan重裝系統
使用cobbler安裝完系統之後假如想要從新安裝一下系統可使用koan工具
在須要從新安裝系統的主機上面操做
設置epel源
rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
安裝koan
yum -y install koan
使用命令列出cobbler主機是有哪些系統能夠去重裝的
koan --server=192.168.80.130 --list=profiles
PS:是經過api去訪問的
使用命令重裝
koan --replace-self --server=192.168.80.130 --profile=CentOS-7.2-x86_64
重啓(就會自動化從新安裝)
reboot
十,cobbler的python腳本
cobbler_list.py
#!/usr/bin/python import xmlrpclib server = xmlrpclib.Server('http://192.168.80.130/cobbler_api') print server.get_distros() print server.get_profiles() print server.get_systems() print server.get_images() print server.get_repos()
還有一個建立主機的的腳本(學習)
排錯:同步cobbler sync時候報錯,/etc/init.d/dhcpd權限不足,同步失敗,把這個文件權限設置爲777便可