本地自動化安裝CentOS系統(tǒng)

1 概述

以下的截圖主要是用來說明自動化運維發(fā)展的階段

第一階段:全人肉階段从媚,此時是處于無流程規(guī)范的約束催植,所有的運維工作都是靠人去一步步執(zhí)行斑鸦,這將大大降低工作的效率窖贤,也容易帶來誤操作

第二階段:工具化階段砖顷,制定了規(guī)范制度贰锁,此時是通過編寫腳本等工具來代替運維的大部分重復性工作。但是工具沒有一個統(tǒng)一的管理平臺

第三階段:平臺化階段滤蝠,此時通過完善規(guī)范來提高運維的效率豌熄,降低運維的誤操作,平臺在這個階段完成物咳,通過統(tǒng)一的平臺锣险,對機器進行管理,實現(xiàn)了企業(yè)化的平臺統(tǒng)一管理

第四階段:自驅動階段览闰,通過流程進行驅動芯肤,制度是關鍵,制度已經完善压鉴,系統(tǒng)出了問題崖咨,能夠自己解決。

本文將介紹自動化運維的第一步油吭,即實現(xiàn)自動化安裝系統(tǒng)击蹲。本文將介紹兩個方面的自動化安裝:

1. 半自動化安裝:通過光盤引導系統(tǒng)系統(tǒng),然后手動指定kickstart文件婉宰,安裝包源為系統(tǒng)的光盤或者是網絡(這里包的路徑是在kickstart文件里指定)歌豺,安裝過程由kickstart文件設定。

2. 本地自動化安裝芍阎,通過自己生成一個本地的光盤文件世曾,刻錄在光盤或者U盤里,實現(xiàn)本地自動化安裝谴咸,制作方法是:拷貝一份光盤的所有資料到本地路徑轮听,如/root/fulliso目錄下,把kickstart文件放在該目錄下岭佳,生成新的包依賴關系的文件血巍,然后再通過命令mkisofs生成光盤文件。如果需要U盤啟動珊随,只需要通過dd命令將新生成的iso文件刻錄到U盤里即可實現(xiàn)U盤啟動

接下來述寡,我們將介紹安裝啟動過程,安裝需要的文件的內容叶洞,以及每個自動化安裝方式的實現(xiàn)步驟

2 安裝程序和相關文件介紹

2.1 系統(tǒng)啟動流程如下

bootloader-->kernel(initramfs)-->rootfs-->/sbin/init

系統(tǒng)安裝完成后鲫凶,在啟動時,先開機自檢衩辟,讀取硬盤的第一扇區(qū)MBR螟炫,加載bootloader,即第一階段艺晴,還有1.5.和2階段昼钻。根據配置文件掸屡,找到kernel(vmlinuz)和initramfs(臨時根文件系統(tǒng)),由initramfs加載小linux系統(tǒng)然评,然后把控制權交給了rootfs仅财,然后加載/sbin/init,按腳本命令執(zhí)行相關腳本,完成啟動的過程

2.2 系統(tǒng)安裝程序:anaconda

在安裝過程中我們需要借助的anaconda這個安裝程序來實現(xiàn)碗淌,該程序有兩種安裝界面

1.gui:圖形窗口

2 tui:基于圖形庫curses的文本窗口

anaconda的配置方式:

(1) 交互式配置方式

(2) 通過讀取事先給定的配置文件自動完成配置:按特定語法給出的配置選項盏求,改配置文件叫kickstart文件,這個文件可以手動編寫贯莺,也可以通過圖形化工具system-config-kickstart來生成风喇。我們既然要實現(xiàn)自動化的安裝宁改,自然anaconda的配置方式就要選擇該方式缕探,不能是圖形化,否則就實現(xiàn)不了自動化的安裝

默認我們通過光盤來安裝的時候还蹲,裝載根文件系統(tǒng)爹耗,并啟動anaconda,可以對這個配置方式進行選擇谜喊,當光盤啟動到菜單頁面的時候潭兽,默認啟動GUI接口,若是要指定使用TUI接口:向內核傳遞text參數(shù)即可斗遏。

(1)按tab鍵,在后面增加 text

(2)按ESC鍵:boot: linux? text

在全自動化安裝中山卦,我們是直接在ks文件中設置了該方式為text。

anaconda工作過程

.Anaconda安裝系統(tǒng)分成三個階段:

