歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 基於 Kickstart 自動化安裝 CentOS 實踐

基於 Kickstart 自動化安裝 CentOS 實踐

日期:2017/2/28 14:01:23   编辑:Linux教程

前言

因為需要在浪潮的 x86 服務器中集中部署 CentOS 搭建基於 Hadoop 的大數據平台 , 平時接觸 SLES(SUSE Linux Enterprise Server) 較多並且已經實現基於 Autoyast 方式使用光盤或者 PXE 網絡自動化安裝 ( 後續會分享具體實現方法 )。 這次主要通過學習 Kickstart 實現最簡單的光盤方式自動化安裝 CentOS, 而網上的大多數教程並不完全適用於自身的環境 , 本文將不再贅述 Kickstart 相關概念 , 細節可參考擴展閱讀 。

Kickstart 是最為通用的 Linux 自動化安裝方法之一

擴展閱讀

  • CentOS - http://wiki.centos.org/zh/TipsAndTricks/KickStart
  • Fedora - https://fedoraproject.org/wiki/Anaconda/Kickstart/zh-cn

環境准備

定制系統

CentOS-6.4-x86_64

官方下載地址

安裝軟件包

代理上網小技巧 :export http_proxy=ip:port

yum -y install createrepo mkisofs

制作流程

目錄結構

拷貝 CentOS 原始鏡像內容 , 不做任何精簡

mkdir /mnt/centos
mount /dev/sr0 /mnt/centos
mkdir /tmp/iso
cp -r /mnt/centos/* /tmp/iso

增加 Kickstart 配置文件

文件路徑和安裝方式可自由定義

cd /tmp/iso/isolinux
# 修改引導 , 注意 ks= 部分 
vi isolinux.cfg

label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg

# 手動增加 Kickstart 配置文件 
vi ks.cfg
#Kickstart file automatically generated by anaconda.
#version=DEVEL

#Install OS instead of upgrade
# 表示是安裝 , 而不是升級 
install

#Use text mode install
# 文本方式安裝 
text

#Use network installation
# 使用網絡安裝 
#url --url=ftp://ip/centos
#Local installation Use CDROM installation media
# 使用光盤安裝 
cdrom

#Installation Number configuration
# 如果是 RedHat 的系統 , 會要求輸入 key, 這裡配置為跳過 , 如果不配置安裝時會停在那裡要求用戶輸入 key
#key –skip

#System language
# 語言環境 
#lang en_US.UTF-8
lang zh_CN.UTF-8

#System keyboard
# 鍵盤類型 
keyboard us

#Network information
# 網絡配置 
#network --device eth0 --bootproto dhcp --onboot yes

#Root password
#root 密碼 
rootpw chinaums

#Firewall configuration
# 禁用防火牆 
firewall --disabled

#SELinux configuration
# 禁用 selinux
selinux --disabled

#Run the Setup Agent on first boot
# 禁用第一次啟動時設置系統的向導 
firstboot --disable

#System authorization information
# 用戶認證配置 ,useshadow 表示使用本地認證 ,--passalgo 表示密碼加密算法 
authconfig --enableshadow --passalgo=sha512

#System timezone
# 設置時區為上海 
timezone --isUtc Asia/Shanghai

#System bootloader configuration
# 指明 bootloader 的安裝位置 , 指明驅動器的排序 , 指明操作系統安裝完成之後 , 向內核傳遞的參數 
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"

#Clear the Master Boot Record
# 清除 MBR 引導記錄 
zerombr yes

#Partition clearing information
# 清除硬盤上的所有數據 
clearpart --all --initlabel

#Disk partitioning information
# 自定義分區 

# 創建一個 200M 大小的分區掛載 /boot 類型為 ext4
part /boot --fstype=ext4  --size=200 --ondisk=sda

# 創建一個 20000M 大小的 SWAP 分區 
part swap --size=20000 --ondisk=sda

# 創建 / 目錄 
part / --fstype=ext4 --grow --size=1 --ondisk=sda

#Reboot after installation
# 設置完成之後重啟 
reboot --eject

#This packages is for CentOS 6.4
# 為 CentOS 6.4 定制的軟件包 
%packages
@base
@core
@chinese-support

# 增加安裝後運行腳本  
%post
#config service 
# 自定義服務 
service NetworkManager stop
chkconfig NetworkManager off

#eject cdrom
# 安裝完成彈出光碟  
#eject

#reboot
# 執行完畢後重啟  
#reboot -f 

# 結束自動化部署 
%end

生成依賴關系和 ISO 文件

注意路徑和命令的准確性

cd /tmp/iso
createrepo -g repodata/*comps.xml . 
mkisofs -o /tmp/CentOS-6.4_64_auto.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table  -joliet-long  -R -J -v -T /tmp/iso/

測試和建議

Linux 基礎教程:Linux Kickstart 自動安裝 http://www.linuxidc.com/Linux/2015-05/117877.htm

使用PXE+DHCP+Apache+Kickstart無人值守安裝CentOS5.8 x86_64 http://www.linuxidc.com/Linux/2012-12/76913p4.htm

Linux PXE無人值守安裝出現 PXE-E32:TFTP OPen timeout的解決辦法 http://www.linuxidc.com/Linux/2014-03/98986.htm

使用PXE結合kickstart 自動安裝Linux系統 http://www.linuxidc.com/Linux/2014-03/98014.htm

RHCE認證之無人值守安裝Linux系統(FTP+TFTP+DHCP+Kickstart+PXE) http://www.linuxidc.com/Linux/2013-10/91013.htm

PXE網絡裝機(有人值守與無人值守安裝) http://www.linuxidc.com/Linux/2013-07/87456.htm

更多CentOS相關信息見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14

Copyright © Linux教程網 All Rights Reserved