CentOS 系統自動化安裝

CentOS 系統自動化安裝


概述:

    系統安裝過程

    配置anaconda

    自動化安裝系統


CentOS 系統安裝:

1.啟動流程:

bootloader–>kernel(initrd)–>rootfs–>anaconda(啟動安裝程序)

2.anaconda:(系統安裝程序)

 tui:基于cureses的文本配置窗口;

 gui:圖形界面

     Anaconda是RedHat、CentOS、Fedora等Linux的安裝管理程序。它可以提供文本、圖形等安裝管理方式,并支持Kickstart等腳本提供自動安裝的功能。此外,其還支持許多啟動參數,熟悉這些參數可為安裝帶來很多方便。該程序的功能是把位于光盤或其他源上的數據包,根據設置安裝到主機上。為實現該定制安裝,它提供一個定制界面,可以實現交互式界面供用戶選擇配置(如選擇語言,鍵盤,時區等信息)。Anaconda的大部分模塊用Python編寫,有少許的載入模塊用C編寫。

3.CentOS的安裝過程啟動流程:

 ★ MBR:boot.cat

 ★ Stage2:isolinux/isolinux.bin

        配置文件:isolinux/isolinux.cfg

        每個對應的菜單選項

                   加載內核:isolinux/vmlinuz

                   向內核傳遞參數:append initrd=initrd.img

        其實整個光盤安裝啟動過程就是依賴于isolinux這個目錄下的文件的

 ★裝載根文件系統,并啟動anaconda

       默認界面是圖形界面(GUI):512MB+內存空間

       若需要顯示指定啟動TUI接口:向啟動內核傳遞一個參數“text”即可

           (1)按tab鍵,在后面增加text

           (2)按ESC鍵:boot(提示符下): linux text

注意:

    上述內容一般位于引導設備,例如可通過光盤、U盤、或網絡等;后續的anaconda及其安裝用到的程序包等可以來自于程序包倉庫。

     此倉庫的位置可以為:

         本地光盤、本地硬盤、ftp server、http server、nfs server

     如果想手動指定安裝倉庫:按 ESC鍵:boot(提示符下):linux method

                  

 

wKiom1ffl2Oiw7muAAAcf19fBd0622.png

[root@centos7 isolinux]# less isolinux.cfg 
...
label linux
  menu label ^Install CentOS 7
  kernel vmlinuz  # 加載的內核
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet # 向內核傳遞的參數


anaconda 工作過程

安裝前配置階段,安裝階段,首次啟動


1)安裝前配置階段:

  • 安裝過程使用的語言;

  • 鍵盤類型;

  • 安裝目標存數設備;

           Basic Storage:本地磁盤

           Special Storage:ISCSI

  • 設定主機名;

  • 配置網絡接口;

  • 時區;

  • 管理員密碼;

  • 設定分區方式及MBR的安裝位置;

  • 創建一個普通用戶;

  • 選定要安裝的程序包;

2)安裝階段:

  • 在目標磁盤創建分區并執行格式化;

  • 將選定的程序包安裝至目標位置;

  • 安裝bootloader

3)重啟系統

  • iptables 防火墻 

  • selinux 

  • core dump 核心轉儲

anaconda 的配置方式:

  • 交互式配置方式;

  • 支持通過讀取配置文件中事先定義好的配置項自動完成配置;遵循特定的語法格式,此文件即為kickstart文件;


安裝引導選項:

boot:

  •  text:文本安裝方式;

  •  method:手動指定使用安裝方法;

  •  與網絡相關的引導選項:

         ip=IPADDR

          netmask=MASK

          gateway=GW

          dns=DNS_SERVER_IP

          ifname=NAME:MAC_ADDR

  •  遠程訪問功能相關的引導選項:

          vnc

          vncpassword='PASSWORD'

  •   指明kickstart文件的位置:ks=

          DVD drive:   ks=cdrom:/PATH/TO/KICKSTART_FILE

          Hard drive:  ks=hd:device:/directory/KICKSTART_FILE

          HTTP server: ks=http://host:port/path/to/KICKSTART_FILE

          FTP server:  ks=ftp://host:port/path/to/KICKSTART_FILE

          HTTPS server:ks=https://host:port/path/to/KICKSTART_FILE

          NFS server:  ks=nfs:host:/path/to/KICKSTART_FILE

  •  啟動救援模式:

           rescue

  •  裝載額外驅動:

            dd

kickstart文件的格式

  • 命令段:指定各種安裝前的配置選項,如鍵盤類型等;

        必備命令

            可選命令

  • 程序包段:指明要安裝程序包,以及包組,也包括不安裝的程序包;

        %packages :指明程序包段的開始;

            @group_name:安裝一個包組;

            package:安裝一個程序包;

            -package :指明不安裝的程序包;

            %end :指明程序包段的結尾;

  • 腳本段

         %pre:安裝前腳本

                  運行環境:運行于安裝介質上的微型Linux環境

            %post:安裝后腳本

                  運行環境:安裝完成的系統;


