運維自動化------系統安裝

本章內容系統安裝過程配置anaconda自動化安裝系統製做引導光盤和U盤DHCP服務PXE安裝系統  cobbler企業級應用

安裝程序 html

CentOS系統安裝linux

系統啓動流程:web

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

anaconda: 系統安裝程序算法

gui:圖形窗口vim

tui: 基於圖形庫curses的文本窗口windows

安裝程序啓動過程  centos

MBR:isolinux/boot.cat安全

stage2: isolinux/isolinux.binbash

 配置文件:isolinux/isolinux.cfg

每一個對應的菜單選項:

加載內核:isolinuz/vmlinuz

向內核傳遞參數:append initrd=initrd.img ...

裝載根文件系統,並啓動anaconda

默認啓動GUI接口

如果顯式指定使用TUI接口:向內核傳遞text參數便可

(1)按tab鍵,在後面增長text

(2)按ESC鍵:boot: linux text 「純字符方式安裝系統,不須要圖形界面「

手動安裝界面

 

 anaconda工做過程

Anaconda安裝系統分紅三個階段:

一、安裝前配置階段

  • 安裝過程使用的語言
  • 鍵盤類型
  • 安裝目標存儲設備
      • Basic Storage:本地磁盤
      • 特殊設備:iSCSI
  • 設定主機名
  • 配置網絡接口
  • 時區
  • 管理員密碼
  • 設定分區方式及MBR的安裝位置
  • 建立一個普通用戶
  • 選定要安裝的程序包

二、安裝階段

  • 在目標磁盤建立分區,執行格式化操做等
  • 將選定的程序包安裝至目標位置
  • 安裝bootloader和initramfs

三、圖形模式首次啓動

  • iptables
  • selinux(安全機制)
  • core dump

anaconda

anaconda負責安裝系統嚮導,默認爲GUI界面,若是咱們使用ks自動應答安裝的話建議使用TUI界面來安裝,在安裝啓動界面咱們能夠按esc鍵來本身手動指定安裝啓動選項anaconda選項:

1)boot:linux askmethod 在稍後的安裝中手動選擇安裝源

本地光盤、硬盤、NFS、FTP、HTTP

2)linux dd 加載驅動盤

3)linux ks=xxx   指定安裝ks文件

  • 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
  • NFS server:ks=nfs:host:/path/to/KICKSTART_FILE

4)linux nonet 不啓用網絡

5)linux noprobe 不裝載其餘的硬件設備

6)linux rescue 進入救援模式

7)linux 正常安裝

8)local 從硬盤啓動

9)linux text 以字符界面安裝

10)linux ip={DHCP | 192.168.0.1} netmask=255.255.255.0 gateway=192.168.0.1 dns=114.114.114.114 ks=http://192.168.0.1/ks.cfg 設置IP並從網絡獲取ks文件

11)linux ip={DHCP | 192.168.0.1} netmask=255.255.255.0 gateway=192.168.0.1 dns=114.114.114.114 repo=http://192.168.0.1  設置IP地址並指定從repo源安裝

  • ip=IPADDR
  • netmask=MASK
  • gateway=GW
  • dns=DNS_SERVER_IP
  • ifname=NAME:MAC_ADDR

12)linux vnc vncpassword="PASSWORD" 使用vnc調用安裝界面

# ls -1 isolinux/
boot.cat  模擬mbr文件
boot.msg  
grub.conf grub的配置文件
initrd.img  ramdisk文件
isolinux.bin  grub的第二階段
isolinux.cfg  配置文件(啓動菜單定製文件)
memtest  內存測試文件
splash.jpg  背景圖片
TRANS.TBL
vesamenu.c32  光盤啓動的圖形界面菜單風格
vmlinuz  內核文件

13:啓動菜單的配置文件isolinux/isolinux.cfg

# cat isolinux/isolinux.cfg 
default vesamenu.c32 提供圖形菜單風格
#prompt 1
timeout 600 菜單選擇超時時間

display boot.msg

menu background splash.jpg  背景圖片
menu title Welcome to CentOS 6.9!  菜單上方提示信息
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux  一條菜單
  menu label ^Install or upgrade an existing system
  menu default 默認選擇
  kernel vmlinuz
  append initrd=initrd.img  向內核傳遞參數

實驗:若是想加圖形界面,方法以下

1:配好yum 源:按裝包yum grouplistall "gonme desktop" yum grouplist:查看包組

