Kickstart

1、安裝所需軟件包? yum -y install createrepo mkisofs isomd5sum

上傳centos6.9原始鏡像內容

mkdir /mnt/centos?? 創建掛載目錄

mount -o loop centos6.9 /mnt/centos?? 上傳centos6.9鏡像并且掛載至centos目錄

mkdir /tmp/iso?? 創建定制目錄

cp -r /mnt/centos/. ?/tmp/iso??? 注意要復制整個目錄(除了Packages,repodata 目錄),尤其是目錄下的二個 ? ? ? ? ?隱藏文件.discinfo和.treeinfo

或者rsync -a –exclude=Packages –exclude=repodata? /mnt/centos?? /tmp/iso

mkdir /tmp/iso/{Packages,repodata}?? 創建軟件包目錄和repodata目錄

如缺少這二個隱藏文件,會導致安裝是找不到disc,如下圖:

QQ截圖20180326204951

參考當前系統的軟件包, 拷貝至定制目錄? awk ‘/Installing/ {print $2}’ install.log | xargs -i cp ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/mnt/centos/Packages/{}.rpm? ./tmp/iso/Packages

install.log文件可以從/root目錄下獲取,目的是可以刪除不必要的rpm包

# 執行createrepo程序生成repodata下的comps.xml文件(重要)

#comps.xml 文件中包含了安裝時用戶所見到的與rpm相關的所有內容,它會檢查Packages下

# 的RPM包的依賴關系,安裝時如果缺少依賴包,它會提示您哪個RPM 包需要哪些依賴庫。

2、#編輯shell腳本

#!/bin/bash

ISO_DIR=/tmp/iso

cd? ${ISO_DIR}

declare -x discinfo=$(head -1 .discinfo)

