系統安裝(物理機、虛擬機)-->程序安裝、配置、服務啓動-->批量操作-->程序發佈
程序發佈:不能降低用戶體驗、系統不能停機、不能導致系統故障或者系統完全不可用
灰度發佈模型:
通過調度器將線上的一批服務器(maintanance)標記爲down模式-->關閉相應服務-->部署新版本的應用程序至目標位置-->啓動相關應用-->調度主機上線
一、運維工具
1、系統安裝工具----pxe/cobbler;雲上的一般可以用鏡象工具
2、configuartion(配置工具)----puppet/saltstack
3、command and control(命令控制工具)----fabric/ansible
4、監控工具
二、PXE系統工具
1、pxe自啓動安裝過程
三、pxe+kickstart安裝需求
- ks文件
- DHCP服務器
- TFTP服務器
- HTTP服務器/VSFTP服務器
- 網上啓動
- YUM倉庫安裝源
1、操作步驟
[root@localhost ~]# mount /dev/sr0 /mnt/ #掛載安裝包
[root@localhost ~]# yum install -y httpd createrepo #安裝httpd服務和createrepo工具
[root@localhost ~]# mkdir /var/www/html/CentOS-7-x86_64 #創建鏡象目錄
[root@localhost mnt]# cp -a /mnt/* /var/www/html/CentOS-7-x86_64/ #複製安裝源
[root@localhost ~]# yum install -y tftp-server dhcp xinetd #安裝tftp服務、dhcp服務、xinetd服務
1、配置tftp
[root@localhost ~]# vi /etc/xinetd.d/tftp #編輯tftp配置
disable = no #將此項設置爲no
2、配置dhcp
[root@localhost ~]# cd /usr/share/doc/dhcp-4.2.5/
[root@localhost dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@localhost mnt]# vi /etc/dhcp/dhcpd.conf #編輯dhcp的配置
subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.100 192.168.1.160;
option subnet-mask 255.255.255.0;
next-server 192.168.1.200;
filename "pxelinux.0";
} #配置如上
3、創建YUM源
[root@localhost ~]# createrepo -pdo /var/www/html/CentOS-7-x86_64/ /var/www/html/CentOS-7-x86_64/
[root@localhost ~]# createrepo -g `ls /var/www/html/CentOS-7-x86_64/repodata/*-comps.xml` /var/www/html/CentOS-7-x86_64/
4、放置kickstart文件
[root@localhost ~]# cp anaconda-ks.cfg /var/www/html/CentOS-7-x86_64/CentOS-7-x86_64.cfg #複製Kickstart文件
#修改kickstart文件
install
url --url=http://192.168.1.200/CentOS-7-x86_64
text
lang en_US.UTF-8
zerombr
keyboard --vckeymap=us --xlayouts='us'
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder=sda
network --bootproto=dhcp --device=ens33 --onboot=yes --ipv6=auto
network --hostname=localhost.localdomain
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
# Root password
rootpw --iscrypted $6$owQPyZivFxNiiZBP$D59x8aUycBnyxJYMyf9TdsWu9UDA5xu9msyTexIlyAJdMGbo6L/5dkN1TswpAaVMWJW6brZE08MbQuvQbbpbR.
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="xfs" --ondisk=sda --size=17407
part /boot --fstype="xfs" --ondisk=sda --size=1024
part swap --fstype="swap" --ondisk=sda --size=2048
services --enabled="chronyd"
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot
%packages
@^minimal
@core
chrony
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
[root@localhost CentOS-7-x86_64]# chmod 766 CentOS-7-x86_64.cfg #更改權限
5、準備tftp文件
[root@localhost ~]# yum install -y syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost /]# cp /mnt/isolinux/* /var/lib/tftpboot/
[root@localhost /]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost /]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@localhost pxelinux.cfg]# cp /mnt/isolinux/isolinux.cfg default
[root@localhost pxelinux.cfg]# vi default #編輯文件
label ks
menu label ^AUTO Install CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.1.200/CentOS-7-x86_64/CentOS-7-x86_64.cfg #添加如上內容
KICKSTRT基於UEFI GTP分區的KS文件
install
url --url=http://192.168.1.200/CentOS-7-x86_64
text
keyboard us
lang en_US.UTF-8
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part /boot/efi --fstype efi --size 200 --asprimary --ondisk sda
part /boot --fstype xfs --size 500 --ondisk sda
part swap --size 1024 --ondisk sda
part / --fstype xfs --size 8192 --ondisk sda
part /home --fstype xfs --size 1 --grow --ondisk sda
network --bootproto=dhcp --device=enp0s3 --onboot=yes --noipv6 --hostname=CentOS7
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $6$owQPyZivFxNiiZBP$D59x8aUycBnyxJYMyf9TdsWu9UDA5xu9msyTexIlyAJdMGbo6L/5dkN1TswpAaVMWJW6brZE08MbQuvQbbpbR.
logging --level=info
%pre
parted -s /dev/sda mklabel gpt
%end
%packages
@^minimal
@core
chrony
kexec-tools
%end
reboot
UEFI GTP分區 ks 文件
2、啓動服務
- systemctl start dhcpd
- systemctl start tftp
- systemctl start xinetd
- systemctl start httpd
3、測試成功後(經測試可用),加入開機息啓動
- systemctl enable dhcpd
- systemctl enable tftp
- systemctl enable xinetd
- systemctl enable httpd