a 安裝前配置階段

安裝過程使用的語言

鍵盤類型

安裝目標存儲設備

Basic Storage:本地磁盤

特殊設備:iSCSI

設定主機名

配置網絡接口

時區(qū)

管理員密碼

設定分區(qū)方式及MBR的安裝位置

創(chuàng)建一個普通用戶

選定要安裝的程序包

b 安裝階段

在目標磁盤創(chuàng)建分區(qū)诵次,執(zhí)行格式化操作等

將選定的程序包安裝至目標位置

安裝bootloader和initramfs

c 圖形模式首次啟動

進行以下的配置

iptables

selinux

core dump

2.3 光盤部分文件介紹

isolinux/boot.cat:這個文件作用是類型MBR(Main Boot Record)账蓉,負責磁盤操作系統(tǒng)(DOS)對磁盤進行讀寫時分區(qū)合法性的判別、分區(qū)引導信息的定位逾一,啟動的stage1.

isolinux/isolinux.bin,負責光盤的stage2,也是二進制文件铸本,作用類似grub的第二階段

isolinuz/vmlinuz:是linux的內核,相當于是一個小的linux系統(tǒng)

isolinuz/initrd.img遵堵,一般被用來臨時的引導硬件到實際內核vmlinuz能夠接管并繼續(xù)引導的狀態(tài)

isolinux/isolinux.cfg:這個是光盤啟動時的菜單文件箱玷,菜單的風格是文件vesamenu.c32.在isolinux.cfg里有調用,該文件里還指定了內核isolinuz/vmlinuz和isolinuz/initrd.img的路徑陌宿,向內核傳遞參數(shù):append initrd=initrd.img锡足,這段參數(shù)可以自己定制,如在后面加text,就會實現(xiàn)字符界面安裝壳坪,這個用于自動化安裝舶得,不適合于手動安裝,鼠標點不了的弥虐。字符界面一般用于自動化安裝扩灯。

在isolinux.cfg文件中指明kickstart文件的位置媚赖,有以下幾個路徑進行調用該文件,寫法如下

DVD?drive:ks=cdrom:/PATH/TO/KICKSTART_FILE

Hard?drive:ks=hd:device:/directory/KICKSTART_FILE

HTTP?server:ks=http://host:port/path/to/KICKSTART_FILE

FTP?server:ks=ftp://host:port/path/to/KICKSTART_FILE

HTTPS?server:ks=https://host:port/path/to/KICKSTART_FILE

NFSserver:ks=nfs:host:/path/to/KICKSTART_FILE

2.4 kickstart文件

kickstart文件創(chuàng)建

有兩個方法:

1 直接手動編寫:依據某模板修改

2:.可使用創(chuàng)建工具:system-config-kickstart珠插,依據某模板修改并自動生成新配置anaconda-ks.cfg惧磺,這個軟件是在桌面端的環(huán)境下才能啟用

.檢查ks文件的語法錯誤:ksvalidator

ksvalidator??/PATH/TO/KICKSTART_FILE

kickstart 文件的格式如下

kickstart文件的格式

anaconda-ks.cfg的格式如下分為 命令段,程序包段捻撑,腳本段三段

.命令段:

指明各種安裝前配置磨隘,如鍵盤類型等

命令段中的命令:

.必備命令

authconfig:認證方式配置

authconfig--useshadow--passalgo=sha512

bootloader:bootloader的安裝位置及相關配置

bootloader--location=mbr--driveorder=sda–

append="crashkernel=autorhgbquiet"

keyboard:設定鍵盤類型

lang:語言類型

part:創(chuàng)建分區(qū)

rootpw:指明root的密碼

timezone:時區(qū)

.可選命令

install OR upgrade

text:文本安裝界面

network

firewall

selinux

halt

poweroff

reboot

repo

user:安裝完成后為系統(tǒng)創(chuàng)建新用戶

url:指明安裝源

key –skip跳過安裝號碼,適用于rhel版本

.程序包段:

指明要安裝的程序包組或程序包,不安裝的程序包等

程序包段指安裝了哪些包顾患,

@開頭的是包組

不是@的是一般的包

--減號番捂,是指把包組中的某個包去掉

例子如下

%packages

@group_name

package

-package

%end

注意,桌面包組江解,desktop默認是GNOME包組设预,如果桌面端安裝不成功,安裝一下xorg-x11-server-Xorg這個包犁河,桌面端依賴這個包