1)命令段中的必備命令

  • authconfig: 認證方式配置;

       authconfig–useshadow–passalgo=sha512

  • bootloader:bootloader的安裝位置及相關配置;

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

  • keyboard: 設定鍵盤類型;

  • lang: 語言類型; lang zh_CN.UTF-8

  • part: 分區布局;

      part /boot –fstype=ext4 –size=200

      part pv.008002 –size=61440

      補充:分區相關的其他命令:

        clrarpart:清除分區

                 clearpart –none –drives=sda:清空磁盤分區

        volgroup:創建卷組

                 volgroup vg0 –pesize=8192 pv.008002

           logvol:創建邏輯卷

                 logvol / –fstype=ext4 –name=root –vgname=vg0 –size=20480

  • rootpw: 指明root的密碼;

  • timezone: 時區  timezone Asia/Shanghai

可選命令:

  • install OR upgrade;安裝或升級

  • text: 安裝界面類型,text為TUL,默認為GUI

  • network:配置網絡接口;

  • firewall:防火墻

     系統安裝完成之后禁用防火墻

          CentOS 6 :

         # service iptables stop

              # chkconfig iptables off

       CentOS 7:

              # systemctl stop firewalld.service

              # systemctl disables firewalld.service

  • selinux:SElinux

      系統安裝完成后禁用SElinux:

            編輯/etc/sysconfig/selinux或/etc/selinux/config文件,修改SELINUX參         數的值為下面其中參數之一:permisslve,disabled

         立即生效:

                 getenforce

                 setenforce 0       

  • halt、poweroff、reboot:安裝完成之后的行為;

  • repo:安裝時使用的rpository

  • user:安裝完成后為系統創建新用戶

  • url: 指明安裝時使用的repository,但是為url格式;

  • key –skip 跳過安裝號碼,適用于rhel版本

CentOS 6 中的 anaconda-ks.cfg

[root@CentOS6 ~]# cat anaconda-ks.cfg 
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install      # 安裝
url --url=    # 指明安裝時使用的倉庫 
lang en_US.UTF-8 # 指明使用的語言
keyboard us    # 指明使用的鍵盤
network --onboot yes --device eth0 --bootproto dhcp --noipv6 # 配置網絡接口
rootpw  --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0      # 指明root密碼 
# Reboot after installation
reboot          # 安裝完成之后的行為
firewall --disabled   # 防火墻
authconfig --useshadow  --passalgo=sha512 # 認證方式配置
selinux --disabled      # SElinux
timezone Asia/Shanghai    # 時區
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet"  # bootloader的安裝位置及相關配置
# Clear the Master Boot Record
#zerombr
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --all

#part /boot --fstype=ext4 --size=200
#part pv.008002 --size=61440

#volgroup vg0 --pesize=8192 pv.008002
#logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
#logvol swap --name=swap --vgname=vg0 --size=2048
#logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240
#logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480

repo --name="CentOS"  --baseurl=http://10.1.0.1/cobbler/ks_mirror/6/ --cost=100


定制kickstart文件的方式:

(1)直接手動編輯;

      依據某模板修改

(2)可使用創建工具:

        # yum install system-config-kickstart

    # system-config-kickstart

      依據某模板修改并生成新配置;

(3)檢查ks文件的語法錯誤:ksvalidator

        # ksvalidator /PATH/TO/KICKSTART_FILE

利用創建工具,操作如下:

[root@CentOS6 ~]# system-config-kickstart &  # 運行命令,會出現如下編輯界

wKioL1fiKXKActsRAAEeSLG_UEU862.png

  2)我們可以在編輯器上進行編輯,選擇分區,網絡,等配置,也可以導入模板文件(anaconda)在此基礎上修改配置,并創建文件名,保存至root下退出;

   需要注意這里在分區時一定選擇清除主引導分區,刪除所有分區和初始化磁盤卷標,要不然在自動化安裝時會提醒你是否清除數據

wKioL1fiKNfRB_FKAAEL7WR0478911.png

3)查看root下生成的文件,并檢查語法錯誤,如下:

[root@CentOS6 ~]#  ls
anaconda-ks.cfg  bin  Desktop  Documents  Downloads  f1  ks.cfg # 生成的文件  Music  Pictures  Public  Templates  Videos
[root@CentOS6 ~]# ksvalidator ks.cfg  # 檢查語法錯誤,有錯誤會報錯

制作引導光盤


1)創建引導光盤

  • # cp/media/cdrom/isolinux/ /tmp/myiso/

  • # vi /tmp/myiso/isolinux/isolinux.cfg

        initrd=initrd.imgtext ks=cdrom:/myks.cfg

  • # cp/root/myks.cfg /tmp/myiso/

  • # cd /tmp

  • # mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V "CentOS 6.6 x86_64 boot" -b isolinux/isolinux.bin-c isolinux/boot.cat -o /root/boot.iso myiso/

