1. 程式人生 > >centos7.4批量自動化安裝(pxe、cobbler、製作自動化iso映象);pxe安裝;cobbler安裝;

centos7.4批量自動化安裝(pxe、cobbler、製作自動化iso映象);pxe安裝;cobbler安裝;

前言

學IT的人經常要去而作業系統,而裝作業系統大部分都是互動式的操作,也就是說安裝時需要有人在旁邊設定語言,時間,網路,或者點下一步,下一步這樣子,裝系統變成了一個人機互動的過程。如果裝一臺作業系統還可以,但是如果給機房裝作業系統,有多臺的作業系統的話,就會很累,裝作業系統就會變成一項機械的體力勞動。

於是乎,有人提出,既然整個機房裝系統的配置是一樣的,那麼能不能使用同樣的配置應用於所有機器。也就是說,提前定製好相關配置,寫到一個檔案裡面,在系統啟動時會讀取這個檔案,根據這個檔案來設定後續的時間,語言,網路等系統配置。這個檔案就是kickstart。

在實際的機房操作中,安裝作業系統往往都不是有人在旁邊一直點下一步,人機互動式的點相關配置的(機房溫度很高,並且線很多,總之一把人都不會願意呆很久。)。更多情況下我們是先設定好相關配置,然後指出作業系統的安裝方式。接下來靜靜等待就好。
常見的非互動式的安裝作業系統的方式主要有以下三種。

  • 製作自動化安裝的iso映象(通過u盤來安裝),主要是在原有的系統映象上做一些修改,讓我們自定製的配置檔案kickstartt與原有的系統映象融合,形成新的映象。進而實現自動化安裝的步驟。
  • pxe安裝,是早期機房安裝的神器。其原理主要就是在機器a上部署DHCP、TFTP等相關服務,把映象和配置檔案都放在機器a上,而後其他機器通過a的dhcp服務獲得ip,通過ip與機器a進行通訊,拉取機器a的配置檔案以及映象等到本地執行。然後就可以實現整個機房都自動化安裝作業系統了。
  • cobbler安裝,這是對pxe的二次封裝,在pxe當中,我們還需要手動的去部署dhcp和tftp等相關服務。在cobbler中,相關的配置、軟體、服務等都被整合在了一起,管理起來能夠更簡單。

這三種方式,用的比較多的是第一種跟第三種。第一種經常用於使用在安裝幾臺伺服器的小場面上,而第三種一般用於幾百臺、甚至上千臺這種規模。尤其是cobbler還可以進行跨網段的安裝(網上有相關教程,不作為此篇文章的重點)。本片文章主要講如何製作自動化的映象和做cobbler伺服器。

kickstart檔案詳解

在學習製作映象和做cobbler之前,首先要學習如何把裝系統過程中人機互動的那個過程做成一個配置檔案。也就是說,我們要學習一下生成kickstart檔案。

首先,我們要利用圖形化的介面生成一個ks模板檔案,當你理解ks檔案所有引數和命令的含義後,可以直接在別人的模板上稍加修改,然後就可以直接拿去用了。

1.在一臺裝有圖形化介面的機器上,我用的是centos7.4,安裝相關工具並啟動。

[ root@ygl ~ ]# yum install system-config-kickstart
#安裝圖形化管理工具
[ root@ygl ~ ]# system-config-kickstart
#啟動圖形介面

2.逐步安裝,我把安裝容易出錯的配置說一下,其他的配置不再贅述
這裡寫圖片描述

在選擇安裝源的時候,如果你是使用的u盤安裝,就選擇cd-rom,如果你是cobbler安裝就選擇http然後填上相應的ip和目錄位置即可,比如http://10.1.18.29/cobbler/ks_mirror/centos7.4

這裡寫圖片描述

第二張圖要勾選這幾個位置,是強調重建bootloader。

這裡寫圖片描述

第三張圖要注意的位置是,勾選重新初始化mbr和重新初始化卷標這兩項內容。
如果只做kickstart檔案上還有什麼不理解的地方,可以參考此篇部落格。圖形化介面的話,只要看得懂英語,問題都不大。

u盤自動化安裝

1.掛載初始映象。
以centos7.4為例,你需要把最初的系統映象掛載到某個目錄,比如/mnt/

