自动化运维-批量安装Linux操作系统
- 1 背景
- 2 Cobbler基础
- 2.1 Cobbler介绍
- 2.2 Cobbler服务
- 3 系统环境
- 3.1 系统环境
- 3.2 网络环境
- 3.2.1 实体机网络设置
- 3.2.2 虚拟机网络设置
- 3.2.2.1 VMware网络设置
- 3.2.2.2 Virtualbox网络设置
- 4 Cobbler安装配置
- 4.1 Cobbler安装
- 4.2 Cobbler 配置
- 4.3 Cobbler导入镜像
- 4.3.1 下载镜像
- 4.3.2 挂载镜像
- 4.3.3 导入镜像
- 4.3.4 检查导入镜像
- 4.3.5 编写配置文件
- 4.3.6 同步配置信息
- 5 批量安装操作系统
- 5.1 虚拟机安装
- 5.2 实体机安装
-
- 5.3 开机设置
- 5.3.1 virtualbox设置
- 5.3.2 实体机设置
- 6 参考
1 背景
随着项目的推进和展开,项目到了服务器操作系统部署这个环节,客户选择对目前现有的20台服务器利旧使用,服务器操作系统的部署成了摆在眼前的一道无法绕过的问题。
能想到的三种方式:
单机部署: 适合3台服务器以下,
批量话部署:规模化、自动化、远程实现、3台服务器以上
虚拟化部署:降低能耗、节省空间、节约成本、提高基础架构利用率、提高稳定性、减少宕机、提高灵活性。
以上只是个人的观点,客户对部署没有太多要求,通过跟项目组沟通后,按第二种批量部署开干,选型上使用PXE方式,工具使用Cobbler工具安装
2 Cobbler基础
2.1 Cobbler介绍
Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。
Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。
Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。
Cobbler官网:https://fedorahosted.org/cobbler/
2.2 Cobbler服务
- PXE服务支持
- DHCP服务管理
- DNS服务管理(可选bind,dnsmasq)
- 电源管理
- Kickstart服务支持
- YUM仓库管理
- TFTP(PXE启动时需要)
- Apache(提供kickstart的安装源,并提供定制化的kickstart配置)
3 系统环境
3.1 系统环境
[root@devops ~]
CentOS Linux release 7.9.2009 (Core)
3.2 网络环境
3.2.1 实体机网络设置
1、实体服务器接入没有划分VLAN的交换机上进行操作
3.2.2 虚拟机网络设置
虚拟机网卡采用NAT模式,不要使用桥接模式,因为稍后我们会搭建DHCP服务器,在同一局域网多个DHCP服务会有冲突。
3.2.2.1 VMware网络设置
VMware的NAT模式的dhcp服务也关闭,避免干扰。
3.2.2.2 Virtualbox网络设置
Virtualbox安装网络设置如下:
批量安装服务器设置
网络设置
4 Cobbler安装配置
4.1 Cobbler安装
具备互联网接入直接运行yum命令,不具备互联网接入的话,搭建yum源服务器。
yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd xinetd python-ctypes tftp lrzsz vim wget
关闭SELinux
[root@devops ~]
[root@devops ~]
设置完毕后,重启服务器生效
开始启动服务
systemctl start httpd
systemctl start cobblerd
查看cobbler
cobbler check
配置文件说明
[root@devops ~]
/etc/cobbler
/etc/cobbler/settings
/etc/cobbler/dhcp.template
/etc/cobbler/tftpd.template
/etc/cobbler/rsync.template
/etc/cobbler/iso
/etc/cobbler/pxe
/etc/cobbler/power
/etc/cobbler/users.conf
/etc/cobbler/users.digest
/etc/cobbler/dnsmasq.template
/etc/cobbler/modules.conf
/var/lib/cobbler
/var/lib/cobbler/config
/var/lib/cobbler/kickstarts
/var/lib/cobbler/loaders
/var/www/cobbler
/var/www/cobbler/ks_mirror
/var/www/cobbler/images
/var/www/cobbler/repo_mirror
/var/log/cobbler
/var/log/cobbler/install.log
/var/log/cobbler/cobbler.log
4.2 Cobbler 配置
修改常见配置文件,查看本地IP地址将ip地址写入如下文件
ip addr
修改配置文件
IPADDR=192.168.1.10
sed -i 's/server: 127.0.0.1/server: '${IPADDR}'/' /etc/cobbler/settings && grep "server: ${IPADDR}" /etc/cobbler/settings
sed -i 's/next_server: 127.0.0.1/next_server: '${IPADDR}'/' /etc/cobbler/settings && grep "next_server: ${IPADDR}" /etc/cobbler/settings
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings && grep 'manage_dhcp: 1' /etc/cobbler/settings
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings && grep 'pxe_just_once: 1' /etc/cobbler/settings
sed -i "s#manage_rsync: 0#manage_rsync: 1#g" /etc/cobbler/settings && grep "manage_rsync: 1" /etc/cobbler/settings
设置批量安装的服务器的root密码
[root@devops ~]
[root@devops ~]
[root@devops ~]
default_password_crypted: "$1$root$Js1erquGbefP5iwCuWmEh/"
安装bobbler-get-loaders文件
下载[cobbler-get-loaders](链接: https://pan.baidu.com/s/12nYtI4h9fjScRnnqFjIB9g?pwd=uew4)离线安装包
将离线安装包上传至服务器的/var/lib/cobblers/loaders/
目录
cd /var/lib/cobbler/loaders/
tar xf cobbler-get-loaders.tar.gz
mv cobbler-get-loaders/* .
rm -fr cobbler-get-loaders cobbler-get-loaders.tar.gz
修改tftp参数
[root@devops loaders]
disable = no
重启服务
systemctl restart xinetd
systemctl restart cobblerd
systemctl enable rsyncd.service
systemctl start rsyncd.service
配置DHCP
根据自身的网络设置。
[root@devops ~]
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.1.250 192.168.1.254;
同步Cobbler配置信息
[root@devops ~]
task started: 2015-12-03_204822_sync
task started (id=Sync, time=Thu Dec 3 20:48:22 2015)
running pre-sync triggers
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***
设置开机启动
systemctl enable httpd
systemctl enable xinetd
systemctl enable cobblerd
systemctl enable dhcpd
systemctl enable rsyncd
systemctl enable tftp
systemctl start httpd
systemctl start xinetd
systemctl start cobblerd
systemctl start dhcpd
systemctl start rsyncd
systemctl start tftp
查看服务器状态
systemctl status httpd
systemctl status xinetd
systemctl status cobblerd
systemctl status dhcpd
systemctl status rsyncd
systemctl status tftp
关闭防火墙
本人不建议关闭防火墙,针对具体端口开放即可,由于是局域网临时装机,故采取懒人安装方法直接关闭防火墙
[root@devops ~]
浏览器中输入信息查看
http://192.168.1.10/
查看cobbler
http://192.168.1.10/cobbler/
4.3 Cobbler导入镜像
4.3.1 下载镜像
官网下载 对应的镜像 下载centos minimal镜像,本次部署的为CentOS7.9
4.3.2 挂载镜像
将下载的镜像传入服务器
[root@devops ~]
mount: /dev/loop0 is write-protected, mounting read-only
4.3.3 导入镜像
cobbler import --path=/mnt/ --name=CentOS-7.9-x86_64 --arch=x86_64
4.3.4 检查导入镜像
[root@devops ~]
total 0
drwxr-xr-x 8 root root 254 Nov 3 2020 CentOS-7.9-x86_64
drwxr-xr-x. 2 root root 36 Nov 6 18:23 config
[root@devops ~]
CentOS_BuildTag EFI EULA GPL images isolinux LiveOS Packages repodata RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 TRANS.TBL
[root@devops ~]
4.3.5 编写配置文件
[root@devops ~]
[root@devops ~]
install
url --url=$tree
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
$SNIPPET('network_config')
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $default_password_crypted
clearpart --all --initlabel
part / --fstype xfs --size 51200 --ondisk=sda
part /var --fstype xfs --size 1 --grow --ondisk=sda
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
poweroff
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
$SNIPPET('pre_anamon')
%end
%packages
@^minimal
@core
kexec-tools
%end
%post
systemctl disable postfix.service
%end
编辑profile,修改关联的ks文件
cobbler profile edit --name=CentOS-7.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos-7.9-x86_64.cfg
查看关联配置
[root@devops ~
> 这里是引用
]
Name : CentOS-7.9-x86_64
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : CentOS-7.9-x86_64
Enable gPXE? : 0
Enable PXE Menu? : 1
Fetchable Files : {}
Kernel Options : {}
Kernel Options (Post Install) : {}
Kickstart : /var/lib/cobbler/kickstarts/centos-7.9-x86_64.cfg
Kickstart Metadata : {}
Management Classes : []
Management Parameters : <<inherit>>
Name Servers : []
Name Servers Search Path : []
Owners : ['admin']
Parent Profile :
Internal proxy :
Red Hat Management Key : <<inherit>>
Red Hat Management Server : <<inherit>>
Repos : []
Server Override : <<inherit>>
Template Files : {}
Virt Auto Boot : 1
Virt Bridge : xenbr0
Virt CPUs : 1
Virt Disk Driver Type : raw
Virt File Size(GB) : 5
Virt Path :
Virt RAM (MB) : 512
Virt Type : kvm
查看ks文件信息
[root@devops ~]
distros:
CentOS-7.9-x86_64
profiles:
CentOS-7.9-x86_64
调整内核参数
如果是虚拟机配置此处更改,如果是实体机则忽略此处。
[root@devops ~]
[root@devops ~]
Name : CentOS-7.9-x86_64
TFTP Boot Files : {}
Distribution : CentOS-7.9-x86_64
Virt Path :
Virt RAM (MB) : 512
Virt Type : kvm
4.3.6 同步配置信息
[root@devops ~]
received on stderr:
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***
5 批量安装操作系统
批量安装分为虚拟机的批量安装和实体机的安装
5.1 虚拟机安装
virtualbox虚拟机设置
创建虚拟机,启动顺序选择网络为第一启动顺序
启动虚拟机,选中第二个CentOS-7.9-x86_64,回车确认。
接下来开始自动化安装
5.2 实体机安装
实体机安装需要用到ipmitools工具
5.2.1 安装ipmitool工具
\cp ipmitool /usr/bin/ipmitool
chmod +x /usr/bin/ipmitool
modprobe ipmi_watchdog ; modprobe ipmi_poweroff ; modprobe ipmi_devintf ; modprobe ipmi_si
ipmitool -I lanplus -H 10.254.178.91 -U test -P 123456 power status
设置服务器从pxe启动
ipmitool -I lanplus -H 10.254.178.91 -U test -P 654321 chassis bootdev pxe
ipmitool -I lanplus -H 10.254.178.91 -U test -P 654321 power reset
参考上面的命令设置为pex启动,进行装机,
开始自动化安装
安装完毕服务器会关机。
5.3 开机设置
服务器开机,开机需要将服务器的启动方式设置为硬盘启动,如果忘记这一步,就跟会重新来一边。
5.3.1 virtualbox设置
5.3.2 实体机设置
设置服务器从disk启动
ipmitool -I lanplus -H 10.254.178.91 -U test -P 654321 power on ; sleep 5
ipmitool -I lanplus -H 10.254.178.91 -U test -P 654321 chassis bootdev disk
ipmitool -I lanplus -H 10.254.178.91 -U test -P 654321 power reset
启动后界面信息如下。
以上为自动化批量安装操作系统的步骤。
6 参考
Chrising的运维知识体系
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)