.腳本段:

腳本段分為安裝前和安裝后腳本段

%pre:安裝前腳本鳖枕,安裝操作系統(tǒng)前,初始化環(huán)境

運行環(huán)境:運行于安裝介質上的微型Linux環(huán)境

%post:安裝后腳本桨螺,系統(tǒng)都安裝完成后才執(zhí)行腳本

格式如下

%post

腳本

在這里有一個地方需要注意宾符,當CentOS7通過命令啟動system-config-kickstart時,選擇包的時候可能出現(xiàn)如下報錯灭翔,看不到包的信息

解決辦法:

配置光盤的yum源魏烫,修改yum 的repo id為development,這個是系統(tǒng)指定的肝箱,一般情況下repo id可以隨便指定哄褒,只要是沒有空格隔開就可以,但在要用system-config-kickstart命令來選擇包是狭园,id一定要配置為development读处。如下截圖

3 自動化安裝

本文將介紹兩種自動化安裝的方式:半自動化和本地自動化

3.1? 半自動化安裝

半自動化安裝,啟動的方式通過光盤進行啟動唱矛,這里有兩種方式:1. 本地光盤直接作為包的來源? 2. 包在其他路徑上罚舱,如http服務器上

3.1.1 安裝包為本地

1.通過system-config-kickstart這個工具在圖形界面定制ks文件,這里要實現(xiàn)的是半自動化的安裝绎谦,需要在ks文件里指定安裝包的路徑管闷,用本地的光盤啟動

2.在虛擬機中選擇好光盤后,啟動虛擬機窃肠。注意包个,7安裝的內存要大于1024M,否則會出現(xiàn)空間不足的問題,無法安裝。

默認情況下碧囊,6和7通過光盤啟動的菜單界面如下截圖

6的啟動菜單頁面如下截圖

7的啟動菜單頁面如下截圖

3.編輯好ks文件,這個ks文件就是用來做自動化安裝的树灶,指導機器安裝ks文件里的語句進行安裝,半自動化的時候糯而,這個文件的路徑要 人為指定路徑天通,在開機的菜單處輸入特定按鍵后進行指定(如下兩張截圖的方法),然后才能加載ks文件進行安裝

這里要注意熄驼,首先要確保網絡是通的像寒,如果不用dhcp,也可以再ks文件里指定固定ip瓜贾,和網絡中的ftp服務器在同一網段

看到這個界面诺祸,敲入Esc鍵,看到boot:輸入linux ks=進行指定ks路徑祭芦,如果放到ftp下筷笨,就寫全路徑

看到圖一的開機界面,按下tab鍵实束,UI看到vmlinuz initrd=initrd.img輸入ks=把ks文件的路徑指出來奥秆,如下截圖是放到ftp下

指定好ks文件后,系統(tǒng)就會安裝ks設置的安裝步驟一步步執(zhí)行咸灿。最后安裝完成后進行重啟機器。注意侮叮,重啟機器這個步驟也是在ks文件里設定避矢。

3.1.2 安裝包在http服務器

這里和安裝包在本地的區(qū)別是,需要制作一個光盤囊榜,這個光盤僅僅用了引導機器啟動审胸,進入到啟動菜單。同時要在一臺http服務器上將光盤直接掛到機器上

1.制作啟動光盤:

將光盤的isolinux這個目錄拷貝到本地/root/bootiso/下

cp? -r? /media/isolinux/? /root/bootiso/

編輯ks文件

vim ks65min.cfg

在這個ks文件里卸勺,需要注意以下兩項

# Use network installation砂沛,配置http服務器下yum源的路徑,如下

url?--url="http://172.18.50.75/os/6i386/"

# Network information 網絡配置曙求,直接配置成靜態(tài)碍庵,或者是自動獲取,以下是直接配置成靜態(tài)ip的例子,原則是保證新增的機器ip和http在同一網段悟狱,能夠去訪問http那臺服務器静浴,

network? --bootproto=static --device=eth0 --gateway=172.18.0.1 --ip=172.18.50.99 --nameserver=172.18.0.1 --netmask=255.255.0.0 --onboot=on

將這個文件拷貝到本地的bootiso目錄下

cp?/root/ks65min.cfg?/root/bootiso/

