Linux的自動化安裝實現

在介紹自動化安裝系統之前讓我們來回顧一下系統的啟動流程,系統的啟動大概分為一下幾個步驟:加電自檢 boot sequencembr— boot loader –>kernel(initramfs)—>rootfs  /sbin/init大概就是這么幾個過程了,接下來來介紹系統的安裝,安裝系統雖然看起來簡單,普通的安裝大多數用戶會選擇一直下一步的安裝把,但是想實現高逼格的安裝還是需要簡單的加工一下,好吧,開始介紹

anaconda:系統安裝程序fedora 的一個開源項目

在系統啟動的時候就會啟動anaconda程序,它默認啟動GUI接口,并向內核傳遞text參數即可,然后啟動系統安裝

anaconda安裝系統分成兩個階段

安裝前配置階段

鍵盤類型

安裝過程中的余元

支持的語言

時區

選擇要使用的磁盤設備

分區格式化

選擇要安裝的程序包

管理員密碼

是否啟用iptables

是否啟用selinux

想必安裝過操作系統的小伙伴都應該知道需要經過這么幾步,沒裝過的小伙伴需要親自去安裝體驗一下

 

安裝階段

在目標磁盤上創建分區,執行格式化操作

將選定的程序包安裝到指定目標磁盤

安裝boot loaderinitramfs

 

啟動安裝過程一般位于引導設備中,后續的anaconda及安裝用到的程序包等由以下幾種方式:

本地光盤

本地硬盤

ftp服務器

http服務器

nfs服務器

2.jpg

如果想手動指定安裝源

在啟動后安裝esc之后會出現boot:開頭的提示符在后面輸入linux askmethod選擇指定的安裝源

boot的引導選項,要使用引導選項請在boot:提示符后輸入linux   option(以下的多種方式)

指定語言

linux keymap=gr

 

更新anaconda

linux updates

linux text:文本方式安裝

 

askmethod:手動指定安裝源

         repo=cdromdevice

         repo=hd:device/path

         repo=http://host/path

         repo=ftp://username:password@hosts/path

         repo=nfs:server:path

 

與網絡相關的引導選項

ip=IPADDR

netmask=MASK

gateway=GW

dns=DNS IP

 

啟用對安裝系統的遠程訪問

linux vnc vncpassword=密碼串

 

啟用遠程訪問

linux  sshd=1

 

進入救援模式

linux rescue

 

kickstart文件格式

命令段:用于配置系統

  install

  firewall

  part

  lvm

 

程序包段:指定要安裝的程序包及程序包組

    %packages:表示

    @Base:使用@指定包組

    lftp:直接寫程序包名

    -package

    %end:軟件包結束

注意:在程序包錢加,不安裝相關包

 

腳本段

%pre:安裝過程開始錢的預備腳本,所能執行的操作較小,它是一個首先得環境,因為其實僅有簡單版的shell環境

%post:所有的軟件完成之后執行的腳本,此時具有完整意義的shell環境,但并非所有命令都安裝,先確保所有的程序已經安裝

%end:腳本結束段

 

kickstart 文件的格式中的命令段中必備命令

authconfig:認證方式配置

         authconfig –usershadow –passalgo=sha512

boot loader :boot loader 的安裝位置及相關配置

         boot loader –location=mbr –driveorder=sda –append=”crashkernel=auto rhgb quiet “

kerboard:設定鍵盤類型

lang:語言類型

part:創建分區

rootpwdroot的密碼

timezone:時區

 

可選命令

install  or upgrade

text:文件安裝界面

network

firewall

selinux

halt

poweroff

reboot

repo

user:安裝完成后創建新用戶

url:指定安裝源

key –skip:跳過安裝號碼,使用與rhel版本的操作系統

 

創建kickstart文件

創建kickstart文件的方式

直接手動編輯

         依據已安裝好系統上的kickstart文件模版修改

 

使用創建工具:system-config-kickstart,建議使用/root/anaconda-ks.cfg模版生成

     

    1、生成默認語言,鍵盤類型,時區,以及root的密碼,還可以指定安裝后自動重啟,指定是在字符界面安裝操作系統,還是在圖形界面安裝操作系統

    2.jpg

 

   2、選擇安裝方式

    1.jpg

 

3、安裝boot loader

    3.jpg

    4、分區信息,是否清除之前的MBR,清楚磁盤所有分區表,并初始化磁盤卷標

    5.jpg

    5、網絡配置,即可以使用dhcp來獲取ip地址,也能自己手動指定地址

    6.jpg

    

   6、密碼文件加密方式,有MD5,sha256,sha512等方式

   7.jpg

   7、防火墻設定,禁用或啟用

   8.jpg

   8、顯示配置,是否安裝圖形環境

    9.jpg

   9、選擇要安裝的軟件包

    10.jpg

    10、安裝前腳本,將自己想要設定的內容寫到本初,比如更改issue文件

    11.jpg

    11、安裝后腳本,比如給系統添加一個repo文件

    12.jpg

  生成后的ks.cfg文件可以通過ksvalidator命令來檢查ks文件的語法錯誤命令

  命令用法:ksvalidator  ks.cfg