2:yum install bash-completion 若是是最小化安裝的系統則安裝補全包 用 rmp -qa "bash" 查找出

若是已經裝好,則exit從新登陸,只有重新登陸裝的包會生效

3:systemctl isolate graphical.target --------- 或者init5

4:修改開機啓動運行模式,

 

kickstart自動應答文件

kickstart爲anaconda安裝系統過程當中自動應答已配置好的選項,實現無人值守安裝系統。

事先把咱們手動安裝時的那些設置,如分區,語言,口令之類的安裝的包存在應答文件中,安裝嚮導讀取應答文件內容自動安裝,

ks文件格式:三部分

命令段:

---必須指定---

authconfig: 認證方式配置

  authconfig --useshadow --passalgo=sha512

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

   bootloader --location=mbr --driveorder=sda – append="crashkernel=auto rhgb quiet"

keyboard

lang

timezone

rootpw

authconfig --enableshadow

bootloader --location=mbr --password=******

driverdisk 指定驅動盤

firewall --enable --ssh,--disabled

firstboot --disbaled

halt 完成後關機

reboot 完成後重啓

text|graphical(default) 文本|圖像

key --skip 跳過安裝號碼,適用於rhel版本

keyboard: 設定鍵盤類型

lang: 語言類型

part: 建立分區

rootpw: 指明root的密碼

timezone: 時區

---可選命令---

clearpart --all,--linux,--none(default) --initlabel(初始化分區標記)

autopart 自動分區

     ignoredisk --drives=drive1,drive2忽略硬盤

     autostep 跳過可選項,付默認值

     part or partition /boot --fstype ext4 --size=200

     install OR upgrade

     text: 文本安裝界面

     network

     firewall

     selinux

     halt

     poweroff

     reboot

     repo

     user:安裝完成後爲系統建立新用戶

     url: 指明安裝源

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

命令段:指明各類安裝前配置,如鍵盤類型等
程序包段:指明要安裝的程序包組或程序包,不安裝的程序包等
軟件包選擇段:%package
     @group_name 包組名
     package 一個個包
     -package 不裝的包
     %end
腳本段:
預安裝腳本%pre
後安裝腳本%post
準備應答文件:
方法一:經過現成系統拷貝一個文件直接參考 /root/anaconda-ks.cfg  來編輯, ,而後使用ksvalidator命令來檢查是否有語法錯誤,可是這文件的格式有必定的要求,麻煩
方法二:使用system-config-kickstart 圖形界面工具生成ks文件。

 

 
使用 system-config-kickstart 來建立ks文件(CentOS6.x)
檢查ks文件的語法錯誤:ksvalidator ksvalidator /PATH/TO/KICKSTART_FILE
一、配置yum源、安裝軟件並啓動,須要安裝圖形界面
二、按需配置
注意在centos7上的選擇安裝包的那一項默認不出來選項,咱們能夠把base的倉庫名改成development
 
root@centos7 ~]# systemctl start httpd 啓動http服務
[root@centos7 ~]# ss -ntl 80端口打開就能夠訪問了
[root@centos7 ~]# cd /var/www/html 默認存放頁面的文件
[root@centos7 /var/www/html]# ls
[root@centos7 /var/www/html]# mkdir -pv centos/7/os/x8_64/ 模仿阿里雲yum源以建立文件夾方式把centos光盤放到這個頁面上
mkdir: created directory ‘centos’
mkdir: created directory ‘centos/7’
mkdir: created directory ‘centos/7/os’
mkdir: created directory ‘centos/7/os/x8_64/’
[root@centos7 /var/www/html]# mount /dev/sr0 centos/7/os/x86_64/ 掛載光盤到這個centos/7/os/x86_64/目錄中
mount: /dev/sr0 is write-protected, mounting read-only
[root@centos7 /var/www/html]# ls centos
 
yum源生成

 
[root@centos7 ~/.ssh]# ssh-keygen                           在centos7上先生成key  
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:9xImk70qDENHI8D4aJlqNewV2o3/RUGm7njgz6ZIBqs root@centos7
The key's randomart image is:
+---[RSA 2048]----+
| o..      .o     |
|. . ..o   o.     |
| o+ oo+. .  .    |
|.+.=.+...o .     |
|o ooo...S.*      |
|.. .= ..+= =     |
|.  . * o.o+ .    |
|  . o + ++ .     |
| E   . o+o       |
+----[SHA256]-----+
[root@centos7 ~/.ssh]# cat id_rsa.pub        查看公鑰文件

 
ks.cfg配置文件,以上步驟生成:以下