2.把所掛載的光盤裡的所有檔案全部複製出來,放到一個你指定的地方,我放在了/var/ftp/pub/fulliso/下面。 (這樣放的目的是為了後期通過ftp拉取製作好的映象,當然我先安裝並開啟了ftp服務。)
注意哦:有兩個是隱藏檔案,別忘了複製出來哦。

[root@29 ~]# yum -y install vsftpd
[root@29 ~]# systemctl start vsftpd
[root@29 ~]# cp -r /mnt/* /var/ftp/pub/fulliso/

#複製所有檔案到一個新的目錄
[root@29 ~]# cd /mnt/
[root@29 /mnt]# cp .discinfo .treeinfo /var/ftp/pub/fulliso/
#把隱藏檔案也複製過去

3.刪除所有的TRANS.TBL檔案

[root@29 ~]# cd /var/ftp/pub/fulliso/
#切換目錄
[root@29 /var/ftp/pub/fulliso]# find -name TRANS.TBL -exec rm {} \;

4.刪除原始檔的repodata檔案。(因為你是要重新定製光碟映象,原有的repodata可能因為你路徑的變換或者內容的刪減變得不再合適了,你需要刪除並根據現有情況重新生成repodata)

[[email protected]29 /var/ftp/pub/fulliso]# rm -rf repodata/

5.根據情況重新生成相關repodata。

[[email protected]29 /var/ftp/pub/fulliso]# mkdir repodata
#新建目錄
[[email protected]29 /var/ftp/pub/fulliso]# cp /mnt/repodata/d8***-x86_64-comps.xml repodata/
#把原倉庫中repodata目錄下的內容複製到新的iso的repodata檔案中。
#注意只複製那個xml結尾的檔案。尾號為x86_64-comps.xml的檔案,就是需要複製的那個。
#每臺機器情況不一樣,按實際情況去進行考量。
[[email protected]29 /var/ftp/pub/fulliso]# createrepo -g repodata/d87379a47bc2060f833000b9cef7f9670195fe197271d37fce5791e669265e8b-c7-x86_64-comps.xml ./
#生成新的repodata檔案。

6.定製kickstart檔案
上文中生成的kickstart檔案是個基本的模板,真實的安裝環境我們還需要進行二次修改。

最小化安裝版kickstart檔案


#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install        #選擇安裝還是選擇更新
# Keyboard layouts
keyboard 'us'
# Root password  #root使用者密碼的設定,可利用openssl命令設定(用法見百度)
#或者在上文中圖形化生成ks模板檔案時直接設定好密碼。
rootpw --iscrypted $1$GKfMMD9.$Cgag5pWRZcCLO52j1Hw4P1
# Use cdrom  installation
cdrom     #重要的一個選項,如果是u盤裝就選cdrom,如果cobbler裝就和初始的那
#個ks檔案一樣就好,宣告是網路安裝和相關服務的ip地址。
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx

# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
#分割槽要注意不能分的太大了,要結合自己實際硬碟情況,不然安裝的時候會報錯。
#可以在分割槽的時候直接定義lvm卷。
part / --fstype="xfs" --size=20480
part /boot --fstype="xfs" --size=500
part swap --fstype="swap" --size=4096

#接下來是迷你版安裝的相關yum包
%packages
@^minimal
@base
-abrt-addon-ccpp
-abrt-addon-python
-abrt-cli
-abrt-console-notification
-bash-completion
-blktrace
-bridge-utils
-bzip2
-chrony
-cryptsetup
-dmraid
-dosfstools
-ethtool
-fprintd-pam
-gnupg2
-hunspell
-hunspell-en
-kmod-kvdo
-kpatch
-ledmon
-libaio
-libreport-plugin-mailx
-libstoragemgmt
-lvm2
-man-pages
-man-pages-overrides
-mdadm
-mlocate
-mtr
-nano
-ntpdate
-pinfo
-plymouth
-pm-utils
-rdate
-rfkill
-rng-tools
-rsync
-scl-utils
-setuptool
-smartmontools
-sos
-sssd-client
-strace
-sysstat
-systemtap-runtime
-tcpdump
-tcsh
-teamd
-time
-unzip
-usbutils
-vdo
-vim-enhanced
-virt-what
-wget
-which
-words
-xfsdump
-xz
-yum-langpacks
-yum-utils
-zip

%end

上述檔案除了密碼之外的部分都可以拿去借鑑,如果你整個檔案都拿去用的話,生成的預設密碼是我所設定的密碼。建議先自己生成一個模板ks檔案,然後根據實際需要進行二次修改。