編輯菜單文件,這里需要注意的是,要指定ks文件的路徑挤渐,注意苹享,這里因為把ks65min.cfg拷貝到了/root/bootiso/,這個目錄要被制作成啟動光盤浴麻,所以ks文件的目錄寫出ks=cdrom:/ks65min.cfg

vim???/root/bootiso/isolinux/isolinux.cfg

如下

label?linux

menu?label?^Install?or?upgrade?an?existing?system

menu?default

kernel?vmlinuz

append?initrd=initrd.img?ks=cdrom:/ks65min.cfg

2 啟動引導光盤

mkisofs?-R?-J?-T?-v?--no-emul-boot?--boot-load-size?4?--boot-info-table?-V?"CentOS?6.5?386?boot"?-b?isolinux/isolinux.bin?-c?isolinux/boot.cat?-o?/root/centos65_boot.iso?/root/bootiso/

centos65_boot.iso生成的這個光盤就可以實現(xiàn)半自動化安裝了得问,開機的時候囤攀,不需要在指定ks文件的路徑了,這里所謂半自動化安裝宫纬,是因為抚岗,還需要指定光盤才能安裝。

3.2 本地自動化安裝

全自動化安裝

1將光盤里的所有文件拷貝一份到本地系統(tǒng)

mount?/dev/sr0??/media

cp?-r??/media??/root/fulliso

2 刪掉.TBL文件哪怔,mkisofs命令創(chuàng)建的時候宣蔚,通過選項-T會自動生成

find?/root/fulliso?-name?TRANS.TBL??-exec?rm?{}?\;

3.repodata這個文件夾下除了comps.xml這個文件要保留,是存放包組信息的文件认境,該文件夾的其他文件都要刪除胚委。是一個xml格式的文件 ,創(chuàng)建的時候叉信,依賴這個文件來創(chuàng)建包組信息亩冬。該目錄下目前只剩下后綴為comps.xml這個文件,命令如下

find?/root/fulliso/repodata2/?!?-name?'*comps.xml'?-type?f?-exec?rm?-rf?{}?\;

4.根據createrepo這個文件來創(chuàng)建yum源硼身,在拷貝的fulliso這個目錄下硅急,命令后面的./是指在哪個目錄下創(chuàng)建yum源.這一步要等3分鐘左右,出現(xiàn)Sqlite DBs complete表示完成佳遂,命令如下

createrepo?-g?repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml??./

執(zhí)行以上語句后营袜,repodata文件夾就會創(chuàng)建出新的數(shù)據,如下

5. 6配置yum的kickstart文件丑罪,這里是直接復制一個ks文件作為模板進行修改荚板。或者直接在桌面端里打開終端命令窗口吩屹,執(zhí)行命令system-config-kickstart進行定制kickstart文件按自己的安裝需求進行設置.

注意跪另,將新生成的ks文件放到/fulliso這個目錄,可以放置多個應答文件煤搜,來實現(xiàn)不一樣的安裝免绿,如ks6-desk.cfg,ks6-mini.cfg

6. 制作啟動菜單,修改isolinux目錄下的isolinux.cfg這個文件擦盾,這里制作了四個菜單嘲驾,根據指定ks文件來實現(xiàn)不一樣的安裝,如下截圖

到這里厌衙,所有的準備文件都完成了距淫,接下來要制作成光盤

7. 制作成全量光盤,和半自動化2的的區(qū)別是這里重新生成yum倉庫配置文件婶希,把光盤的所有文件都拷貝到新的目錄下榕暇,包括安裝包,之前只是拷貝光盤下的isolinux這個目錄下的內容,制作一個引導的菜單彤枢,包放在了http等遠程端

這里可以制作成整個6的光盤狰晚,只需要把安裝包都拷貝到同一Packages目錄下即可.

執(zhí)行如下的語句制作.iso文件

mkisofs?-R?-J?-T?-v?--no-emul-boot--boot-load-size?4?--boot-info-table?-V?"CentOS?6.5?autoinstall"?-bisolinux/isolinux.bin?-c?isolinux/boot.cat?-o?/root/auto65.iso?/root/fulliso/

這一步比較久,根據機器的性能決定時間快慢缴啡,大概要10分鐘

這樣制作完成后壁晒,這個就可以實現(xiàn)通過光盤實現(xiàn)全自動化的安裝