ks文件中LVM邏輯卷分區格式

 
part /boot --fstype xfs --size=200 --ondisk=sda
part pv.2 --size=0 --grow --ondisk=sda
volgroup myvg --pesize=4096 pv.2
logvol / --fstype xfs --name=lv_root --vgname=myvg --size=10240 --grow
logvol swap --fstype swap --name=lv_swap --vgname=myvg --size=1024 --grow --maxsize=2048
 

ks文件中使用系統自動分區格式

# Partition clearing information
clearpart --all --initlabel 
autopartc

 實驗:在centos7上經過應答文件配合ftp 服務實現自動化安裝

 

1:yum install vsftpd systemctl start vsftpd 啓動該服務 安裝ftp服務,

 將會自動在這個目錄下生成相應的文件夾

2:cd /var/ftp/pub 將會自動在這個目錄下生成相應的文件夾,
3:[root@centos7 /var/ftp/pub]# mkdir centos7 建立該文件夾
4:[root@centos7 /var/ftp/pub]# mount /dev/sr0 centos7/ 將光盤掛載到
   centos7上
5:[root@centos7 /var/ftp/pub]# setenforce 0 關閉安全機制
6:訪問
7:[root@centos7 /var/ftp/pub]# mv /root/ks7.cfg 將拷貝的應答文件複製到當前目錄下,而且進行修改
8:製做好的應答文件
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled #關閉防火牆
# Install OS instead of upgrade
install
# Use network installation
cdrom 光盤引導
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info

# System timezone
timezone  Africa/Abidjan
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=partition
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
part /boot --fstype=ext4 --size=300
part / --fstype=ext4 --size=20480
part /app --fstype=ext4 --size=10240

