日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

kickstart自动化系统安装_自动化运维之kickstart自动化部署安装操作系统

發布時間:2023/12/14 windows 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kickstart自动化系统安装_自动化运维之kickstart自动化部署安装操作系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第1章 簡介

1.1 PXE簡介

qPXE是預啟動執行環境,全名是Pre-boot Execution Environment

q通過網絡接口啟動計算機,不需要依賴本地存儲設備或本地已安裝的操作系統

q由Intel和Systemsoft公司于1999年9月20日公布的技術

qC/S的工作模式

qPXE客戶端會調用網際協議(IP)、用戶數據協議(UDP)、動態主機分配協議(DHCP)、小型文件傳輸協議(TFTP)等網絡協議

1.2 kickstart簡介

kickstart是一種無人值守的安裝方式??? ,他的工作原理就是在安裝的過程中記錄人工干預填寫的各種參數,并會生成一個名為ks.cfg的文件,如果在自動化安裝的過程中出現需要填寫參數的情況,安裝程序就會去找ks.cfg程序,如果找到合適的參數,就采用所找到的參數,若找不到則需要人工進行填寫,所以如果ks.cfg文件中涵蓋了所有需要填寫的參數,那么安裝者完全可以只需告訴安裝程序從何處下載ks.cfg文件,然后就可以等待安裝完畢,然后會根據ks.cfg

文件設置重啟/安裝系統,最后結束安裝。

1.3 Cobbler簡介

Cobbler集中和簡化了通過網絡安裝操作系統需要使用的DHCP、TFTP、和DNS服務的配置,Cobbler不僅有一個命令行界面,還提供了一個web界面,大大降低了使用者的入門水平。Cobbler內置了一個輕量級的配置管理系統,但也支持和其他配置管理系統集成,例如Puppet,但是暫時還不支持SaltStack

1.4 Kickstart與Cobbler的區別

簡單的說就是Cobbler是對Kickstart的封裝,簡化了安裝步驟、使用流程、降低了使用者的門檻

1.5 PXE+Kickstart裝機流程圖

第2章 環境準備

2.1 系統環境

[root@kisckstart ~]# cat /etc/redhat-release

CentOS release 6.9 (Final)

[root@kisckstart ~]# uname -m

x86_64

[root@kisckstart ~]# uname -r

2.6.32-696.el6.x86_64

[root@kisckstart ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'

10.33.1.2

[root@kisckstart ~]# hostname

kisckstart

2.2 關閉安裝機制

[root@kisckstart ~]# /etc/init.d/iptables stop

[root@kisckstart ~]# chkconfig iptables off

[root@kisckstart ~]# setenforce 0

[root@kisckstart ~]# sed "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/sysconfig/selinux

第3章 部署kickstart

3.1 安裝DHCP服務

[root@kisckstart ~]# yum install -y dhcp

[root@kisckstart ~]# rpm -ql dhcp|grep "dhcpd.conf"? ==》查找配置文件的位置

/etc/dhcp/dhcpd.conf

[root@kisckstart ~]# cat /etc/dhcp/dhcpd.conf

subnet 10.33.0.0 netmask 255.255.0.0 {

range 10.33.1.100 10.33.1.200;? ##分配的IP地址范圍

option subnet-mask 255.255.0.0;? ##設定netmask

default-lease-time 21600;?? ##設置默認的IP租用期

max-lease-time 43200;? ##設置最大的IP最大的IP租用期

next-server 10.33.1.2;? ##TFTP服務器的IP地址

filename "/pxelinux.0";? ##告訴客戶端從根目錄下載pxelinux.0文件

}

[root@kisckstart ~]# /etc/init.d/dhcpd start

[root@kisckstart ~]# netstat -tunlp |grep dhcpd? ==》查看端口

3.2 安裝TFTP服務

[root@kisckstart ~]# yum install -y tftp-server

[root@kisckstart ~]# cat /etc/xinetd.d/tftp

service tftp

{

socket_type??????????? = dgram

protocol???????? = udp

wait?????????????? = yes

user?????????????? = root

server??????????????????? = /usr/sbin/in.tftpd

server_args??????????? = -s /var/lib/tftpboot

disable????????????????? = no ???##由原來的yes變為no

per_source???????????? = 11

cps???????????????? = 100 2

flags????????????? = IPv4

}

[root@kisckstart ~]# /etc/init.d/xinetd start

[root@kisckstart ~]# netstat -tnulp|grep "xinetd"

3.3 配置HTTP服務

[root@kisckstart ~]# yum install -y httpd

[root@kisckstart ~]#sed -i "277i ServerName 127.0.0.1:80" /etc/httpd/conf/httpd.conf

[root@kisckstart conf]# /etc/init.d/httpd start

3.4 上傳鏡像

[root@kisckstart ~]# mkdir /var/www/html/centos-6.9 ==》創建鏡像存放目錄

[root@kisckstart ~]# mount /dev/cdrom /var/www/html/centos-6.9/? ==》掛載

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@kisckstart ~]# df -h? ==》檢查

