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
下一篇 2018-03-26

相關推薦

  • Linux運維學習歷程-第六天-Linux重定向和管道

    Linux運維學習歷程-第六天-Linux重定向和管道 2 本章內容我們將學習linux中的重定向和管道兩大用法   I/O輸入與輸出設備   重定向   管道   tee命令與tr命令 一、I/O設備   1、什么是I/O設備   管理和控制計算機的所有輸入/輸出(I/O)設備是操作系統…

    Linux干貨 2016-08-03
  • 查找與壓縮

    文件查找 在文件系統上查找符合條件的文件; ? 文件查找:locate, find locate :非實時查找(數據庫查找) find :實時查找 locate 1.查詢系統上預建的文件索引數據庫 /var/lib/mlocate/mlocate.db ? 2.依賴于事先構建的索引,索引的構建是在系統較為空閑時自動進行(周期性任務);管理需要員手動更新數據庫…

    Linux干貨 2016-08-22
  • Linux三劍客之sed

     Sed簡介       sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處 理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有 改變,除非你使用重定向存…

    Linux干貨 2016-08-12
  • Linux命令的使用格式及部分常用命令詳述

    Linux命令的使用格式及部分常用命令詳述 Linux系統中命令的使用格式 Linux中命令的使用遵循以下格式 # COMMAND OPTIONS ARGUMENTS   ###命令 選項 參數,三項之間用空格分開 執行一個命令需要指定需要內核將哪一個二進制程序運行為一個進程,C…

    Linux干貨 2016-10-30
  • Linux 網絡屬性管理

    在介紹Linux網路屬性管理之前,我還要介紹下以太網(Enternet) 以太網的工作原理 以太網才用帶沖突檢測的載波偵聽多路訪問(CSMA/CD)機制。以太網中節點都可以看到在網絡中發送的所有信息,因此,我們說以太網是一種廣播網絡。 以太網的工作過程如下: 當以太網中的一臺主機要傳輸數據時,它將按如下步驟進行: 1.監聽信道上是否有信號在傳輸。如果有的話,…

    Linux干貨 2016-03-20
  • Tomcat及Tomcat集群

    Tomcat集群實現的三種方式 配置 Tomcat1 配置環境 ip a add 192.168.88.101/24 dev ens33 yum install ntpdate -y ntpdate 172.16.0.1 安裝java yum install java-1.8.0-openjdk-devel -y 安裝tomcat yum install t…

    Linux干貨 2017-07-08
欧美性久久久久