cp? /mnt/centos/repodata/*-minimal-x86_64.xml ${ISO_DIR}/repodata/minimal-x86_64.xml

createrepo? -g? ${ISO_DIR}/repodata/minimal-x86_64.xml? ${ISO_DIR}

createrepo -u “media://$discinfo” -g ${ISO_DIR}/repodata/*-minimal-x86_64.xml ${ISO_DIR}

到這里,comps.xml文件和其他相關聯的文件已被重新生成到repodata目錄下。

如果你新增或刪除了Packages目錄的RPM包,請重新生成comps.xml文件。

3、修改 isolinux.cfg 配置文件,指定 ks 路徑

chmod +w? isolinux.cfg

vi /tmp/iso/isolinux/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????? 如果使用U盤需要改成hd:sdb4:/isolinux/ks.cfg

手動增加kickstart文件

touch /tmp/iso/isolinux/ks.cfg

4、必填項

ks.cfg文件內容:

#表示是安裝,而不是升級

install

#文本方式安裝

text

graphical? 使用圖形安裝

#使用網絡安裝

url –url=ftp://ip/centos

#使用光盤安裝

cdrom

#使用U盤安裝

harddrive –partition=/dev/sdb4 –dir=/????? 若有多塊硬盤,則U盤的盤符可能不是sdb,而是sdd,或sdg或是其 ? ? ? ? ?他的等。這里U盤的盤符一定要寫對,要不然系統找不到ks.cfg文件。

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

key –skip

#使用美式英語

lang en_US.UTF-8

#lang zh_CN.UTF-8

#使用美式鍵盤

keyboard us

#網絡配置

network –device eth0 –bootproto dhcp –noipv6 –hostname qidian??? 自動獲取IP同時設置主機名為qidian

network –bootproto=static –device=eth0 –gateway=192.168.1.1 –ip=192.168.1.252 –netmask=255.255.255.0 –onboot=on? 設置靜態IP

#root密碼

rootpw Aa123456

rootpw –iscrypted $6$6OUksX3K$vWTIM663H??? 使用加密

#禁用防火墻

firewall –disabled

#禁用selinux

selinux –disabled

#禁用第一次啟動時設置系統的向導

firstboot –disable

#用戶認證配置,useshadow表示使用本地認證,–passalgo表示密碼加密算法

authconfig –enableshadow –passalgo=sha512

#設置時區為上海

timezone –utc Asia/Shanghai

#指明bootloader的安裝位置,指明驅動器的排序,指明操作系統安裝完成之后,向內核傳遞的參數

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

#通常情況下,kickstart安裝時跳過了不必要的屏幕顯示。該選項可以讓安裝過程簡單地顯示每一步的屏幕。autostep多用于調試。

在安裝過程中,將每一步的屏幕截圖并在安裝完成后將這些截圖拷貝到/root/anaconda-screenshots目錄下。這對寫文檔非常有幫助

–autoscreenshot

#清除MBR引導記錄

zerombr yes???? 使用 clearpart –all 時,需要加上這個選項,否則安裝過程會被暫停,需要手動選擇

#清除硬盤上的所有數據

clearpart –all –initlabel

#例如,下面的命令清除了前指定兩個驅動器上所有分區

clearpart –drives=sda,sdb –all

#自動創建分區–一個根分區(/)、一個swap分區,以及一個適合體系架構(architecture)的boot分區。如果磁盤驅動器足夠大,也會創建/home分區。

選擇自動分區機制。必須是lvm, btrfs, plain, thinp中的一個。Plain意味著常規分區,沒有btrfs和lvm.

autopart –type=<type>

#自定義分區

#創建一個200M大小的分區掛載/boot類型為ext4

part /boot –fstype=ext4? –size=200 –ondisk=sda

#創建一個2000M大小的SWAP分區

part swap –size=2000 –ondisk=sda

#創建/目錄

part / –fstype=ext4 –grow –size=1 –ondisk=sda

–grow? ?會讓邏輯卷使用所有可用空間(若有)

#U盤安裝千萬不要格式化U盤

part None –fstype efi –label=”Centos_6.9″ –onpart=sdb4 –noformat

#僅有列出的磁盤可以在安裝過程中被使用

ignoredisk –only-use=sda

#控制anaconda對系統磁盤的訪問。下面的兩個選項中可能只有一個被用到。

ignoredisk –drives=[disk1,disk2,…]

#只分區sda硬盤,每個分區后面加上–ondisk=sda

#設置完成之后重啟

reboot

#定制軟件包

%packages –nobase

@base

@core

#安裝前允許自定義腳本

%pre表示系統安裝前,此時ISO鏡像文件被掛載到內存中Linux的/mnt/source

#安裝后運行自定義腳本

%post?? 在系統安裝后執行

–不帶參數,其實就是在真實的操作系統里操作。

–nochroot 已安裝的真實操作系統被掛載到內存虛擬操作系統中的/mnt/sysimage目錄。這個參數的用途主要是配合%pre使用的。先將光盤里的文件copy到內存運行的虛擬操作系統,再從內存虛擬操作系統copy到已安裝的真實操作操作。

%post –nochroot

mkdir /media

mount /dev/cdrom /media/

cp /media/test1.txt /mnt/sysimage/root/

%end

上面命令實現了從ISO鏡像中拷貝文本文件到安裝好的真實操作系統中。

#config service

#自定義服務

service NetworkManager stop

chkconfig NetworkManager off

#執行完畢后重啟

#reboot

#結束自動化部署

%end

5、生成iso鏡像

mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o /root/CentOS-6.9-x86_64–minimal.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /tmp/iso

此時會在 /root/目錄創建一個名為CentOS-6.9-x86_64–minimal.iso 的鏡像文件

6、生成md5效驗碼

implantisomd5? CentOS-6.9-x86_64–minimal.iso

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/93168

(4)
ControlControl
上一篇 2018-03-26 20:43
下一篇 2018-03-26 20:44

相關推薦

  • rpm管理包

    rpm命令是RPM軟件包的管理工具。rpm原本是Red Hat Linux發行版專門用來管理Linux各項套件的程序,由于它遵循GPL規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的采用。RPM套件管理方式的出現,讓Linux易于安裝,升級,間接提升了Linux的適用度。接下來聊一聊如何安裝、卸載、查詢、檢驗rpm類的軟件。 安裝:…

    2017-08-19
  • 話說CentOS6的啟動流程

    1.按下開機按鈕,電腦的主板通電,電腦開始加電自檢(POST,Power On and Self Test),測試主機的硬件是否滿足開機的要求. 2.加載主板上的BIOS(Base Input/Output System,基本輸入輸出系統),BIOS會加載用戶設定的第一個可開機設備.,這里我們只說硬盤的加載. 可以按下鍵盤上的Esc或者是F2或者是Del鍵,…

    Linux干貨 2017-05-14
  • week5

    1、顯示當前系統上root、fedora或user1用戶的默認shell; useradd fedora useradd user1 egrep "^(root|fedora|user1)" /etc/passwd | cut -d: -f1,7 2、找出/e…

    Linux干貨 2016-11-24
  • 第三周作業

      1. who |cut -d ” ” -f1|uniq 2.who |head -1 3.cat /etc/passwd | cut -d: -f7|uniq -c |sort -n|tail -1|grep -o “/[[:alnum:]].*” 4. cat /etc/passwd |sort…

    2017-12-16
  • Linux系統的軟硬連接的區別

    Linux系統的軟硬連接的區別 M21-陸東貴 CentOS 7.2 Linux鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln命令產生硬鏈接。 一、  硬鏈接: 硬連接是指通過索引節點來進行連接Linux鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接…

    Linux干貨 2016-10-19
  • 搭建簡單的svn服務器

        svn在版本控制方面還是挺有用的??舆\維的人中就有研發,出補丁或版本的時候很堅定的說“升吧,沒問題”,結果升上去后就會狂報錯。所以運維的要在打補丁,尤其是改動很大的時候一定要把后路想好。否則會長時間的影響業務。svn就有一個很好的機制–回退(當然你也可以事先備份下),可以回退到之前的某個時間節點,操作很方便的。當然sv…

    Linux干貨 2015-11-18
欧美性久久久久