演示步驟如下:

[root@CentOS6 ~]# mkdir  /tmp/myiso/
[root@CentOS6 ~]# cp -a /misc/cd/isolinux/ /tmp/myiso/ # 復制光盤下的isolinux到/tmp下
[root@CentOS6 ~]# cd /tmp/myiso/isolinux/
[root@CentOS6 isolinux]# ll  # 可以看到,因為是光盤文件所以都是只讀的
total 44436
-r--r--r-- 1 root root     2048 Sep 13 12:11 boot.cat  
-r--r--r-- 1 root root       84 Sep 13 12:11 boot.msg
-r--r--r-- 1 root root      321 Sep 13 12:11 grub.conf
-r--r--r-- 1 root root 40688737 Sep 13 12:11 initrd.img  # 文件驅動
-r--r--r-- 1 root root    24576 Sep 13 12:11 isolinux.bin
-r--r--r-- 1 root root      923 Sep 13 12:11 isolinux.cfg  # 配置文件
-r--r--r-- 1 root root   183012 Sep 13 12:11 memtest
-r--r--r-- 1 root root   151230 Sep 13 12:11 splash.jpg  # 為背景圖
-r--r--r-- 1 root root     2215 Sep 13 12:11 TRANS.TBL
-r--r--r-- 1 root root   163728 Sep 13 12:11 vesamenu.c32
-r-xr-xr-x 1 root root  4264528 Sep 13 12:11 vmlinuz  # 內核文件
[root@CentOS6 isolinux]# chmod u+w isolinux.cfg  # 添加寫權限,進行修改
[root@CentOS6 isolinux]# vim isolinux.cfg

wKioL1fiKu_wzpNwAACgPKhfNwk452.png

[root@CentOS6 tmp]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.8 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/  # 注意一定退出myiso目錄,創建光盤鏡像,指明路徑等信息,并在/root下生成一個boot.iso鏡像
[root@CentOS6 ~]# ls
anaconda-ks.cfg  bin  boot.iso # 生成的鏡像文件  Desktop  Documents  Downloads  f1  Music  myks.cfg  Pictures  Public  Templates  Videos

新建一個虛擬機,用創建好的光盤鏡像在虛擬機上重新引導安裝,如下:

wKiom1fiLtOjTkjIAAcWi7QFsAk951.png

 成功安裝:

wKiom1fiMHXj-JOaAACfbFvp1OU399.gif

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

(0)
zhumengxiaotaozhumengxiaotao
上一篇 2016-09-21 21:12
下一篇 2016-09-21 21:13

相關推薦

  • bash的重定向

    一、簡介         bash的數據流重定向(redirect)是將程序的執結果重新定向到另一文件或者設備?;蛘甙岩晃募囟ㄏ蚪o一程序作為數據來源。默認情況下,命令的執行結果顯示在屏幕上。文件系統中,分為:標準輸入,標準輸出,錯誤輸出。 二、用法   &n…

    Linux干貨 2015-08-11
  • centos 7.2 安裝pyenv多版本管理工具和虛擬環境pyenv-virtualenv

    軟件簡介: pyenv + pyenv-virtualenv pyenv,是一款特別好用的Python版本管理器,程序員可以建立不同的目錄,在不同的目錄里分別運行不同版本的Python, 并且互不影響,安裝的包也互不影響。github項目地址:https://github.com/yyuu/pyenv pyenv-virtualenv, 是pyenv的一個p…

    Linux干貨 2016-07-04
  • Hadoop集群配置

    通常,集群里的一臺機器被指定為 NameNode,另一臺不同的機器被指定為JobTracker。這些機器是masters。余下的機器即作為DataNode也作為TaskTracker。這些機器是slaves\ 官方地址:(http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.ht…

    Linux干貨 2015-06-03
  • (總結)RHEL/CentOS 7.x的幾點新改變

    PS:RHEL7和CentOS7出來有一段時間了,拿出點時間研究下,有幾個地方跟6和5系列相比改變比較大,估計不少童鞋有點不太習慣。下面簡要舉例說明改變比較大的要點: 一、CentOS的Services使用了systemd來代替sysvinit管理 1、systemd的服務管理程序:systemctl是主要的工具,它融合之前service和chkconfig…

    Linux干貨 2015-02-10
  • 基于key驗證和一些自動化運維工具

    pssh pscp.pssh Pslurp.pssh AIDE等

    2018-01-16
  • 高級文件系統管理

    磁盤配額:         當我們在一個指定分區內有多個用戶使用時,為了保證磁盤空間的大小,我們可以限制某些用戶在該磁盤空間中的使用量,此種功能我們稱之為磁盤配額。          &nb…

    Linux干貨 2016-08-30
欧美性久久久久