Kickstart 安裝centos7


 

以前是怎么安裝系統的

  • 光盤(ISO文件,光盤的鏡像文件)===》每一台物理機都得給一個光驅,如果用外置光驅的話,是不是每台機器都需要插一下
  • U盤:ISO鏡像刻錄到U盤==》需要每台機器都需要插一下
  • 並行安裝==》網絡安裝
  • 自動化安裝

備注:(WDS,需要安裝在Windows Server 2008)

Linux系統批量安裝

kickstart是RedHat公司開源的軟件,所以對CentOS兼容性最好。

原理:我們將手動安裝的所有的詳細步驟記錄到一個文件中,然后kickstart通過讀取這個文件就可以實現自動化安裝系統。

kickstart是一個項目的名稱。沒有這個軟件。使用者水平是高中以上

cobbler是對kickstart的所有組件的封裝。使用者水平是初中以上。本質上就是網頁版本的kickstart

kickstart的原理及組件

安裝DHCP服務

環境准備

[root@kickstart ~]# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

[root@kickstart ~]# uname -r

3.10.0-693.el7.x86_64

[root@kickstart ~]# getenforce

Disabled

[root@kickstart ~]# systemctl status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

Active: inactive (dead)

Docs: man:firewalld(1)

[root@kickstart ~]# hostname -I

10.0.0.201 172.16.1.201

 

安裝DHCP

yum -y install dhcp

 

配置DHCP

cat >>/etc/dhcp/dhcpd.conf<<EOF

subnet 172.16.1.0 netmask 255.255.255.0 {

range 172.16.1.100 172.16.1.199;

option subnet-mask 255.255.255.0;

default-lease-time 21600;

max-lease-time 43200;

next-server 172.16.1.201;

filename "/pxelinux.0";

}

EOF

啟動dhcp查看日志

[root@kickstart ~]# systemctl start dhcpd

[root@kickstart ~]# systemctl status dhcpd

tailf /var/log/messages

 

DHCP服務對kickstart系統的影響程度

 

新建空白虛擬機,建完后做快照。

 

TFTP沒有最終報錯

安裝TFTP服務

安裝

[root@kickstart ~]# yum -y install tftp-server

啟動

systemctl start tftp.socket

 

TFTP服務對kickstart系統的影響程度

 

上面報錯是在TFTP服務的根目錄找不到啟動文件pxelinux.0 下載

[root@kickstart ~]# cd /var/lib/tftpboot/ # TFTP服務的根目錄

[root@kickstart tftpboot]# ls

[root@kickstart tftpboot]#

syslinux是一個功能強大的引導加載程序,而且兼容各種介質。SYSLINUX是一個小型的Linux操作系統,它的目的是簡化首次安裝Linux的時間,並建立修護或其它特殊用途的啟動盤。如果沒有找到pxelinux.0這個文件,可以安裝一下。

 

yum -y install syslinux

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

 

首先排除最簡單故障原因:selinux是否關閉,防火牆是否關閉

上面的錯誤是因為pxelinux.0這個小系統的配置文件(default)不存在,或者文件名不對

 

如何找到這個配置文件

第一步:掛載鏡像

第二步

mkdir -p /var/www/html/CentOS7

mount /dev/cdrom /var/www/html/CentOS7

 

第三步:從鏡像中找到相關的配置文件

cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/

mkdir -p /var/lib/tftpboot/pxelinux.cfg

cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

 

啟動軟件安裝報錯

這是因為centos 文件沒有進行修改 跳過直接安裝http

安裝HTTP服務

作用1:提供自動應答文件下載

作用2:提供安裝系統所需的所有rpm包下載

 

[root@kickstart ~]# yum -y install httpd

[root@kickstart ~]# systemctl start httpd.service

 

檢查步驟

http://10.0.0.201/CentOS7/

curl http://172.16.1.201/CentOS7/

 

 

default配置文件

  1. [root@kickstart tftpboot]# pwd
  2. /var/lib/tftpboot
  3. [root@kickstart tftpboot]# cd pxelinux.cfg/
  4. [root@kickstart pxelinux.cfg]# vim default
  5. efault ks
  6. prompt 0
  7. label ks
  8.   kernel vmlinuz
  9.   append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
  10. 配置 網卡

創建ks.cfg文件