Filesystem????? Size? Used Avail Use% Mounted on

/dev/sda3??????? 19G? 1.8G?? 16G? 10% /

tmpfs?????????? 491M???? 0? 491M?? 0% /dev/shm

/dev/sda1?????? 190M?? 35M? 146M? 19% /boot

/dev/sr0?? ?????3.7G? 3.7G???? 0 100% /var/www/html/centos-6.9

注意:只要將鏡像通過web發布即可,所以不管你怎么弄都行!!!

3.5 瀏覽器訪問測試

3.6 配置支持PXE的啟動程序

3.6.1 PXE引導配置

qsyslinux是一個功能強大的引導加載程序,并且兼容各種介質

qsyslinux是一個小型的linux操作系統,目的是簡化linux首次安裝的時間,并建立維護或其他特殊用途的啟動盤

q如果沒有找到pxelinux.0這個文件,可以安裝下syslinux

[root@kisckstart ~]# yum install -y syslinux

[root@kisckstart ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

[root@kisckstart ~]# cp -a /var/www/html/centos-6.9/isolinux/* /var/lib/tftpboot/

[root@kisckstart ~]# ls /var/lib/tftpboot/

boot.cat? grub.conf?? isolinux.bin? memtest???? splash.jpg? vesamenu.c32

boot.msg? initrd.img? isolinux.cfg? pxelinux.0? TRANS.TBL?? vmlinuz

[root@kisckstart ~]# mkdir? /var/lib/tftpboot/pxelinux.cfg? ==》創建一個pxelinux.cfg目錄,存放客戶端的配置文件

[root@kisckstart ~]# cp /var/www/html/centos-6.9/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

3.6.2 半自動安裝

3.6.2.1 新建一個虛擬機然后開機

3.6.2.2 然后選擇第一項

3.6.2.3 選擇英語

3.6.2.5 選擇美式英語

3.6.2.6 選擇URL安裝

3.6.2.7 禁用IPv6

3.6.2.8 輸入http地址

3.6.2.9 最后和U盤或光盤安裝的步驟一樣

3.6.3 創建ks.cfg文件

3.6.3.1 生成配置文件的方式

【法1】

每安裝好一臺Centos機器,Centos就會創建一個名字為anaconda-ks.cfg的kickstart文件,位于/root目錄下面,記錄你的真實安裝配置,如果希望實現和某系統類似的安裝,可以基于該系統的kickstart配置文件來生成你自己的kickstart配置文件

【法2】

閱讀kickstart配置文件手冊,用文本編輯器就可以創建屬于自己的kickstart文件

【法3】

Centos提供了一個圖形化的kickstart配置工具。在任何一個安裝好的Linux系統上運行該工具,就可以很容易地創建你自己的kickstart配置文件。kickstart配置工具命令為redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4,RHEL5).網上有很多用CentOS桌面版生成ks文件的文章,如果有現成的系統就沒什么可說。但沒有現成的,也沒有必要去用桌面版,命令行也很簡單

3.6.3.2 編寫ks.cfg文件

mkdir -p /var/www/html/ks_config

cat /var/www/html/ks_config/CentOS-6.9-ks.cfg

#Kickstart Configurator for CentOS 6.9 by liuzhonghhe

install

url --url="http://172.16.1.200/centos-6.9"

text

lang en_US.UTF-8

keyboard us

zerombr

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

network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=Centos6

timezone -utc Asia/Shanghai

authconfig --enableshadow --passalgo=sha512