帶桌面的全安裝版本

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$GKfMMD9.$Cgag5pWRZcCLO52j1Hw4P1
# Use cdrom  installation
cdrom
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx

# Network information
network  --bootproto=dhcp 
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="xfs" --size=20480
part /boot --fstype="xfs" --size=500
part swap --fstype="swap" --size=4096

%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@ha
@hardware-monitoring
@input-methods
@internet-browser
@java-platform
@kde-desktop
@large-systems
@load-balancer
@multimedia
@performance
@print-client
@virtualization-client
@virtualization-hypervisor
@virtualization-tools
@x11
chrony
kexec-tools


%end

7.生成專門的目錄存放kickstart檔案

[[email protected]29 /var/ftp/pub/fulliso]# mkdir kickstart

[[email protected]29 /var/ftp/pub/fulliso]# mv ks7-desktop.cfg  ks7-mini.cfg kickstart/
#將編寫好的ks檔案放入kickstart目錄中,ks7-desktop.cfg是桌面完整版的配置
#ks7-mini.cfg是精簡mini版本的配置

8.製作啟動選單

[[email protected]29 /var/ftp/pub/fulliso]# cd isolinux/
#進入到啟動選單目錄
[[email protected]29 /var/ftp/pub/fulliso/isolinux]# vim isolinux.cfg 
#修改啟動選單

原有的內容都不變,在原有基礎上增加兩個label,這兩個label在啟動的時候會顯示出來。增加desktopl標籤和mini標籤,並且指明ks檔案的存放位置。

...
...
...
label desktop
  menu label Install ^desktop system
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/kickstart/ks7-desktop.cfg
label mini
  menu label Install an m^ini system
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/kickstart/ks7-mini.cfg
label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet

label check
  menu label Test this ^media & install CentOS 7
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet

menu separator # insert an empty line

# utilities submenu
menu begin ^Troubleshooting
  menu title Troubleshooting

label vesa
  menu indent count 5
  menu label Install CentOS 7 in ^basic graphics mode
  text help
        Try this option out if you're having trouble installing
        CentOS 7.
  endtext
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 xdriver=vesa nomodeset quiet

label rescue
  menu indent count 5
  menu label ^Rescue a CentOS system
  text help
        If the system will not boot, this lets you access files
        and edit config files to try to get it booting again.
  endtext
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rescue quiet

label memtest
  menu label Run a ^memory test
  text help
        If your system is having issues, a problem with your
        system's memory may be the cause. Use this utility to
        see if the memory is working correctly.
  endtext
  kernel memtest

menu separator # insert an empty line

label local
  menu label Boot from ^local drive
  localboot 0xffff

menu separator # insert an empty line
menu separator # insert an empty line

label returntomain
  menu label Return to ^main menu
  menu exit

8.製作光碟映象

[root@29 /var/ftp/pub]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 7.4 autoinstall" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /var/ftp/pub/auto_centos7.4.iso /var/ftp/pub/fulliso/
#這條命令很長,我講下要注意的幾個選項。
#-V "CentOS 7.4 autoinstall" 指的是映象的詳細資訊,可以修改為和自己操作系
#統版本一樣的名字
#-o /var/ftp/pub/auto_centos7.4.iso 指的是你自己製作的映象的存放位置。
#建議放在pub的目錄下,一會兒好用ftp拉取出來。
#最後一個引數是原始檔的位置,就是你要製作為iso映象的那一坨檔案在哪裡放。
#舉例而言,我一開始就把所有制作映象所需的檔案都放在了/var/ftp/pub/fulliso/目錄下

除了上面所說的一些點,其他內容都是沒必要進行修改的,直接照抄即可,如果你想知道其他選項含義,建議百度或者使用man
9.利用ftp拉取映象到windows下,然後拷貝至u盤。在安裝的時候選擇一下安裝桌面版或者最小版,剩下的就完全是自動化的了。

cobbler自動化安裝

當有更多的機器的時候,u盤自動化依然很累,我們需要一個更加一勞永逸的辦法。那就是給機房內的一臺電腦安裝上作業系統,然後給它搭建cobbler服務,讓其他的機器通過pxe進行自動化安裝。

文中的操作我是完全實驗過的,完全可行,但是有一點文中講的不是很清楚。就是有關ks檔案的設定。

這裡寫圖片描述

如果你使用u盤安裝,這部分配置檔案要寫成cdrom,如果使用cobbler安裝,這部分修改為http的url,確保這個url能夠訪問到映象。

