查看原文
其他

运维思索:操作系统安装规范化

木讷大叔爱运维 木讷大叔爱运维 2022-07-13

点击上方蓝色字体,关注我们




读完需 9 分钟

速读需 4 分钟 



运维思索:运维规范如何生成?一文介绍了怎样从平常工作中提取运维依据,实现运维规范的落地。接下来我们就要按照运维框架分层继续推进标准化工作了,不要以为"落地"是说着玩的!

本文我们介绍"IT基础设施层"中比较基础的工作:服务器的操作系统安装,涉及到的场景是服务器上架批量安装操作系统。如果服务器数量较少,我们可以通过idrac或现场安装,但是服务器几十台甚至上百台可能就不适用了,此时我们就需要无人值守安装。不管数量多少,彻底和人工说88,在此推荐Cobbler

部署

1.安装

yum install httpd dhcp tftp python-ctypes cobbler xinetd cobbler-websystemctl start httpdsystemctl enable httpdsystemctl enable cobberdsystemctl start cobblerd

2.配置

# 1.检查配置文件是否有问题,后续的配置都是按照提示修改配置文件cobbler check# 2. 修改cobbler配置文件vim /etc/cobbler/settings#修改本机ip#server: 127.0.0.1server: 10.166.160.253#修改tftp server#next_server: 127.0.0.1next_server: 10.166.160.253# 3. 启动tftpvim /etc/xinetd/tftp#disable 由disable设置为no,并启动service xinetd restartnetstat -nulp |grep 69# 4.下载缺失文件cobbler get-loaders# 5.启动rsyncsystemctl start rsyncdsystemctl enable rsyncd# 6.安装pykickstart,用于验证kickstart文件是否有效yum -y install pykickstart# 7.修改kickstart模板密码,此处为操作系统root密码openssl passwd -1 -slat 'random-phrase-here' 'xxxxxxx'vim /etc/cobbler/settingsdefault_password_crypted: "xxxxxx"# 8.配置dhcpvim /etc/cobbler/setttings# 修改以下字段manage_dhcp: 1pxe_just_once: 1
vim /etc/cobbler/dhcp.template# 修改以下字段option routers 10.166.160.253;option domain-name-servers 10.166.160.253;option subnet-mask 255.255.255.0;# 可分配的dhcp网段range dynamic-bootp 10.166.160.240 10.166.160.252;
# 修改dhcp后需要重启systemctl restart cobblerd# 每次修改配置文件,都需要进行同步。cobber sync# 9.导入Centos-7.6镜像mount Centos-7.6-x86_64-DVD-1810.iso /mntcobbler import --path=/mnt --name=Centos7.6 --arch=x86_64# 可通过以下进行查看cobbler list# 10.添加ks文件# ks文件存在在/var/lib/kickstartsvim /var/lib/cobbler/kickstarts/Centos-7.6-x86_64.ks#验证配置文件cobbler validateks#此时如果报错<type 'exceptions.UnicodeDecodeError'>#原因是python的字符集编码不一致造成的#需要通过以下配置并重启服务器可解决。cat >> /usr/lib/python2.7/site-packages/sitecustomize.py <<EOF# encoding=utf8 import sysreload(sys)sys.setdefaultencoding('utf8')EOF
# 如果ks没有问题,则需要导入ks与Centos7.6 进行绑定cobbler profile edit --name Centos-7.6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/Centos-7.6-x86_64.ks
# 11.查看配置cobbler profile report # 无论修改哪个配置文件,都需要通过cobbler sync# 接下来同一网络内的服务器开启就可以通过Cobbler安装系统了。
# 12.我们的自定义ks文件如下:vim /var/lib/cobbler/kickstarts/Centos-7.6-x86_64.ksinstall#文本安装textlang en_US.UTF-8keyboard usauthconfig --enableshadow --enablemd5#xconfig --startxonbootnetwork --onboot yes --device ens160 --bootproto static --ip 10.166.160.251 --netmask 255.255.255.0 --gateway 10.166.160.254 --nameserver 10.164.200.202 --hostname pre-166-160-251rootpw --iscrypted $default_password_crypted#安装树url --url=$treefirewall --disabledselinux --disabledtimezone Asia/Shanghaibootloader --location=mbr --driveorder=sda --append="rhgb quiet"#删除所有分区,重建lvm分区clearpart --all --initlabelpart /boot --fstype="ext4" --size=500 --ondrive=sdapart swap --size=4096 --ondrive=sda#设置LVMpart pv.01 --size=1 --growvolgroup vg_root pv.01logvol / --fstype="ext4" --vgname=vg_root --size=1 --grow --name=lv_root#最小化安装%packages --nobase@core%endreboot

通过ks文件我们可以定制如下内容:

  • 网络配置:IP、子网掩码、网关、dns

  • 主机名、设置不同的账户信息

  • LVM磁盘分区

  • 安全设置:关闭防火墙、禁用selinux

  • 最小化安装

  • 还可以自定义安装的package


操作系统安装规范

操作系统作为我们运维的最底层系统,如果管理不好,很容易会出现以下问题:

  • 账户密码混乱,需要多次登录才能进入系统

  • 目录混乱,无法快速定位应用目录

  • 分区不统一或没有使用lvm,无法快速扩展

  • 防火墙及selinux没有统一关闭,出现莫名问题

  • 等等


如果你或多或少存在以上问题,说明需要从底层操作系统整改了,否则运维工作将深陷于解决这些琐碎的问题,随着服务器的增多,工作量会指数级增长。

因此,操作系统安装规范可以从以下几方面进行规范:

  • 主机名

  • 登录账户

  • dns、ntp

  • lvm磁盘分区

  • 防火墙、selinux

  • 等等


当然这些都是可以通过ks定义的最基础的规范,我们还可以在此基础上统一进行配置初始化,这可能是下一步的工作了。

配置初始化:

  • 统一安装yum、pip源

  • 关闭无用服务,如postfix、sendmail

  • ssh优化

  • limit及内核参数调整

  • 统一的环境变量

  • 安装统一的客户端

  • 等等


通过以上操作,我们就可以得到一套可直接交付生产的操作系统了,“看着舒心、用着放心”。


总结

在操作系统规范化过程中,除了以上外我认为还有一个规范比较重要,就是《目录管理规范》。操作系统交付后,可能会同时运行多个技术栈,团队中每个人部署习惯不一样,如果无法保证信息共享,潜在增加了运维的难度。因此,遵循《目录管理规范》可以保证无论是团队中哪个人,都能很轻松的保证运维的连续性。


最后,如果要实现操作系统的规范化,应该包括两个阶段:

  1. 操作系统安装规范化

  2. 操作系统配置规范化


当然配置的规范化,可能由于企业所在的行业不一样,要求的维度也不一样,这个根据需求调整即可。



运维思索:运维规范如何生成?

运维思索:cmdb与zabbix监控系统的融合

运维思考:运维管理与运维自动化

运维思索:系统监控体系



关注我们




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存