這是我參與8月更文挑戰的第5天。python
運維思索:運維規範如何生成?一文介紹了怎樣從日常工做中提取運維依據,實現運維規範的落地。接下來咱們就要按照運維框架分層繼續推動標準化工做了,不要覺得"落地"是說着玩的!linux
本文咱們介紹"IT基礎設施層"中比較基礎的工做:服務器的操做系統安裝
,涉及到的場景是服務器上架批量安裝操做系統
。若是服務器數量較少,咱們能夠經過idrac或現場安裝,可是服務器幾十臺甚至上百臺可能就不適用了,此時咱們就須要無人值守安裝。無論數量多少,完全和人工說88,在此推薦Cobbler
。web
yum install httpd dhcp tftp python-ctypes cobbler xinetd cobbler-web
systemctl start httpd
systemctl enable httpd
systemctl enable cobberd
systemctl start cobblerd
複製代碼
# 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文件咱們能夠定製以下內容:vim
操做系統做爲咱們運維的最底層系統,若是管理很差,很容易會出現如下問題:安全
若是你或多或少存在以上問題,說明須要從底層操做系統整改了,不然運維工做將深陷於解決這些瑣碎的問題,隨着服務器的增多,工做量會指數級增加。bash
所以,操做系統安裝規範能夠從如下幾方面進行規範:服務器
固然這些都是能夠經過ks定義的最基礎的規範,咱們還能夠在此基礎上統一進行配置初始化
,這多是下一步的工做了。markdown
配置初始化:網絡
經過以上操做,咱們就能夠獲得一套可直接交付生產的操做系統了,「看着舒心、用着放心」。app
在操做系統規範化過程當中,除了以上外我認爲還有一個規範比較重要,就是《目錄管理規範》
。操做系統交付後,可能會同時運行多個技術棧,團隊中每一個人部署習慣不同,若是沒法保證信息共享,潛在增長了運維的難度。所以,遵循《目錄管理規範》能夠保證不管是團隊中哪一個人,都能很輕鬆的保證運維的連續性。
最後,若是要實現操做系統的規範化,應該包括兩個階段:
安裝
規範化配置
規範化固然配置的規範化,可能因爲企業所在的行業不同,要求的維度也不同,這個根據需求調整便可。