kvm+pxe+kickstart自動化安裝redhat7.2

準備軟件:

kvmtftp-serverxinetddhcpkickstarthttpd

Redhat7.2鏡像

 

前置準備yum源設置:

cat /etc/yum.repos.d/media.repo 
[media]
name=”media”
baseurl=”file:///media”
enabled=1
gpgcheck=0

 掛載光盤:

 mount /dev/sr0 /media



各軟件安裝配置:

一、kickstart安裝

 

a、安裝

yum install -y  system-config-kickstart   pykickstart


安裝圖形配合方式的管理工具 system-config-kickstart以及文本方式的管理工具pykickstart

上述的工具安裝任意一個都可以,甚至用戶對kickstart語法非常熟悉,不用安裝上述軟件,使用普通文本編輯器比如vim直接編寫kickstart文件

 

b、編寫kickstart文件

可以手動編寫也可以使用system-config-kickstart圖形命令設置kickstart文件。

下面使用手動編輯。

cat /var/www/html/ks.cfg 
 
#version=RHEL7
auth --useshadow --enablemd5 --passalgo=sha512
#Use network installation
#text
url --url="http://172.25.1.11/RHEL7/"
#Firewal configuration 
firewall --disable
firstboot --disable
#Keyboard layouts
keyboard --vckeymap=us --xlayouts='us','us'
#System language
lang en_US.UTF-8
#Installation loggin level
logging --level=info
#Network information
network --bootproto=dhcp
#yum repo source
repo --name="pxe-install-source" --baseurl="http://172.25.1.11/RHEL7/"
#Root password
rootpw --iscrypted $1$7b6dbb33$0w085AtBZyyE9TrVIURsL1
group  --name=student  --gid=10001 
user   --name=student  --gecos="student rhce7" --groups=student --password=student --plaintext 
#selinux configuration
selinux --enforcing
#system sevices
services --disabled="kdump,rhsmcertd" --enabled="network,sshd,rsyslog,chronyd"
#system timezone
timezone --utc Asia/Shanghai
#system booloader configuration
bootloader --location=mbr --boot-drive=vda
#clear the master boot record
zerombr
#partition clearing information
clearpart --all --initlabel 
#disk partitioning information 
#vgroup information
part pv.01 --fstype="lvmpv" --ondisk=vda --grow 
part /boot --fstype="xfs" --ondisk=vda --size=500
volgroup myvg  --pesize=4096   pv.01
logvol swap --vgname=myvg --fstype=swap --size=1024 --name=swapvol
logvol / --vgname=myvg  --fstype=xfs --size=4096 --name=rootvol 
logvol /usr/local/ --vgname=myvg --fstype=xfs --size=1024 --name=usrlocalvol --grow
reboot
#packages
%packages
@^Minimal Install
%end
 
#post scripts
%post --erroronfail
echo "hello" > /tmp/hello.txt
 
cat > /etc/yum.repos.d/pxe-source.repo << EOF
[pxe-source]
name="pxe-source"
baseurl="http://172.25.1.11/RHEL7/"
gpgcheck=0
enabled=0
EOF
cat > /etc/yum.repos.d/media.repo << EOF
[media]
name="media"
baseurl="file:///media/"
gpgcheck=0
enabled=0
EOF

 
%end

編寫完成後使用ksvalidator  /var/www/html/ks.cfg 來檢查是否有語法錯誤。

二、httpd相關

 

a、安裝httpd

yum install -y httpd


b、配置httpd以及掛載鏡像到指定目錄

mkdir /var/www/html/RHEL7
mount /dev/sr0  /var/www/html/RHEL7


c、啓動httpd

systemctl  start httpd


說明:安裝系統時需要的鏡像文件的傳送可以使用httpftpnfs多送方式,

這裏使用http方式

設置開機啓動

systemctl enable httpd


 

三、pxe相關

a、安裝tftp-server以及xinetd

yum  tftp-server tftp xinetd syslinux  -y


tftp-server提供tftp服務,將pxe需要的後置程序傳輸給客戶端的網卡的pxe前置程序。

xinetd用於控制tftp-server服務的啓動。

syslinux提供/usr/share/syslinux/pxelinux.0文件,用戶提供pxe客戶端的後置程序。

 

b、設置tftp-serverpxe文件

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
per_source= 11
cps= 100 2
flags= IPv4
}

設置tftp爲開啓狀態

cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/


pxe的後端程序pxelinux.0複製到tftp的工作目錄下

 

cp /media/isolinux/{vmlinuz,initrd.img}   /var/lib/tftpboot/


複製安裝光盤的linux內核以及驅動文件到tftp的工作目錄

mkdir /var/lib/tfpboot/pxelinux.cfg


創建pxelinux.cfg 的目錄,用於保存pxelinux安裝配置文件

 cp /media/isolinux/isolinux.cfg
  /var/lib/tftpboot/pxelinux.cfg/default


pxelinux的配置文件改名存放到 /var/lib/tftpboot/pxelinux.cfg/