如果要做成u盤啟動,就用命令dd把生成的這個文件拷貝到U盤下业栅,實現(xiàn)同U盤來安裝系統(tǒng),,假設U盤的識別為設備/dev/sdf .命令如下

dd?if=/root/auto65.isoof=/dev/sdf

然后裝機開機時秒咐,進入bios,將啟動項設置為U盤啟動即可

mkisofs選項

.-o指定映像文件的名稱碘裕。

.-b指定在制作可開機光盤時所需的開機映像文件携取。

.-c制作可開機光盤時,會將開機映像文件中的no-eltorito-

catalog全部內容作成一個文件帮孔。

.-no-emul-boot非模擬模式啟動雷滋。

.-boot-load-size 4設置載入部分的數(shù)量

.-boot-info-table在啟動的圖像中現(xiàn)實信息

.-R或-rock使用RockRidgeExtensions

.-J或-joliet使用Joliet格式的目錄與文件名稱

.-v或-verbose執(zhí)行時顯示詳細的信息

.-T或-translation-table建立文件名的轉換表,適用于不支持Rock Ridge Extensions的系統(tǒng)上

3.3 報錯解決

3.3.1 安裝65 mini 32位系統(tǒng)

出現(xiàn)如下的報錯

在CentOS 6.X下不支持通過HDMI端口進行音頻輸出文兢。 但是晤斩,支持主板音頻端口。 出現(xiàn)錯誤信息時姆坚,解決辦法:按OK繼續(xù)安裝操作系統(tǒng)澳泵。

3.3.2 CentOS7 桌面版安裝后問題

CentOS7 桌面版安裝后重啟出現(xiàn)如下的界面,解決辦法是依次按 1--》2--》c--》c然后重啟機器就能解決

3.3.3 CentOS 7 內存不夠

如配置為1024M時旷偿,出現(xiàn)如下的報錯烹俗,解決辦法是將centOS7通過該PXE安裝最小內存調整為1100M

卡在以下這一步驟

然后5分鐘后出現(xiàn)如下的報錯,

最終結果如下萍程,是異常安裝

4 小結

本文主要介紹了自動化安裝的相關概念,以及兩種自動化安裝系統(tǒng)的方法兔仰。如果工作環(huán)境不允許用網絡的方式安裝系統(tǒng)茫负,制作一個全量的自動化安裝鏡像則會大大降低工作量。

關于自動化安裝系統(tǒng)乎赴,還有兩種方式忍法,PXE 和 cobbler方式。接下來將會有一個文章專門介紹這兩個安裝方式的原理榕吼,以及實現(xiàn)饿序。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市羹蚣,隨后出現(xiàn)的幾起案子原探,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咽弦,死亡現(xiàn)場離奇詭異徒蟆,居然都是意外死亡,警方通過查閱死者的電腦和手機型型,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門段审,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闹蒜,你說我怎么就攤上這事寺枉。” “怎么了绷落?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵姥闪,是天一觀的道長。 經常有香客問我嘱函,道長甘畅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任往弓,我火速辦了婚禮疏唾,結果婚禮上,老公的妹妹穿的比我還像新娘函似。我一直安慰自己槐脏,他們只是感情好,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布撇寞。 她就那樣靜靜地躺著顿天,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蔑担。 梳的紋絲不亂的頭發(fā)上牌废,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音啤握,去河邊找鬼鸟缕。 笑死,一個胖子當著我的面吹牛排抬,可吹牛的內容都是我干的懂从。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蹲蒲,長吁一口氣:“原來是場噩夢啊……” “哼番甩!你這毒婦竟也來了?” 一聲冷哼從身側響起届搁,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤缘薛,失蹤者是張志新(化名)和其女友劉穎窍育,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掩宜,經...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡蔫骂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了牺汤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辽旋。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖檐迟,靈堂內的尸體忽然破棺而出补胚,到底是詐尸還是另有隱情,我是刑警寧澤追迟,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布溶其,位于F島的核電站,受9級特大地震影響敦间,放射性物質發(fā)生泄漏瓶逃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一廓块、第九天 我趴在偏房一處隱蔽的房頂上張望厢绝。 院中可真熱鬧,春花似錦带猴、人聲如沸昔汉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽靶病。三九已至,卻和暖如春口予,著一層夾襖步出監(jiān)牢的瞬間娄周,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工沪停, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留昆咽,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓牙甫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親调违。 傳聞我的和親對象是個殘疾皇子窟哺,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容