天天看點

菜鳥學Linux 第103篇筆記 pxe自動化安裝linux

菜鳥學Linux 第103篇筆記 pxe自動化安裝linux

内容總覽

linux的系統安裝

kickstart檔案的組成部分

DHCP (Dynamic Host Configuration Protocol)

PXE (Preboot Execution Environment)

tftp

PXE 實作自動化基于網絡安裝linux步驟

SELinux (Security-enforced Linux)

linux的系統安裝:

CentOS 6

anaconda fedora, Linux系統安裝程式 kickstart

安裝前配置階段

鍵盤類型

安裝過程中的語言

支援的語言

時區

選擇要使用的磁盤裝置

分區格式化

選擇要安裝的程式包

管理者密碼

是否啟動iptables

是否啟用selinux

安裝階段

在目錄磁盤上建立出根檔案系統

将標明的程式包安裝至目錄磁盤

如何啟動安裝過程

MBR: bootloader

網絡啟動安裝過程

可移動裝置

簡裝CD光牒, 隻有isolinux

配置的選項

必選項(一定要給)

可選項

指令段:用于配置系統

install

firewall

part

lvm

軟體包, 指定要安裝的程式包組(@)及程式包

%packages

@Base

lftp

tree

程式包名稱之前附加“-”号表示不希望安裝此程式包

%end

腳本段:

%pre: 安裝過程開始之前執行的預備腳本(所能執行的操作較小,簡裝版的shell環境)

%post: 所有的軟體安裝完成之後執行的腳本 (必有完整意義上的shell環境)

CD光牒: MBR-->bootloader, isolinux

啟動安裝界面時,boot提示符後,可以向安裝核心傳遞許多的配置參數用于安裝指定過程

boot text 文本安裝界面

boot askmethod 指定安裝方法,讓使用者選擇使用的安裝樹

boot asknetwork 安裝過程中使用網絡功能,并提示使用者配置網絡屬性

boot dd 提示使用者指定一個驅動程式所在裝置

boot ks= 指定一個安裝過程所使用的kickstart檔案

ks={http|https}://<server>/<path>

ks=cdrom:/<path>

ks=nfs:<server>/<path>

建立kickstart檔案方式

1. 複制模闆/root/anaconda-ks.cfg 而後使用vim編輯配置

2. 使用system-config-kickstart來生成,建立也使用/root/anaconda-ks.cfg作為模闆

驗證kickstart檔案是否配置正确指令

# ksvalidator kick-file-name.cfg

bash丢失如何修複

1. 啟動緊急救援模式

2. 擷取到bash的rpm包

# mkdir /media

# mount -r /dev/dvd /media

# cd /media/Packages

# rpm -ivh bash-*.rpm --replacepkgs --root=/mnt/sysimage/

bootp --> dhcp (lease 位址租約)  

C/S 

server: DHCP server  UDP 67 (運作dhcp服務)

client: DHCP client  UDP 68 (運作dhcp程式)

UDP: 發送很小的資料封包,且對時效性要求較高

dhcp封包互動過程(廣播)

C: DHCP DISCOVER

S: DHCP OFFER (ip/netmask)

C: DHCP REQUEST

S: DHCP ACK

續約50%

DHCP

IP, NETMASK, GATEWAY, DNS, NTP SERVER, WINS SERVER, FILE

根據mac位址不同配置設定的IP也可不同

169.254.*.*

# yum install dhcp

dhcpd.conf

定義dhcp的自身工作屬性

log-facility

全局位址配置設定屬性 option打頭

option router

子網配置

每個作用域通過一個subnet定義

subnet NETWORK_ADDR netmask NETMASK {

range  ip ip;

option routers ip;

option broadcst-address ip;

option domain-name-servers ip;

option domain-name "";

default-lease-time #s;

max-lease-time #s;

}

主機配置(優先比對)

通常為某特定的mac位址固定配置設定一個位址

host 'HOST ID' {

hardware ethernet mac-addr;

fixed-address ip;

Client 網卡要支援網絡引導

tftp Trivial FTP, 簡單檔案傳輸協定, 高效傳輸小檔案 UDP 69

超級守護程序 Xinetd

瞬時守護程序 無須定義運作級别,隻需要一次性定義xinetd運作級别

獨立守護程序(standalone) 有運作級别,

yum -y install tftp-server xinetd

tftp-directory: /var/lib/tftpboot/

複制檔案到/var/lib/tftpboot/ 目錄下  是從iso鏡像裡複制出來的

images/pxeboot/{vmlinuz,initrd.img}

isolinux/{boot.msg,vesamenu.c32,splash.jpg}

# yum -y install syslinux

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

# mkdir /var/lib/tftpboot/pxelinux.cfg

# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

将dhcp配置設定位址時給其用戶端指定一個檔案讓其通路

/etc/dhcp/dhcpd.conf

next-server 192.168.11.171;

filename="pxelinux.0";

# service dhcpd restart

(至此centos便可以使用網絡連接配接來啟動安裝界面)

建立web伺服器 将iso鏡像挂載到html/centos6.5目錄裡

# mount /dev/cdrom /var/www/html/centos6.5

制作kickstart檔案複制到/var/www/html/目錄中并命名ks.cfg

再将isolinux.cfg 即放在此目錄下的default檔案配置其ks檔案所在地方

即可實作網絡自動化安裝centos

PXE 實作自動化基于網絡安裝linux

前提:

# mount /dev/cdrom /media

(挂載的是centos 6.5的iso)

1. 配置DHCP伺服器

# yum -y install dhcp

# vim /etc/dhcp/dhcpd.conf

定義subnet {

...

next-server tftp-server-ip;

filename "pxelinux.0";

2. 配置tftp-server

# yum -y install xinetd tftp-server tftp

# service xientd start

# chkconfig tftp on

# service xinetd restart

# ss -unl | grep ":69"

3. 準備安裝樹

# mkdir /var/www/html/centos6.5

# mount --bind /media/ /var/www/html/centos6.5

# service httpd start

4. 準備/var/lib/tftpboot下的檔案

/media/images/pxeboot/{vmlinux,initrd.img} 

/media/isolinux/{boot.msg,vesamenu.c32,splash.jpg}

/usr/share/syslinux/pxelinux.0

/isolinux/isolinux.cfg 放到上邊建立的目錄并更名為default

5. 第一次測試,看看用戶端是否可以啟動到引導界面

6. 提供kickstart檔案

注意url及repo後的路徑要修改為可安裝樹的路徑

配置kickstart檔案時,雖然system-config-kickstart可以進行配置,但磁盤還

需要自行手動進行配置的,如果是想使用lvm

編輯好kickstart檔案儲存至/var/www/html目錄下 ks.cfg(可自定義名字)

7. 配置引導程式能自動加載kickstart檔案

# vim /var/lib/tftpboot/pxelinux.cfg/default

在label為linux項的append一行後附加

ks=http://HTTP_SERVER_IP/ks.cfg

8. 第二次測試,檢視其是否可自動引導,并進行自動化安裝centos 6.5

(預祝你成功呵呵 親測本人已經配置完成)

SELinux (Secure Enhenced Linux)

沙箱

啟用 /etc/selinux/config

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=permissive

# getenforce

# setenforce {0|1}

0 off | 1 on

# ls -Z

# ps -auZ

本文轉自Winthcloud部落格51CTO部落格,原文連結http://blog.51cto.com/winthcloud/1899163如需轉載請自行聯系原作者

Winthcloud

繼續閱讀