Kickstart的高階應用

2021-07-03 05:58:24 字數 2266 閱讀 7461

pre- 和postinstall 指令碼

kickstart本身提供了一些對系統的基本調整和設定,例如設定root密碼,設定時區等等。但是它不能做某些更細緻的調整,比如通過chkconfig禁止某些服務,建立特定的目錄等等。因此,我們需要使用pre-和postinstall指令碼來完成這些任務。很明顯的,從名字就可以看出這兩種指令碼執行的時機,pre-在安裝進行之前執行,而post指令碼則在整個安裝過程完成以後執行。preinstall和postinstall指令碼都在ks檔案的末尾定義。

preinstall指令碼用%pre指示開頭,指令碼使用的語法和rpm spec檔案中的類似。在安裝之前這個階段,preinstall指令碼只能做一些基本的操作,比如查詢一些檔案或者掛載nfs共享等等。

postintall指令碼則更有潛力,postinstall指令碼用%post指示開頭。當os安裝已經完成以後,postinstall指令碼預設是在新安裝好的系統上執行,新安裝好的系統這個時候處於chroot環境,根目錄其實是在/mnt/sysimage下。

可以使用%post –nochroot 

來執行一些非chroot環境下的命令。比如在chroot環境下,你是無法訪問光碟機中的安裝光碟的,因為光碟掛載在/tmp/cdrom,它是處於non-chroot環境下的。

一般來說postinstall指令碼以#!/bin/sh這樣的自定義shell作為第一行,然後下邊就是普通的shell指令碼了。這樣基本上你想做什麼都可以了。

-------------------------

你可以新增系統在安裝完成後要執行的命令。這一節必須位於 kickstart 檔案的結尾處,而且必須以 %post 命令開頭。它對於安裝額外軟體包或配置額外名稱伺服器等任務很有幫助。 

註記如果你使用靜態 ip 資訊配置了網路,包括名稱伺服器,你可以在 %post 部分中訪問網路並解析 ip 位址。如果你使用 dhcp 配置網路,當安裝執行到 %post 部分時,/etc/resolv.conf 檔案還沒有完成。你可以訪問網路,但是你不能解析 ip 位址。因此,如果你使用 dhcp,你必須在 %post 這一節中指定 ip 位址。 

註記安裝後指令碼在 chroot 環境中執行;因此,象複製安裝介質中的指令碼或 rpm 之類的任務將不能被執行。 

--nochroot 

允許你指定你想在 chroot 環境之外執行的命令。 

下面的例子把 /etc/resolv.conf 檔案複製到剛剛安裝了的檔案系統上。 

%post --nochroot

cp /etc/resolv.conf /mnt/sysimage/etc/resolv.conf

--interpreter /usr/bin/python 

允許你指定不同的指令碼語言,如 python。 用你想用的指令碼語言來替換 /usr/bin/python。 

5. 範例

要啟動和關閉服務: 

要從 nfs 共享中執行叫做 runme 的指令碼: 

mkdir /mnt/temp

mount 10.10.0.2:/usr/new-machines /mnt/temp

open -s -w -- /mnt/temp/runme

umount /mnt/temp

給系統新增使用者: 

/usr/sbin/useradd bob

/usr/bin/chfn -f "bob smith" bob

/usr/sbin/usermod -p 'kjdf$04930fth/ ' bob

--------------------

chroot就是change root,也就是改變程式執行時所參考的根目錄位置。

/bin

/sbin

/usr/bin

/home

/hell/

/hell/bin

/hell/usr/bin

/hell/home

1.限制被chroot的使用者所能執行的程式,如setuid的程式,或是會造成 load 的compiler等等。

2.防止使用者訪問某些特定檔案,如/etc/passwd。

3.防止入侵者/bin/rm -rf /。

4.提供guest服務以及處罰不乖的使用者。

5.增進系統的安全。

Linux的kickstart安裝詳解

一 什麼是kickstart?kickstart安裝是redhat開創的按照你設計好的方式全自動安裝系統的方式。安裝方式可以分為光碟 硬碟 和網路。此文將以網路安裝方式詳細介紹使用kickstart的安裝系統的方法。二 製作kickstart啟動盤準備工作 首先將系統第一張的光碟 image boo...

Linux的kickstart安裝詳解

linux的kickstart安裝詳解 一 什麼是kickstart?kickstart安裝是redhat開創的按照你設計好的方式全自動安裝系統的方式。安裝方式可以分為光碟 硬碟 和網路。此文將以網路安裝方式詳細介紹使用kickstart的安裝系統的方法。作業系統選用redflag dc5.0 sp...

linechart 的高階應用

這個問題終於解決了,linechart要學的東西真的很多啊,剛開始的時候,真的很不理解,現在好多了,無論是線還是點,或者點的提示資訊,這是都是物件,所以,它們必然可以完全控制,我覺得有幾個東西很重要,1.首先就是渲染器,比如circleitemrendererd的顏色,很多的人都不夠明白,這是為什麼...