生成好的ks.cfg文件內容

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall –disabled

# Install OS instead of upgrade

install

# Use network installation

url –url="http://10.1.0.1/cobbler/ks_mirror/CentOS-6-x86_64/"

# Root password

rootpw –iscrypted $1$HhTXxIKI$dJ/fz1tpaghO37tA9k7Xl/

# System authorization information

auth  –useshadow  –passalgo=sha512

# Use graphical install

graphical

firstboot –disable

# System keyboard

keyboard us

# System language

lang zh_CN

# SELinux configuration

selinux –enforcing

# Installation logging level

logging –level=info

 

# System timezone

timezone  Africa/Abidjan

# Network information

network  –bootproto=dhcp –device=et0 –onboot=on

# System bootloader configuration

bootloader –location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart –all 

# Disk partitioning information

part / –fstype="ext4" –size=10000

part /boot –fstype="ext4" –size=300

 

%packages

@backup-client

@base

@basic-desktop

@compat-libraries

@console-internet

@debugging

@desktop-debugging

@desktop-platform

@development

@dial-up

@directory-client

@emacs

@fonts

@general-desktop

@graphical-admin-tools

@graphics

@input-methods

@internet-applications

@internet-browser

@office-suite

@server-platform-devel

@technical-writing

@tex

git

 

%end

 

制作引導光盤

    mkdir  /linuxiso

 將ks.cfg文件拷貝到/linuxiso目錄下

    cp  /media/isolinux/   /linuxiso

    vim  /linuxiso/isolinux/isolinux.cfg

 將initrd=initrd.img text ks=cdrom:/ks.cfg

   cp  /root/ks.cfg  /linuxiso/

   mkisofs-R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V "Centos 6.5 X86_64 boot(可改)" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6.5.boot.iso(可改) linuxiso/

 

制作好光盤后,將光盤插入機器(當然這里使用的是虛擬的),調整啟動次序為光盤啟動,將機器連接到網絡中的安裝,前提是網絡當中有安裝源,如果沒有安裝源可以自己搭建一個ftp的服務器,安裝vsftpd啟動服務,將光盤當中的所有文件都拷貝到/var/ftp/pub目錄下,然后將安裝樹的源寫到ks.cfg文件的url  –url那一行即可,這樣就可以實現自動化安裝操作系統,但是需要注意的是,當你安裝完成操作系統后,你的機器的啟動次序還是光盤,那么它將會重復安裝操作系統,在這里提醒各位的是,在操作系統安裝完成之后將啟動次序調整為硬盤啟動

 

創建優盤啟動

de  if=/dev/cdrom  of=/dev/sdb

 

 

 

 

 

原創文章,作者:fszxxxks,如若轉載,請注明出處:http://www.www58058.com/46785

(0)
fszxxxksfszxxxks
上一篇 2016-09-19
下一篇 2016-09-19

相關推薦

  • 機器學習排序

     從使用的數據類型,以及相關的機器學習技術的觀點來看,互聯網搜索經歷了三代的發展歷程。        第一代技術,將互聯網網頁看作文本,主要采用傳統信息檢索的方法。        第二代技術,利用互聯網的超文本結構,有效…

    Linux干貨 2015-12-15
  • Linux進程管理

    一、程序與進程           1、程序         程序是為了達到特定的目的,可以被計算機運行并且由命令代碼組成的語句序列。       &…

    Linux干貨 2015-05-14
  • 編程真難啊

    上周,在Sun的Java論壇上出現了一個這樣的帖子,這個貼子的鏈接如下:http://forums.sun.com/thread.jspa?threadID=5404590&start=0&tstart=0 LZ的貼子翻譯如下: 大家好,我是一個Java的新手,我有一個簡單的問題:請問我怎么才能反轉一個整數的符號啊。比如把-12轉成+12。是…

    Linux干貨 2015-04-03
  • Python基礎—內置數據類型

    一、簡介              如果你用過C或者C++,你該知道你的許多工作集中在實現數據結構上面。你需要管理內存分配,部署內存結構等等。這些東西比較乏味,通常會讓你無法集中在真正想實現的目標上面。    …

    Linux干貨 2015-11-10
  • Linux ansible 服務

                      Linux ansible 服務 Ansible:    運維工具的分類: agent:基于專用的agent程序完成管理功能,puppet, func, zabbix, … agentless:基于ss…

    系統運維 2016-11-19
  • Linux bash編程基礎語法總結

    前言 在Linux學習過程中,我們無可避免的會碰到一個既讓人喜歡,又令人頭疼的神奇的東西——bash編程,即shell腳本。那么什么是shell腳本呢?shell是一個命令語言解釋器,而shell腳本則是Linux命令的集合,按照預設的順序依次解釋執行,來完成特定的、較復雜的系統管理任務,類似于Windows中的批處理文件。本文帶來的是bash編程的基礎語法…

    Linux干貨 2015-04-04
欧美性久久久久