下面貼上我使用cobbler自動安裝作業系統的ks檔案

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$GKfMMD9.$Cgag5pWRZcCLO52j1Hw4P1
# Use network installation
url --url="http://10.1.18.29/cobbler/ks_mirror/centos7.4"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx

# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="xfs" --size=40960
part /boot --fstype="xfs" --size=500
part /usr --fstype="xfs" --size=51200
part swap --fstype="swap" --size=4096

%packages
@^minimal
@base
-abrt-addon-ccpp
-abrt-addon-python
-abrt-cli
-abrt-console-notification
-bash-completion
-blktrace
-bridge-utils
-bzip2
-chrony
-cryptsetup
-dmraid
-dosfstools
-ethtool
-fprintd-pam
-gnupg2
-hunspell
-hunspell-en
-kmod-kvdo
-kpatch
-ledmon
-libaio
-libreport-plugin-mailx
-libstoragemgmt
-lvm2
-man-pages
-man-pages-overrides
-mdadm
-mlocate
-mtr
-nano
-ntpdate
-pinfo
-plymouth
-pm-utils
-rdate
-rfkill
-rng-tools
-rsync
-scl-utils
-setuptool
-smartmontools
-sos
-sssd-client
-strace
-sysstat
-systemtap-runtime
-tcpdump
-tcsh
-teamd
-time
-unzip
-usbutils
-vdo
-vim-enhanced
-virt-what
-wget
-which
-words
-xfsdump
-xz
-yum-langpacks
-yum-utils
-zip

%end

相關推薦

centos7.4批量自動化安裝pxecobbler製作自動化iso映象pxe安裝cobbler安裝

前言 學IT的人經常要去而作業系統,而裝作業系統大部分都是互動式的操作,也就是說安裝時需要有人在旁邊設定語言,時間,網路,或者點下一步,下一步這樣子,裝系統變成了一個人機互動的過程。如果裝一臺作業系統還可以,但是如果給機房裝作業系統,有多臺的作業系統

藍的成長記——追逐DBA4:追憶少年情愁,再探oracle安裝Linux下10g11g

***************************************宣告***************************************         個人在oracle路上的成長記錄,其中以藍自喻,分享成長中的情感、眼界與技術的變化與成長。敏

CesiumLab V1.4 分類3dtiles生成傾斜單體化樓層房間互動

我記得我是寫過一篇關於傾斜單體化的簡書文章的,但是現在找不到了。不過找不到也好,就讓他隨風逝去吧,因為當時我寫那篇文章的時候,就發現了cesium實際是有另一種更高效的單體化。就下面這個示例https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/index.html

CesiumLab V1.4 分類3dtiles生成傾斜單體化樓層房間交互

垂直 存儲 dac position ade bim 相機 ext dea 我記得我是寫過一篇關於傾斜單體化的簡書文章的,但是現在找不到了。不過找不到也好,就讓他隨風逝去吧,因為當時我寫那篇文章的時候,就發現了cesium實際是有另一種更高效的單體化。就下面這個示例http

MongoDB安裝Standalone on SUSECentOS

MongoDB提供了幾個安裝包: mongodb-org:負責安裝下面四個包的基礎包;mongodb-org-server:包含mongod後臺程式、以及相關的配置檔案和啟動指令碼;mongodb-org-mongos:包含mongos後臺程式;mongodb-org-s

Linux之必備軟體安裝搜狗輸入法qq等

假如我們剛剛安裝完Ubuntu系統之後,有很多必須的軟體需要安裝一下,這裡羅列一下: 本文回後續會一直更新,加入新的軟體的安裝辦法,敬請關注! 在安裝之前需要開啟terminal 1.更新所有軟體

Spark standalone模式的安裝spark-1.6.1-bin-hadoop2.6.tgzmasterslave1和slave2

 前期部落格 開篇要明白   (1)spark-env.sh 是環境變數配置檔案   (2)spark-defaults.conf   (3)slaves 是從節點機器配置檔案   (4)metrics.properties 是 監控   (5)log4j.

26ES中使用mget批量查詢api學習筆記,來自課程資料 + 自己整理

1、批量查詢的好處 就是一條一條的查詢,比如說要查詢100條資料,那麼就要傳送100次網路請求,這個開銷還是很大的,如果批量查詢的話,查詢100條資料,就只要傳送1次網路請求,網路請求的效能開銷縮減100倍。 2、mget的語法 (1)傳統的一條條的查詢的

