系統自動化安裝

系統自動化安裝:實現同時部署多臺操作系統,批量進行安裝linux系統

CentOS系統安裝

    系統啟動流程:

      bootloader–>kernel(initaramfs)–>rootfs–>/sbin/init

anaconda:系統安裝程序

    tui:基于圖形庫curses的文本窗口

    gui:圖形窗口

MBR:boot.cat ====>類似于MBR

blob.png

stage2:isolinux/isolinux.bin(stage2)

blob.png

配置文件:/misc/cd/isolinux/isolinux.cfg 

blob.png

每個對應的菜單選項:

    加載內核:isolinuz/vmlinuz

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

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

    默認啟動GUI接口

    若是顯示指定使用TUI接口:向內核傳遞text參數即可(在光盤引導界面)

        1.按tab鍵,在后面增加text

        2.按ESC鍵:boot:linux text

blob.png

anaconda工作過程

Anaonda安裝系統分成三個階段:

安裝前配置階段

    安裝過程使用的語言

    鍵盤類型

    安裝目錄存儲設備

        Basic Storage:本地磁盤

        特殊設備:iSCSI    

    設定主機名

    配置網絡接口

    時區

    管理員密碼

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

    創建一個普通用戶

    選定要安裝的程序包

安裝階段

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

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

    安裝bootloader和initramfs

首次啟動

    iptables

    selinux    

    core dump    

系統安裝

啟動安裝過程一般應位于引導設備;后續的anaconda及其安裝用到的程序包等可來自下面幾種方式

    本地光盤

    本地硬盤

    ftp server:yum repository    

    http server:yum repostory

    nfs server

如果想手動安裝指定安裝源    

    boot:linu askmethod

blob.png

根據以上選項,可選擇不同的安裝源

ancconda的配置方式:

    1.交互式配置方式

    2.通過讀取事先給定的配置文件自動完成配置

        按特定語法給出的配置選項

            kickstart

安裝boot引導選項:boot

text:文本安裝方式

askmethod:手動指定使用的安裝方法

與網絡相關的引導選項:

    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

啟動緊急救援模式:

    rescure

官方文檔 :

    《Installation Guide》  

kickstart文件的格式

命令段:指明各種安裝前配置,如鍵盤類型等;

程序包段:指明要安裝的程序包組成或程序包,不安裝的程序包等;

    %packages

    @group_name

    package

    -package

    %end

腳本段:

    %pre:安裝前腳本

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

    %post:安裝后腳本

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

命令段中的命令:

    必備命令:

        authconfig:認證方式配置

            authconfig –useshadow –passalgo=sha512

        bootloader:bootloader的安裝位置及相關位置

            bootloader –location=mbr –driveorder=sda 

            -append="crashkernel=auto  rhgb quiet"

        keyboard:設定鍵盤類型

        lang:語言類型

        part:創建分區

        rootpw:指明root密碼

        timezone:時區

        

可選命令:

    install OR upgrade    

    text:文本安裝界面

    network:網絡

    firewall:防火墻

    selinux

    halt:關機

    poweroff:斷電關機

    reboot:重啟

    repo:

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

     url:指明安裝源

    key -skip:跳過安裝號碼,適用于rhel版本

創建kickstart文件的方式

  1. 直接手動編輯:                           

     依據某模板修改(家目錄下的anaconda.cfg,安裝系統時生成的,記錄了安裝時的選項)

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

#version=DEVEL
install
url --url=http://10.1.0.1/cobbler/ks_mirror/6/
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw  --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0
# Reboot after installation
reboot
firewall --disabled
authconfig --useshadow  --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet"
# 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

%packages
@Base
@Core
@base
@basic-desktop
@chinese-support
@client-mgmt-tools
@core
@desktop-platform
@fonts
@general-desktop
@graphical-admin-tools
@legacy-x
@network-file-system-client
@perl-runtime
@x11
lftp
tree

%end

%post
echo -e 'Mage Education Learning Services\nhttp://www.magedu.com\n' >> /etc/issue

sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab

[ ! -d /root/.ssh ] && mkdir /root/.ssh && chmod og=--- /root/.ssh

cat >> /root/.ssh/authorized_keys << EOF
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlmq1z0G/7wbGuSUewfXlFnwzqCg/myqTi/AwP8LP+JJ49xzIKMzpeWXHD8RWIf5RlDzo+6N7uPK5O22x/QtMosi0egz4shavEJeUkO0EH+KygXXgBIGuMWmAsL+yzbgWXT9H3zdzXi/qWcrBeBv2nYB5mpYSf7o0xqdhCst1MTfcYLD8qxvkwC8RiqBA/1u9N6jeDFbHO+UzZYYCr9zgk9uz4Rrhb9BU7c1GhjUCgRwBDAuo47IHw/OT6KS9lb8lT2R/ujVoDARy/eOhw8cAFXo+QcvzNSW2qKf/Qo21uR/wz2u9SRV0lvUDNSvC2PYtR+iPlDwHY81md430yiNf9w== root@server.magelinux.com
EOF

ClientName=`ifconfig eth0 | awk '/inet addr:/{print $2}' | awk -F. '{print $NF}'`
sed -i "s@HOSTNAME=.*@HOSTNAME=client$ClientName.magelinux.com@g" /etc/sysconfig/networks

# set hosts
echo '10.1.0.1  server.magedu.com server' >> /etc/hosts

# yum repo