rootpw --iscrypted $6$4/LtE7Epu9PGKS7B$FkjCppxcjDxfYJ6RAFU52W0JzPWYDjQmyt2sa8lydljECLrhGH6YwtKBNQtXqF59bDs2CSfSiFPLEzgy2EfPz0

clearpart --all --initlabel

part /boot --fstype=ext4 --asprimary --size=200

part swap --size=1024

part / --fstype=ext4 --grow --asprimary --size=200

firstboot --disable

selinux --disabled

firewall --disabled

logging --level=info

reboot

%packages

@base

@compat-libraries

@debugging

@development

tree

nmap

sysstat

lrzsz

dos2unix

telnet

%post

wget -O /tmp/optimization.sh http://172.16.1.200/ks_config/optimization.sh &>/dev/null

/bin/sh /tmp/optimization.sh

%end

3.6.3.3 開機優化腳本

vim ?/var/www/html/ks_config/optimization.sh

cat?? /var/www/html/ks_config/optimization.sh

#!/bin/bash

##############################################################

# File Name: /var/www/html/ks_config/optimization.sh

# Version: V1.0

# Author: Liu Zhonghe

# Description: Linux system initialization

##############################################################

. /etc/init.d/functions

Ip=172.16.1.200

Port=80

ConfigDir=ks_config

# Judge Http server is ok?

PortNum=`nmap $Ip? -p $Port 2>/dev/null|grep open|wc -l`

[ $PortNum -lt 1 ] && {

echo "Http server is bad!"

exit 1

}

# Defined result function

function Msg(){

if [ $? -eq 0 ];then

action "$1" /bin/true

else

action "$1" /bin/false

fi

}

# Defined IP function

function ConfigIP(){

Suffix=`ifconfig eth1|awk -F "[ .]+" 'NR==2 {print $6}'`

cat >/etc/sysconfig/network-scripts/ifcfg-eth1 <

DEVICE=eth1

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

IPADDR=172.16.1.$Suffix

PREFIX=24

GATEWAY=172.16.1.61

DNS1=10.0.0.2

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth1"

END

Msg "config eth1"

}

# Defined Yum source Functions

function yum(){

YumDir=/etc/yum.repos.d

[ -f "$YumDir/CentOS-Base.repo" ] && cp $YumDir/CentOS-Base.repo{,.ori}

wget -O $YumDir/CentOS-Base.repo http://$Ip:$Port/$ConfigDir/CentOS-Base.repo &>/dev/null &&\

wget -O $YumDir/epel.repo http://$Ip:$Port/$ConfigDir/epel.repo &>/dev/null &&\

Msg "YUM source"

}

# Defined Hide the system version number Functions

function HideVersion(){

[ -f "/etc/issue" ] && >/etc/issue

Msg "Hide issue"

[ -f "/etc/issue.net" ] && > /etc/issue.net

Msg "Hide issue.net"

}

# Defined OPEN FILES Functions

function openfiles(){

[ -f "/etc/security/limits.conf" ] && {

echo '*? -? nofile? 65535' >> /etc/security/limits.conf

Msg "open files"

}

}

# Defined Kernel parameters Functions

function kernel(){

KernelDir=/etc

[ -f "$KernelDir/sysctl.conf" ] && /bin/mv $KernelDir/sysctl.conf{,.ori}

wget -O $KernelDir/sysctl.conf http://$Ip:$Port/$ConfigDir/sysctl.conf &>/dev/null

Msg "Kernel config"

}

# Defined System Startup Services Functions