通常,我們在安裝操作系統的過程中,需要大量的和服務器交互操作,為了減少這個交互過程,kickstart就誕生了。使用這種kickstart,只需事先定義好一個Kickstart自動應答配置文件ks.cfg(通常存放在安裝服務器上),並讓安裝程序知道該配置文件的位置,在安裝過程中安裝程序就可以自己從該文件中讀取安裝配置,這樣就避免了在安裝過程中多次的人機交互,從而實現無人值守的自動化安裝。

生成kickstart配置文件的三種方法:

  • 方法1、 每安裝好一台Centos機器,Centos安裝程序都會創建一個kickstart配置文件,記錄你的真實安裝配置。如果你希望實現和某系統類似的安裝,可以基於該系統的kickstart配置文件來生成你自己的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位於/root/anaconda-ks.cfg)
  • 方法2、Centos提供了一個圖形化的kickstart配置工具。在任何一個安裝好的Linux系統上運行該工具,就可以很容易地創建你自己的kickstart配置文件。kickstart配置工具命令為redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4,RHEL5).網上有很多用CentOS桌面版生成ks文件的文章,如果有現成的系統就沒什么可說。但沒有現成的,也沒有必要去用桌面版,命令行也很簡單。
  • 方法3、閱讀kickstart配置文件的手冊。用任何一個文本編輯器都可以創建你自己的kickstart配置文件。
  1. [root@CentOS-7 ks_config]# vim CentOS7-ks.cfg
  2.  
  3. # Kickstart Configurator for CentOS 7 by yao zhang
  4. Install 告知安裝程序,這是一次全新安裝,而不是升級upgrade。
  5. url --url=http://172.16.1.201/CentOS7/ 通過FTP或HTTP從遠程服務器上的安裝樹中安裝。
  6. text 使用文本模式安裝。
  7. lang en_US.UTF-8 設置在安裝過程中使用的語言以及系統的缺省語言
  8. keyboard us 設置系統鍵盤類型。keyboard us
  9. zerombr 清除mbr引導信息。系統引導相關配置。
  10. bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
  11.  --location=,指定引導記錄被寫入的位置.有效的值如下:mbr(缺省),partition(在包含內核的分區的第一個扇區安裝引導裝載程序)或none(不安裝引導裝載程序)。
  12. --driveorder,指定在BIOS引導順序中居首的驅動器。
  13.  --append=,指定內核參數.要指定多個參數,使用空格分隔它們。
  14. network --bootproto=static --device=eth1 --ip=172.16.1.202 --netmask=255.255.255.0 –activate
  15. --bootproto=[dhcp/bootp/static]中的一種,缺省值是dhcp。bootp和dhcp被認為是相同的
  16. --ip=,要安裝的機器的IP地址. --netmask=,安裝的系統的子網掩碼.
  17. network --hostname=Cobbler --hostname=,安裝的系統的主機名.
  18. #network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
  19. --bootproto=[dhcp/bootp/static]中的一種,缺省值是dhcp。bootp和dhcp被認為是相同的。 --onboot=,是否在引導時啟用該設備.
  20. timezone --utc Asia/Shanghai 設置系統時區。timezone --utc Asia/Shanghai
  21. authconfig --enableshadow --passalgo=sha512 系統認證信息。authconfig --enableshadow --passalgo=sha51設置密碼加密方式為sha512?啟用shadow文件
  22. clearpart --all –initlabel 清空分區。clearpart --all –initlabel --all 從系統中清除所有分區,--initlable 初始化磁盤標簽 磁盤分區。
  23. part /boot --fstype xfs --size 1024 --size=,以MB為單位的分區最小值.在此處指定一個整數值,如500.不要在數字后面加MB。
  24. part swap --size 1024
  25. part / --fstype xfs --size 1 –grow --fstype=,為分區設置文件系統類型.有效的類型為ext2,ext3,swap和vfat。
  26. firstboot –disable
  27. selinux --disabled
  28. firewall --disabled
  29. logging --level=info
  30. reboot
  31.  
  32. %packages
  33. @^minimal 指定安裝的包組
  34. @compat-libraries
  35. @debugging
  36. @development
  37. tree
  38. nmap
  39. sysstat
  40. lrzsz
  41. dos2unix
  42. telnet
  43. wget
  44. vim
  45. bash-completion
  46. %end
  47.  
  48. %post
  49. systemctl disable postfix.service
  50. %end

保存,啟動安裝虛擬機,就可以一件化安裝。

不該出現的錯誤

報錯原因:selinux沒關


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM