簡述
運維思索:運維規範如何生成?一文介紹了怎樣從平常工作中提取運維依據,實作運維規範的落地。接下來我們就要按照運維架構分層繼續推進标準化工作了,不要以為"落地"是說着玩的!
本文我們介紹"IT基礎設施層"中比較基礎的工作:
伺服器的作業系統安裝
,涉及到的場景是
伺服器上架批量安裝作業系統
。如果伺服器數量較少,我們可以通過idrac或現場安裝,但是伺服器幾十台甚至上百台可能就不适用了,此時我們就需要無人值守安裝。不管數量多少,徹底和人工說88,在此推薦
Cobbler
。
部署
1.安裝
yum install httpd dhcp tftp python-ctypes cobbler xinetd cobbler-web
systemctl start httpd
systemctl enable httpd
systemctl enable cobberd
systemctl start cobblerd
2.配置
# 1.檢查配置檔案是否有問題,後續的配置都是按照提示修改配置檔案
cobbler check
# 2. 修改cobbler配置檔案
vim /etc/cobbler/settings
#修改本機ip
#server: 127.0.0.1
server: 10.166.160.253
#修改tftp server
#next_server: 127.0.0.1
next_server: 10.166.160.253
# 3. 啟動tftp
vim /etc/xinetd/tftp
#disable 由disable設定為no,并啟動
service xinetd restart
netstat -nulp |grep 69
# 4.下載下傳缺失檔案
cobbler get-loaders
# 5.啟動rsync
systemctl start rsyncd
systemctl enable rsyncd
# 6.安裝pykickstart,用于驗證kickstart檔案是否有效
yum -y install pykickstart
# 7.修改kickstart模闆密碼,此處為作業系統root密碼
openssl passwd -1 -slat 'random-phrase-here' 'xxxxxxx'
vim /etc/cobbler/settings
default_password_crypted: "xxxxxx"
# 8.配置dhcp
vim /etc/cobbler/setttings
# 修改以下字段
manage_dhcp: 1
pxe_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 /mnt
cobbler import --path=/mnt --name=Centos7.6 --arch=x86_64
# 可通過以下進行檢視
cobbler list
# 10.添加ks檔案
# ks檔案存在在/var/lib/kickstarts
vim /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 sys
reload(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.ks
install
#文本安裝
text
lang en_US.UTF-8
keyboard us
authconfig --enableshadow --enablemd5
#xconfig --startxonboot
network --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-251
rootpw --iscrypted $default_password_crypted
#安裝樹
url --url=$tree
firewall --disabled
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
#删除所有分區,重建lvm分區
clearpart --all --initlabel
part /boot --fstype="ext4" --size=500 --ondrive=sda
part swap --size=4096 --ondrive=sda
#設定LVM
part pv.01 --size=1 --grow
volgroup vg_root pv.01
logvol / --fstype="ext4" --vgname=vg_root --size=1 --grow --name=lv_root
#最小化安裝
%packages --nobase
@core
%end
reboot
通過ks檔案我們可以定制如下内容:
- 網絡配置:IP、子網路遮罩、網關、dns
- 主機名、設定不同的賬戶資訊
- LVM磁盤分區
- 安全設定:關閉防火牆、禁用selinux
- 最小化安裝
- 還可以自定義安裝的package
作業系統安裝規範
作業系統作為我們運維的最底層系統,如果管理不好,很容易會出現以下問題:
- 賬戶密碼混亂,需要多次登入才能進入系統
- 目錄混亂,無法快速定位應用目錄
- 分區不統一或沒有使用lvm,無法快速擴充
- 防火牆及selinux沒有統一關閉,出現莫名問題
- 等等
如果你或多或少存在以上問題,說明需要從底層作業系統整改了,否則運維工作将深陷于解決這些瑣碎的問題,随着伺服器的增多,工作量會指數級增長。
是以,作業系統安裝規範可以從以下幾方面進行規範:
- 主機名
- 登入賬戶
- dns、ntp
- lvm磁盤分區
- 防火牆、selinux
- 等等
當然這些都是可以通過ks定義的最基礎的規範,我們還可以在此基礎上統一進行
配置初始化
,這可能是下一步的工作了。
配置初始化:
- 統一安裝yum、pip源
- 關閉無用服務,如postfix、sendmail
- ssh優化
- limit及核心參數調整
- 統一的環境變量
- 安裝統一的用戶端
- 等等
通過以上操作,我們就可以得到一套可直接傳遞生産的作業系統了,“看着舒心、用着放心”。
總結
在作業系統規範化過程中,
除了以上外我認為還有一個規範比較重要,就是《目錄管理規範》
。作業系統傳遞後,可能會同時運作多個技術棧,團隊中每個人部署習慣不一樣,如果無法保證資訊共享,潛在增加了運維的難度。是以,遵循《目錄管理規範》可以保證無論是團隊中哪個人,都能很輕松的保證運維的連續性。
最後,如果要實作作業系統的規範化,應該包括兩個階段:
- 作業系統
規範化安裝
- 作業系統
規範化配置
當然配置的規範化,可能由于企業所在的行業不一樣,要求的次元也不一樣,這個根據需求調整即可。