part swap --size=2048
%post
rm -rf /etc/yum.repo.d/*
cat > /etc/yum.repo.d/media.repo <<EOF
[base]
name=base
baseurl=file:///media/
gpgcheck=0
EOF

useradd wang
echo 111111|passwd --stdin wang
%end

%packages
@base
@core
autofs
%end


製做自動應答光盤
咱們如今已經有一個ks文件了,接下來須要把ks文件加入到光盤文件中來實現自動安裝,就不用每次用過光盤引導輸入開ks ..........一大長串字符了。
一、準備安裝文件
[root@centos6 /data]# mkdir boot
[root@centos6 /data]# cp -r /media/isolinux/ /data/boot
[root@centos6 /data]# mkdir ksdir
[root@centos6 /data]# cp /root/ks6.cfg  ksdir/
2:修改配置文件

label linux
    menu label ^Auto Install an system
    kernel vmlinuz
    append initrd=initrd.img ks=cdrom:/ksdir/ks6.cfg
label vesa
    menu label Install ^Manual centos
    kernel vmlinuz
    append initrd=initrd.img reop=http://192.168.1.12/centos/6/os/x86_64/
label local
    menu label Boot from ^local drive
    menu default
    localboot 0xffff
三、製做ISO文件,

[root@centos7 ~]#mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c
isolinux/boot.cat -o /root/boot.iso /data/boot:注意:以上相對路徑都是相對於光盤的根,和工做目錄無關
一 :製做完整的iso 文件,上面的步驟知識光盤應道,仍是要手動安裝
1[root@centos6 ~]# cp -r /media/ /data/centos6 複製光盤下全部的內容,包括隱藏文件,複製後命名爲centos6
2[root@centos6 /data]# find -name TRANS.TBL 刪除文件夾全部的這種文件
[root@centos6 /data]# find -name TRANS.TBL -exec rm {} \; 刪除文件夾全部的這種文件
3[root@centos6 /data/centos6]# rm -rf repodata/ 刪除此文件夾,從新生成新的
4:[root@centos6 /data/centos6]# createrepo -g /media/repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml  .
(包的分組) 從新建立yum 源的yuan數據
5:[root@centos6 /data/ksdir]# vim ks6.cfg 修改應答文件中的安裝方法,將網絡改成cdrom
6:[root@centos6 /data/centos6/isolinux]# vim isolinux.cfg 修改啓動菜單
label linux
    menu label ^Auto Install an system
    menu default
    kernel vmlinuz
    append initrd=initrd.img ks=cdrom:/ksdir/ks6.cfg
label manual
    menu label ^Manual installed an system
    kernel vmlinuz
    append initrd=initrd.img
label local
    menu default
    menu label Boot from ^local drive
    localboot 0xffff
 
7:[root@centos6 ~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c
isolinux/boot.cat -o /root/centos6.9.iso /data/centos6/ 刻光盤
5:建立U盤啓動盤 dd if=/dev/sr0 of=/dev/sdb
補充:yum安裝sz 命令:yum install -y lrzsz

 

mkisofs命令

  • -o 指定映像文件的名稱
  • -b 指定在製做可開機光盤時所需的開機映像文件
  • -c 製做可開機光盤時,會將開機映像文件中的 no-eltorito-catalog 所有內容做成一個文件
  • -no-emul-boot 非模擬模式啓動
  • -boot-load-size 4 設置載入部分的數量
  • -boot-info-table 在啓動的圖像中現實信息
  • -R 或 -rock 使用 Rock RidgeExtensions
  • -J 或 -joliet 使用 Joliet 格式的目錄與文件名稱
  • -v 或 -verbose 執行時顯示詳細的信息
  • -T 或 -translation-table 創建文件名的轉換表,適用於不支持 Rock RidgeExtensions 的系統上

 

DHCP服務
 
網絡配置 靜態指定
     動態獲取: bootp:boot protocol MAC與IP一一靜態對應 bootpIP地址固定
       dhcp:加強的bootp,動態 #用較少的ip給較多的計算機提供使用
DHCP: (Dynamic Host Configuration Protocol)
  動態主機配置協議 局域網協議,UDP協議
主要用途
  用於內部網絡和網絡服務供應商自動分配IP地址給用戶
  用於內部網絡管理員做爲對全部電腦做集中管理的手段
♦ 使用場景
  自動化安裝系統
   解決IPV4資源不足問題

 

DHCP共有八種報文

DHCP DISCOVER:客戶端到服務器

DHCP OFFER :服務器到客戶端
DHCP REQUEST:客戶端到服務器
DHCP ACK :服務器到客戶端
DHCP NAK:服務器到客戶端,通知用戶沒法分配合適的IP 地址
DHCP DECLINE :客戶端到服務器,指示地址已被使用
DHCP RELEASE:客戶端到服務器,放棄網絡地址和取消 剩餘的租約時間
DHCP INFORM:客戶端到服務器, 客戶端若是須要從DHCP 服務器端獲取更爲詳細的配置信息,則發送Inform報文向 服務器進行請求,極少用到
續租
  50% :租賃時間達到50%時來續租,剛向DHCP服務器發向新的DHCPREQUEST 請求。若是dhcp服務沒有拒絕的理由,則迴應DHCPACK信息。當DHCP客戶端 收到該應答信息     後,就從新開始新的租用週期
  87.5%:若是以前DHCP Server沒有迴應續租請求,等到租約期的7/8時,主機 會再發送一次廣播請求
♦ 同網段多DHCP服務
  DHCP服務必須基於本地
  先到先得的原則
♦ 跨網段
  RFC(請求入解) 1542 Compliant Routers #能夠經過路由器
  dhcrelay: 中繼 #能夠找代理,事先知道dhcp的服務器,若是發現有客戶端的請求經過單播向dhcp服務器要一個地址,而後給客戶端
一般狀況下 能夠在路由器上在網卡接口上配一個代理,啓用次功能
♦ 相關協議
  Arp 免費arp:
  rarp:把mak地址解析成ip地址,當本身的mak地址是固定的,就向dhcp服務器尋求相對應的ip地址,比較固定
DHCP服務實現
  1Linux DHCP協議的實現程序:dhcp, dnsmasq(dhcp,dns)
   2 Dhcp Server
     /usr/sbin/dhcpd
      /etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd
      /etc/dhcp/dhcpd6.conf--> /etc/rc.d/init.d/dhcpd6
    /usr/sbin/dhcrelay
      /etc/rc.d/init.d/dhcrelay
    dhcp server:67/udp
    dhcp client: 68/udp
    dhcpv6 client:546/udp
3 Dhcp client
    dhclient
    自動獲取的IP信息: /var/lib/dhclient
DHCP配置文件
  dhcpd.conf: 幫助參考:man 5 dhcpd.conf
全局配置
subnet {
...
}
host {
}
  地址分配記錄: /var/lib/dhcpd/dhcpd.leases
   其它配置選項:
    filename: 指明引導文件名稱
    next-server:提供引導文件的服務器IP地址
  示例:
    filename "pxelinux.0";
    next-server 192.168.100.100;
  檢查語法 service dhcpd configtest
dhcpd.conf示例
   option domain-name "magedu.com";
   option domain-name-servers 192.168.0.1,8.8.8.8;
  default-lease-time 86400;
  max-lease-time 86400;
  subnet 192.168.100.0 netmask 255.255.255.0 {
    range 192.168.100.1 192.168.100.200;
    option routers 192.168.100.1;
  }
 
 
PXE介紹
PXE: Preboot Excution Environment 預啓動執行環境 Intel公司研發 基於Client/Server的網絡模式,支持遠程主機經過網絡從遠端服務器下載 映像,並由此支持經過網絡啓動操做系統 PXE能夠引導和安裝Windows,linux等多種操做系統
 
pxe工做原理
  1. 1:Client向PXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),若是合法則返回Client的IP地址,同時將啓動文件pxelinux.0的位置信息一併傳送給Client
  2. :2:Client向PXE Server上的TFTP發送獲取pxelinux.0請求消息,TFTP接收到消息以後再向Client發送pxelinux.0大小信息,試探Client是否滿意,當TFTP收到Client發回的贊成大小信息以後,正式向Client發送pxelinux.0
  3. Client執行接收到的pxelinux.0文件
  4. Client向TFTP Server發送針對本機的配置信息文件(在TFTP 服務的pxelinux.cfg目錄下),TFTP將配置文發回Client,繼而Client根據配置文件執行後續操做。
  5. Client向TFTP發送Linux內核請求信息,TFTP接收到消息以後將內核文件發送給Client
  6. Client向TFTP發送根文件請求信息,TFTP接收到消息以後返回Linux根文件系統
  7. Client啓動Linux內核
  8. Client下載安裝源文件,讀取自動化安裝腳本
 
PXE自動化安裝CentOS 7
pxe+dhcpd+tftp-server+httpd (實現基於網絡的自動化安裝)
一:安裝前準備:  
關閉selinux
1. 永久有效
修改 /etc/selinux/config 文件中的 SELINUX="" 爲 disabled ,而後重啓。
2. 即時生效
setenforce 0
 關閉防火牆
1. 永久性生效
開啓:chkconfig iptables on
關閉:chkconfig iptables off
2. 即時生效,重啓後失效
開啓:service iptables start
關閉:service iptables stop
[root@centos7 ~]# systemctl stop firewalld
3:[root@centos6 ~]# ntpdate 192.168.0.1同步時間
二:安裝軟件包 :
httpd---tftp-server--- dhcp ---syslinux(至關於grub用來引導程序)--- system-config-kickstart
[root@centos7 ~]# yum install httpd tftp-server dhcp syslinux
三:配置文件共享服務: yum倉庫路徑
[root@centos7 ~]# systemctl enable httpd
[root@centos7 ~]# systemctl start httpd
[root@centos7 ~]# cd /var/www/html/
[root@centos7 /var/www/html]# mkdir -pv centos/7/os/x8_64/
[root@centos7 /var/www/html]# mount /dev/sr0 centos/7/os/x8_64/
四:準備kickstart文件(應答文件)
/var/www/html/ksdir/ks7.cfg 注意:權限
[root@centos7 /var/www/html]# mkdir ksdir
[root@centos7 ~]# mv ks7.cfg /var/www/html/ksdir/
[root@centos7 /var/www/html/ksdir]# chmod +x ks7.cfg
五:配置tftp服務 啓動tftp服務
systemctl enable tftp.socket
systemctl start tftp.socket
六:配置DHCP服務
[root@centos7 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@centos7 ~]# vim /etc/dhcp/dhcpd.conf
log-facility local7; #記錄日誌級別
subnet 192.168.30.0 netmask 255.255.255.0 { #分配子網,和本身主機一個網段
range 192.168.30.110 192.168.1.254; #地址池
option domain-name-servers 114.114.114.114,1.1.1.1; #DNS
option domain-name "laowang.com"; #搜索域
option routers 192.168.30.1; #路由網關
default-lease-time 600; #默認租約時間
max-lease-time 7200; #最大租約時間
next-server 192.168.30.110; #*指向tftp服務器地址,此處指向本機
filename "pxelinux.0"; #pxe文件名,系統默認爲pxelinux.0
}
systemctl enable dhcpd 開機自啓動
systemctl start dhcpd
七:準備相關文件
[root@centos7 ~]# cd /var/lib/tftpboot
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/{pxelinux.0,menu.c32} (菜單風格)/var/lib/tftpboot/
cp /media/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /media/isolinux/isolinux.cfg(菜單) /var/lib/tftpboot/pxelinux.cfg/default
文件列表以下:
/var/lib/tftpboot/
├── initrd.img
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│ └── default
└── vmlinuz
準備啓動菜單
Vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title Centos7 《大標題》
label auto
menu label ^Auto Install CentOS 7 自動安裝
kernel vmlinuz
append initrd=initrd.img ks=http://http://192.168.1.12/ksdir/ks.cfg(應答文件路徑)
label manual 手動安裝
menu label Manual Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.1.12/centos/7/os/x8_64/手動安裝)
label local
menu default
menu label ^Boot from local drive
localboot 0xffff

 

PXE自動化安裝CentOS6
一:安裝前準備:關閉防火牆和SELINUX,DHCP服務器靜態IP(同上)
二:安裝相應軟件包
[root@centos7 ~]# yum install httpd tftp-server dhcp syslinux
chkconfig tftp on
chkconfig xinetd on
chkconfig httpd on
chkconfig dhcpd on
service httpd start
service xneted start
三: 準備Yum 源和相關目錄
[root@centos6 ~]# cd /var/www/html/
[root@centos6 /var/www/html]# mkdir -pv centos/6/os/x8_64/
[root@centos6 /var/www/html]# mount /dev/sr0 centos/6/os/x8_64/
四:準備kickstart文件
[root@centos7 /var/www/html]# mkdir ksdir
[root@centos7 ~]# mv ks6.cfg /var/www/html/ksdir/
注意權限:chmod 644 /var/www/html/ksdir/ ks6.cfg
五: 準備相關的啓動文件
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cd /media/images/pxeboot/
cp vmlinuz initrd.img /var/lib/tftpboot
Cd /media/isolinux/
cp boot.msg vesamenu.c32 splash.jpg /var/lib/tftpboot
六: 準備啓動菜單文件
cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32 指定菜單風格
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to wang CentOS 6
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label auto
menu label ^Automatic Install Centos6
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.1.7/ksdir/ ks6.cfg
label manual
menu label ^Manual Install Centos
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.1.7/centos/6/os/x8_64/
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
 
七:目錄結構以下:
tree /var/lib/tftpboot/
/var/lib/tftpboot/
├── boot.msg
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│ └── default
├── splash.jpg
├── vesamenu.c32
└── vmlinuz
1 directory, 7 files
八: 配置dhcp服務
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
option domain-name "magedu.com";
option domain-name-servers 192.168.100.1;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.1 192.168.100.200;
option routers 192.168.100.1;
filename "pxelinux.0";
next-server 192.168.100.100;
}
service dhcpd start
obbler
快速網絡安裝linux操做系統的服務,支持衆多的Linux發行版:Red Hat、 Fedora、CentOS、Debian、Ubuntu和SuSE,也能夠支持網絡安裝windows ,PXE的二次封裝,將多種安裝參數封裝到一個菜單 Python編寫 提供了CLI和Web的管理形式cobbler在epel源中,安裝時須要配置epel源。
 
一:cobbler 工做流程
client裸機配置了從網絡啓動後,開機後會廣播包請求DHCP服務器(cobbler server)
發送其分配好的一個IP
DHCP服務器(cobbler server)收到請求後發送responese,包括其ip地址
client裸機拿到ip後再向cobbler server發送請求OS引導文件的請求
cobbler server告訴裸機OS引導文件的名字和TFTP server的ip和port
client裸機經過上面告知的TFTP server地址通訊,下載引導文件
client裸機執行執行該引導文件,肯定加載信息,選擇要安裝的os,期間會再向
cobbler server請求kickstart文件和os image
cobbler server發送請求的kickstart和os iamge
client裸機加載kickstart文件
client裸機接收os image,安裝該os image
二:cobbler 介紹(藍色字體是具體步驟)
1:安裝包
cobbler 基於EPEL源 只裝兩包其餘的包自動會安裝
2;cobbler 服務集成
PXE
DHCP
rsync
Http
DNS
Kickstart
IPMI 電源管理
3:檢查cobbler環境
cobbler check
三:cobbler 相關術語
1:發行版:
表示一個操做系統版本,它承載了內核和 initrd 的信息,以及內核參數等其餘數據
2:配置文件:
包含一個發行版、一個 kickstart 文件以及可能的存儲庫,還包含更多特定的內核參數等其餘數據
3:系統:
表示要配置的主機,它包含一個配置文件或一個鏡像,還包含 IP 和 MAC 地址、電源
管理(地址、憑據、類型)以及更爲專業的數據等信息
4:存儲庫:
保存一個 yum 或 rsync 存儲庫的鏡像信息
5:鏡像:
可替換一個包含不屬於此類別的文件的發行版對象(例如,沒法分爲內核和 initrd 的對象)
四:cobbler 各類配置目錄說明
1:安裝:yum install cobbler dhcp
2:配置文件目錄 /etc/cobbler
/etc/cobbler/settings : cobbler 主配置文件
/etc/cobbler/iso/: iso模板配置文件
/etc/cobbler/pxe: pxe模板文件
/etc/cobbler/power: 電源配置文件
/etc/cobbler/user.conf: web服務受權配置文件
/etc/cobbler/users.digest: web訪問的用戶名密碼配置文件
/etc/cobbler/dhcp.template : dhcp服務器的的配置末班
/etc/cobbler/dnsmasq.template : dns服務器的配置模板
/etc/cobbler/tftpd.template : tftp服務的配置模板
/etc/cobbler/modules.conf : 模塊的配置文件
五:cobbler 目錄介紹
1:數據目錄
/var/lib/cobbler/config/: 用於存放distros,system,profiles 等信息配置文件
/var/lib/cobbler/triggers/: 用於存放用戶定義的cobbler命令
/var/lib/cobbler/kickstart/: 默認存放kickstart文件
/var/lib/cobbler/loaders/: 存放各類引導程序
2:鏡像目錄
/var/www/cobbler/ks_mirror/: 導入的發行版系統的全部數據
/var/www/cobbler/images/ : 導入發行版的kernel和initrd鏡像用於遠程網絡啓動
/var/www/cobbler/repo_mirror/: yum 倉庫存儲目錄
3:日誌目錄
/var/log/cobbler/installing: 客戶端安裝日誌
/var/log/cobbler/cobbler.log : cobbler日誌
六:cobbler 命令介紹
cobbler commands介紹
cobbler check 覈對當前設置是否有問題
cobbler list 列出全部的cobbler元素
cobbler report 列出元素的詳細信息
cobbler sync 同步配置到數據目錄,更改配置最好都要執行下
cobbler reposync 同步yum倉庫
cobbler distro 查看導入的發行版系統信息
cobbler system 查看添加的系統信息
cobbler profile 查看配置信息
七:cobbler 重要的參數
/etc/cobbler/settings中重要的參數設置
default_password_crypted: "$1$gEc7ilpP$pg5iSOj/mlxTxEslhRvyp/"
manage_dhcp:1
manage_tftpd:1
pxe_just_once:1
next_server:< tftp服務器的 IP 地址>
server:<cobbler服務器的 IP 地址>
八:
九:cobbler 報錯解決
執行Cobbler check報錯解決方式
1:修改/etc/cobbler/settings文件中的server參數的值爲提供cobbler服務的主機相應的IP地址或主機名
2:修改/etc/cobbler/settings文件中的next_server參數的值爲提供PXE服務的主機相應的IP地址
3:若是當前節點能夠訪問互聯網,執行「cobbler get-loaders」命令便可;不然,
須要安裝syslinux程序包,然後複製/usr/share/syslinux/{pxelinux.0,memu.c32}
等文件至/var/lib/cobbler/loaders/目錄中
4:執行「chkconfig rsync on」命令便可
5:執行「openssl passwd -1 生成密碼,並用其替換/etc/cobbler/settings文件 default_password_crypted參數的值
十:cobbler 相關管理
1:下載啓動菜單:
聯網:cobbler get-loaders
不聯網:cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot
2:管理distro
cobbler import --name=centos-6.9-x86_64 --path=/media/cdrom --arch=x86_64
3:管理profile
cobbler profile add --name=centos-6.9-x86_64-basic
--distro=centos-6.9-x86_64 --kickstart= /var/lib/cobbler/kickstarts/centos-6.9-x86_64.cfg
十一:cobbler 命令
1:查看profiles
cobbler profile list
2:查看引導文件
cat /var/lib/tftpboot/pxelinux.cfg/default
3:同步cobbler配置
cobbler sync
4:多系統引導方案
cobbler import --name=CentOS-7-x86_64 --path=/media/cdrom
cobbler distro list
cobbler profile list
cobbler sync
十二:cobbler 實現步驟
1:安裝包,並設置服務
2:檢查配置
3:根據上面提示修改配置
4:下載啓動相關文件菜單
5:配置DHCP服務
6:分別導入centos的安裝源,並查看
7:準備kickstart文件並導入cobbler
8:測試
十三:cobbler的web管理實現
1:cobbler-web
提供cobbler的基於web管理界面,epel源
yum install cobbler-web
2:認證方式
認證方法配置文件:/etc/cobbler/modules.conf
支持多種認證方法:
authn_configfile
authn_pam
3:使用authn_configfile模塊認證cobbler_web用戶
vim /etc/cobbler/modules.conf
[authentication]
module=authn_configfile
建立其認證文件/etc/cobbler/users.digest,並添加所需的用戶
htdigest -c /etc/cobbler/users.digest Cobbler admin
注意:添加第一個用戶時,使用「-c」選項,後續添加其餘用戶時不要再使用,cobbler_web的realm只 能爲Cobbler
4:使用authn_pam模塊認證cobbler_web用戶
vim /etc/cobbler/modules.conf
[authentication]
module = authn_pam
建立cobbler用戶:useradd cobbler
vim /etc/cobbler/users.conf
[admins]
admin = "cobbler「
5:Web訪問cobbler
重啓cobblerd服務
經過https://cobblerserver/cobbler_web訪問
 
cobbler安裝的具體步驟:
1:安裝:yum install cobbler dhcp
[root@centos7 ~]## yum -y install cobbler dhcp 裝包
[root@centos7 ~]## systemctl start cobblerd 啓動服務
[root@centos7 ~]## systemctl status cobblerd 查看服務是否已經運行
須要手動啓動相關的服務
[root@centos7 /var/lib/tftpboot]# systemctl start httpd(80) tftp(69)
2:cobbler check 用此命令列出菜單照作運行cobbler check根據提示排錯
如下在[root@centos7 /var/lib/tftpboot]# vim /etc/cobbler/settings文件中修改
(1)server: 192.168.30.110 第384行,改成本身的ip地址
systemctl restart cobblerd 每次修改完此配置文件都要重啓服務
(2)next_server(那個是tftp服務器): 192.168.30.110 第272行,改成本身的ip地址
3)啓動tftp服務systemctl start ftfpd
(4) [root@centos7 /var/lib/tftpboot]# cobbler get-loaders 用此命令會自動在網上下載相關的文件
(5)用cobbler sync 同步 ,把下載的相關文件同步到 /var/lib/tftpboot 下
(6)[root@centos7 /var/lib/tftpboot]# tree.
├── boot
│   └── grub
│   └── menu.lst
├── etc
├── grub
│   ├── efidefault
│   ├── grub-x86_64.efi
│   ├── grub-x86.efi
│   └── images -> ../images
├── images
├── images2
├── memdisk
├── menu.c32
├── ppc
├── pxelinux.0
├── pxelinux.cfg
│   └── default
├── s390x
│   └── profile_list
└── yaboot
(7)修改文件中的默認口令 第101行 $1:md5的加密算法,$6:sh512加密算法
[root@centos7 ~]# openssl passwd -1(使用md5加密算法)
Password:
Verifying - Password:
$1$KsFkUTOo$z3LQU7SdDqQNfQPegBkqa1(替換文件中的默認口令)
配置DHCP
vim /etc/cobbler/dhcp.template將dhcp更改成ip相同的網段,設置範圍等參數
8):manage_dhcp: 1 第242行,0改成1
(9):vim /etc/cobbler/dhcp.template 修改第22-25行的ip就行了這樣就不一樣在配DHCP服務
3:[root@centos7 /var/lib/tftpboot]# cobbler sync
最終參考模板自動的生成真正的cat /etc/dhcp/dhcpd.conf 配置文件
.啓動服務
systemctl start dhcpd
4:導入7的系統:
導入鏡像文件
cobbler import --path=/media/ --name centos7 --arch=x86_64
導完系統後悔自動生成一個最小化安裝的ks文件cobbler profile list能夠看到
查看導入的發行版系統信息和配置信息
cobbler distro list
cobbler profile list
5: 生成KS文件
更改ks文件中的URL路徑,改成$tree,cobbler會自動識別
把ks文件移動到cobbler的ks目錄中
mv ks7..cfg /var/lib/cobbler/kickstarts/
把ks文件指定到啓動項中
cobbler profile edit --name=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks7.cfg
也能夠根據需求添加多個鏡像,寫多個KS文件導入 
6:搭建完成,測試一下
 
相關文章
相關標籤/搜索