準備軟件:
kvm、tftp-server、xinetd、dhcp、kickstart、httpd
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
說明:安裝系統時需要的鏡像文件的傳送可以使用http、ftp、nfs多送方式,
這裏使用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-server、pxe文件
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
這樣重啓服務器後,網橋會自動創建