Linux下MySQL5.7.18二進制包安裝無默認配置文件my_default.cnf

一點 utf8 user 二進制 width which 密碼 用戶 location 本文出處:http://www.cnblogs.com/wy123/p/6815049.html 最新在學習MySQL,純新手,對Linux了解的也不多,因為是下載

4類Storage方案AS開發實戰第四章學習筆記

uil sed base 改變 查詢語句 class getc tex dcim 4.1 共享參數SharedPreferences SharedPreferences按照key-value對的方式把數據保存在配置文件中,該配置文件符合XML規範,文件路徑是/data/

Linux安裝虛擬機器和雙系統兩種方法

一、VMware虛擬機器 1.下載並安裝VMware: ①https://my.vmware.com/cn/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/15_0 ②下載Ubuntu映象檔案:http

Linux下的軟體Mysql完全解除安裝包括其依賴和庫等殘留檔案

原文:https://blog.csdn.net/zeng308041977/article/details/75245795 使用yum安裝的時候會自動把依賴包安裝上,但是我們一般解除安裝的時候以為只要刪除之前安裝的那個包就可以了,其實不然。因為你使用yum方式安裝,其依賴包也會被自動

【設計模式-4】工廠模式簡單工廠,工廠方法,抽象工廠

簡單工廠模式(Simple Factory)   簡單工廠模式(Simple Factory Pattern):又稱為靜態工廠方法(Static Factory Method)模式。在簡單工廠模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義一個類來負責建立其

【CCF 201609-4】交通規劃最小的最短路徑樹 Dijkstra

題目抽象 要求所有結點與源結點連通,使得所有邊權之和最小。即求最小的最短路徑樹。 大致思路 演算法:通過Dijkstra演算法可以構建最短路徑樹,如何保證這棵樹最小呢?這就需要一些變形了: 每個結點需要記錄它的前驅邊,每次鬆弛的條件是u.d + e ≤ v.d,

Ubuntu系統安裝 win10+linux或者linux單系統都適用

1.下載ubuntu 去官網下載Ubuntu,一定去官網下載,不然安裝會出現黑屏等問題 2.利用軟碟通製作安裝U盤 2.1下載軟碟通: 在製作系統U盤的時候我們需要去下一個軟體——軟碟通,這個自己去百度搜索一下應該就能出來的。下載安裝完以後,我們開啟軟碟通的介面開

Jenkins Pipeline+Docker實現流水線自動化構建上百個專案共用一個指令碼方案

           Jenkins Pipeline是一套外掛,支援將連續輸送Pipeline實施和整合到Jenkins。Pipeline提供了一組可擴充套件的工具,用於通過PipelineDSL為程式碼建立簡單到複雜的傳送Pipeline。              對於

在python中使用pip安裝電腦裡同時裝了python2和python3

在電腦裡同時裝了python2和3,使用pip安裝時不能安裝到指定的python2或者3中,在網上搜了一下,可使用如下命令: 當Python2和Python3同時存在於windows上時,它們對

Linux系統安裝VMware 14+ CentOS 7,2018年最新

前情提要:作為一個正在學習資訊保安的大二狗,首先就是先安一個Linux系統,但是我在網上找了挺長時間,教程挺多,但是都是屬於比較老的那一種,並且經常出現小問題導致全錯,所以,我開始了新的探索,現在是2018年4月,下面是我安裝的全過程,這是一個絕對完整的教程,送給伸手黨。正題

ubuntu14.04,該如何分割槽安裝初學者或不用它作為生成環境使用

ubuntu14.04,實際上現在它的安裝很簡單了,全圖形介面,可以選擇母語,但是實際使用起來如果分割槽不當,會讓我們付出慘痛的代價,那麼我們應該怎麼分割槽安裝呢? 如果我們並不是把它作為專業的伺服器,或者部署在生產環境中,那麼我強烈建議只有兩個分割槽:1,swap,交換分

小白自學機器學習----3.令人頭禿的pytorch安裝 No module named 'tools.nnwrap' 錯誤

tensorflow 剛剛會寫基礎的模組了,今天找到研究方向的程式碼是pytorch實現的 總是看到這句話,人生苦短,我用pytorch 看來pytorch應該比tensorflow好學,但是!! pytorch的安裝,也太讓人頭禿了,接下來講講我是如何艱辛的安裝上pytorch   1.pychr