cat  /var/lib/tftpboot/pxelinux.cfg/default 
#default vesamenu.c32
default linux
timeout 600
...
...
...
label linux
  menu label ^Install the pxe redhat 00000 7.2
  kernel vmlinuz
  append initrd=initrd.img  ks=http://172.25.1.11/ks.cfg
#  append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.2\x20Server.x86_64 quiet
...
...
...

修改pxelinux.cfg(這裏是default文件)的默認內容爲上述內容

c、設置啓動

systemctl start xinetd 
systemctl enable xinetd


 

四、dhcp相關

a、安裝dhcp服務

yum install -y dhcp


b、配置dhcp

[root@server vms]# cat /etc/dhcp/dhcpd.conf
subnet 172.25.1.0 netmask 255.255.255.0 {
  range 172.25.1.100 172.25.1.254;
  option domain-name-servers 172.25.1.1;
  option domain-name "xiaotong.com";
  option routers 172.25.1.1;
  option broadcast-address 172.25.1.255;
  default-lease-time 600;
  max-lease-time 7200;
  next-server 172.25.1.11;
  filename "pxelinux.0";
}

上面是配置文件,下面是具體解釋:

 

[root@server vms]# cat /etc/dhcp/dhcpd.conf

subnet 172.25.1.0 netmask 255.255.255.0 {

  range 172.25.1.100 172.25.1.254;   #客戶端獲取的ip地址變化範圍

  option domain-name-servers 172.25.1.1;  #dns服務器的地址,這個可以沒有dns服務器。

  option domain-name "xiaotong.com"; #dns服務器的域名名稱,可以不指定

  option routers 172.25.1.1;  #設置客戶端獲取的網關地址

  option broadcast-address 172.25.1.255; #設置客戶端獲取的廣播地址

  default-lease-time 600;  #默認租約時間

  max-lease-time 7200; #最大租約時間

  next-server 172.25.1.11;  #設置tftp-server服務器ip地址

  filename "pxelinux.0"; #設置pxe後端程序的名稱。

}

c、啓動服務

systemctl start dhcpd 
systemctl enable dhcpd

可以設置成開機啓動

 

五、kvm虛擬機相關

a、安裝kvm

安裝虛擬化環境軟件

yum instal qemu-kv qemu-img libvirt virt-install virt-manager -y


安裝網橋工具

yum install bridge-utils -y


其他安裝(可以不安裝)

yum install tigervnc tigervnc-server -y


 

b、配置虛擬機環境

清理掉系統自動設置的網橋等設備連接

 

brctl show


將多餘的橋刪除掉,這些橋是系統事先設置的

brctl  delbr  xxx


或者使用

nmcli connection show


查找相關多餘的連接

使用如下命令刪除

nmcli connection delete XXX


 

創建網橋

virsh iface-bridge eth0 br0


 

網橋創建後,配置文件爲如下:

cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=172.25.1.11
NETMASK=255.255.255.0
GATEWAY=172.25.1.1
IPV6INIT=yes
IPV6_AUTOCONF=yes
DHCPV6C=no
STP=on
DELAY=0

使用brctl查看系統中的橋

[root@server network-scripts]# brctl show 
bridge namebridge idSTP enabledinterfaces
br08000.000c29b58280yeseth0

使用nmcli查看系統的連接

[root@server network-scripts]# nmcli  connection  show 
NAME         UUID                                  TYPE            DEVICE  
br0          35cbe2e2-36ad-4233-9ba8-6c0e39a8ebda  bridge          br0    
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  802-3-ethernet  eth0


 

 

查看網絡設備的連接關聯情況:

[root@server network-scripts]# nmcli  dev status 
DEVICE  TYPE      STATE      CONNECTION  
br0     bridge    connected  br0         
eth0    ethernet  connected  System eth0 
lo      loopback  unmanaged  --


 

c、安裝虛擬機

 

virt-install -n testrhel7    --boot hd,network  \
 --disk /var/lib/libvirt/p_w_picpaths/pxe_1.qcow2,device=disk,bus=virtio  \
 --network bridge=br0,model=virtio   \
 --ram 1024  \
 --graphics vnc  \
 --force


或者使用virt-manager 圖形安裝,安裝中設置網絡爲br0

 

暫停虛擬機

virsh suspend DOMAIN_NAME

 

 

如果network.service 服務被禁用,使用的是NetworkManager來管理網絡,那麼使用如下命令創建網橋br0,網橋指向的物理接口 br0-port1(其實可以看做是之前的eth0

 

  nmcli  connection  add con-name  br0 type  bridge    ifname br0 
  nmcli  connection  modify  br0 ipv4.addresses 172.25.1.11/24 ipv4.gateway  172.25.1.1
  nmcli  connection  modify br0  ipv4.method manual
  nmcli  connection  add con-name br0-port1 type bridge-slave  ifname eth0   master br0
  nmcli  connection  up b0-port1


 

這樣重啓服務器後,網橋會自動創建






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章