function boot(){

for oldboy in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "crond|network|rsyslog|sshd|sysstat"`

do

chkconfig $oldboy off

done

Msg "BOOT config"

}

# Defined Time Synchronization Functions

function Time(){

echo "#time sync by zhangyao at $(date +%F)" >>/var/spool/cron/root

echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov &>/dev/null' >>/var/spool/cron/root

Msg "Time Synchronization"

}

# Defined main Functions

function main(){

ConfigIP

yum

HideVersion

openfiles

kernel

boot

Time

}

main

default ks

prompt 0

label ks

kernel vmlinuz

append initrd=initrd.img ks=http://172.16.1.200/ks_config/CentOS-6.7-ks.cfg ksdevice=eth1

3.6.3.4 ?整合配置文件

vim /var/lib/tftpboot/pxelinux.cfg/default

default ks

prompt 0

label ks

kernel vmlinuz

append initrd=initrd.img ks=http://172.16.1.200/ks_config/CentOS-6.7-ks.cfg ksdevice=eth1

3.6.4 無人值守自動安裝

過程截圖

第4章 ks.cfg文件詳解

4.1 Centos6官方參考文檔

4.2 ks.cfg文件可以分為3段

q命令段

用來配置鍵盤類型、語言、安裝方式等系統的配置,有必選項和可選項,若缺少必須項,在安裝的過程中會暫定,需手動指定

q軟件包段

2%packages

2@groupname:指定安裝的包組

2package_name:指定安裝的包

2-package_name:指定不安裝的包

q腳本段

2%pre:安裝系統前執行的命令或腳本(由于只依賴于啟動鏡像,支持的命令很少)

2%post:安裝系統后執行的命令或腳本(基本支持所有命令)

4.3 詳細解釋關鍵字含義install告知安裝程序,這是一次全新安裝,而不是升級upgrade。

url --url=" "通過FTP或HTTP從遠程服務器上的安裝樹中安裝。

url --url="http://172.16.1.200/centOS-6.7/"

url --url ftp://:@/

nfs從指定的NFS服務器安裝。

nfs --server=nfsserver.example.com --dir=/tmp/install-tree

text使用文本模式安裝。

lang設置在安裝過程中使用的語言以及系統的缺省語言。lang en_US.UTF-8

keyboard設置系統鍵盤類型。keyboard ? us

zerombr清除mbr引導信息。

bootloader系統引導相關配置。

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

--location=,指定引導記錄被寫入的位置.有效的值如下:mbr(缺省),partition(在包含內核的分區的第一個扇區安裝引導裝載程序)或none(不安裝引導裝載程序)。

--driveorder,指定在BIOS引導順序中居首的驅動器。

--append=,指定內核參數.要指定多個參數,使用空格分隔它們。

network為通過網絡的kickstart安裝以及所安裝的系統配置聯網信息。

network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 ? --hostname=CentOS6

--bootproto=[dhcp/bootp/static]中的一種,缺省值是dhcp。bootp和dhcp被認為是相同的。

static方法要求在kickstart文件里輸入所有的網絡信息。

network --bootproto=static --ip=10.0.0.200 --netmask=255.255.255.0 ? --gateway=10.0.0.2 --nameserver=10.0.0.2

請注意所有配置信息都必須在一行上指定,不能使用反斜線來換行。

--ip=,要安裝的機器的IP地址.

--gateway=,IP地址格式的默認網關.

--netmask=,安裝的系統的子網掩碼.

--hostname=,安裝的系統的主機名.

--onboot=,是否在引導時啟用該設備.

--noipv6=,禁用此設備的IPv6.

--nameserver=,配置dns解析.

timezone設置系統時區。timezone ? --utc Asia/Shanghai

authconfig系統認證信息。authconfig ? --enableshadow --passalgo=sha512

設置密碼加密方式為sha512?啟用shadow文件。

rootpwroot密碼

clearpart清空分區。clearpart ? --all --initlabel

--all?從系統中清除所有分區,--initlable?初始化磁盤標簽

part磁盤分區。

part /boot --fstype=ext4 --asprimary --size=200

part swap --size=1024

part / --fstype=ext4 --grow --asprimary --size=200

--fstype=,為分區設置文件系統類型.有效的類型為ext2,ext3,swap和vfat。

--asprimary,強迫把分區分配為主分區,否則提示分區失敗。

--size=,以MB為單位的分區最小值.在此處指定一個整數值,如500.不要在數字后面加MB。

--grow,告訴分區使用所有可用空間(若有),或使用設置的最大值。

firstboot負責協助配置redhat一些重要的信息。

firstboot --disable

selinux關閉selinux。selinux --disabled

firewall關閉防火墻。firewall ? --disabled

logging設置日志級別。logging ? --level=info

reboot設定安裝完成后重啟,此選項必須存在,不然kickstart顯示一條消息,并等待用戶按任意鍵后才重新引導,也可以選擇halt關機

總結

以上是生活随笔為你收集整理的kickstart自动化系统安装_自动化运维之kickstart自动化部署安装操作系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。