%end
  1. 可使用創建工具:system-config-kickstart

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

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

    #ksvalidator /PATH/TO/KICKSTART_FILE

實例:

  1. 首先需要安裝一個圖形界面使用的命令:

yum install system-config-kickstart

2.切換到圖形界面運行此命令,界面如下

blob.png

3.Basic Configuration 選項設置

blob.png

4.Installation Method設置(我選擇網絡安裝)

blob.png

5.Boot Loader Options 選項設置(不弄那么復雜了)

blob.png

6.分區信息設置(按自己要求設置)

blob.png

7.網絡設置

blob.png

8.Authentication設置

blob.png

9.firewall 防火墻設置

blob.png

10.Display Configuration設置

blob.png

11.Package Selection  包設置(選擇需要的安裝即可)

blob.png

12.開機前腳本沒什么內容可寫,所有選擇了開機后腳本,設置如下

blob.png

13.保存至root命令下ks.cfg文件,內容如下

blob.png

[root@localhost ~]# cat 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/6"
# Root password
rootpw --iscrypted $1$vvw.7lmZ$vHhd8RrB4hePFMNIPOPqe.
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=static --device=eth0 --gateway=10.1.0.1 --ip=10.1.252.135 --nameserver=8.8.8.8 --netmask=255.255.0.0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part /boot --fstype="ext4" --size=500
part / --fstype="ext4" --size=100000
part swap --fstype="swap" --size=2048

%post
useradd qiuwei
echo 123456 |passwd --stdin qiuwei
echo  pingxiongshishabi >> /etc/issue
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo   /etc/yum.repos.d/bak
cat > /etc/yum.repos.d/*.repo <<EOF
[base]
baseurl=http://10.1.0.1/cobbler/ks_mirror/6
gpgcheck=0
EOF
%end

%packages
@base
@basic-desktop
@ftp-server

%end

14.因為沒有服務器,在我的另一個centos7系統上安裝一個vsftpd,當作服務器

使用yum或者rpm都可以,裝好后啟動vsftpd服務

centos7

blob.png

15.將剛才生成的ks.cfg文件復制到centos7系統上

centos 6上執行命令

blob.png 

centos 7上的結果

blob.png

16.reboot重啟,進入到光盤引導界面,鍵入ESC或者tab,

輸入boot :linux ks=ftp://10.1.249.150/pub ==>(centos 7上的ks.cfg的路徑 )

設置ks路徑,然后回車運行,等待即可,畫面如下,為防火墻沒關

blob.png

在centos7上關閉防火墻,還是不可以,找了好久,應該是文件的權限有問題,之前的權限是600,我改成666了再次執行

就沒問題,可以執行了,之后就是等待安裝了,安裝后會自動重啟,

案例成功,當然因為模塊方面不太了解,所有基本上是參照centos6上的boot目下的.config文件做的,等以后深入了解了,

可以自己做一個!

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

(0)
qiuweiqiuwei
上一篇 2016-09-22 10:04
下一篇 2016-09-22 10:04

相關推薦

  • linux-系統啟動和內核管理

    一、Linux 組成及啟動過程 Linux: kernel+rootfs    kernel:進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能      IPC:Inter Process Communication  &nbsp…

    Linux干貨 2016-09-26
  • mysql進階篇(三種備份方法總結:lvm, mysqldump, xtrabackup)

    二進制日志詳解:     二進制日志通常作為備份的重要資源,所以再說備份之前先總結一下二進制日志的相關內容      1. 二進制日志的內容         引起mysql服務器改變的任何操…

    Linux干貨 2015-12-10
  • N25_第二周

    Linux文件管理類命令 cp命令:copy 源文件;目標文件; 單源復制:cp [OPTION]… [-T] SOURCE DEST 多源復制:cp [OPTION]… SOURCE… DIRECTORY | ????? cp [OPTION]… -t DIRECTORY SOURCE……

    Linux干貨 2016-12-11
  • 基于ansible自動部署keepalived+nginx來調度amp

    實戰作業: (1) 主/備模型的keepalived+nginx (2) httpd+php+php-mysql (3) mysql-server或mariadb-server         擁有testdb庫,并允許testuser對其擁有所有權限 實驗環境: 主機1:10.…

    Linux干貨 2016-11-07
  • 設計模式 ( 十七) 狀態模式State(對象行為型)

    設計模式 ( 十七) 狀態模式State(對象行為型) 1.概述 在軟件開發過程中,應用程序可能會根據不同的情況作出不同的處理。最直接的解決方案是將這些所有可能發生的情況全都考慮到。然后使用if… ellse語句來做狀態判斷來進行不同情況的處理。但是對復雜狀態的判斷就顯得“力不從心了”。隨著增加新的狀態或者修改一個狀體(if else(或swit…

    Linux干貨 2015-07-27
  • LVM(邏輯卷管理)

    LVM 邏輯卷管理 概述:      LVM是將一個或多個硬盤的分區在邏輯上集合,相當于一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對于普通的磁盤分區有很大的靈活性。與傳統的磁盤與分區相比,LVM為計算機提供了更高層次的磁盤存儲。它使系統管理員可以更方便的為…

    Linux干貨 2016-09-05

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-23 11:08

    作為中小公司的運維,經常會遇到一些機械式的重復工作,例如:有時公司同時上線幾十甚至上百臺服務器,而且需要我們在短時間內完成系統安裝。KICKSTART無人值守安裝對我們來說是一個重要能力了。

欧美性久久久久