搭建kvm环境,及批量自动化部署

本实验使用两台主机:
10.0.91.8 作为虚拟机的宿主机
10.0.91.10 配置httpd服务,提供10.0.91.8安装虚拟机要使用的镜像及自动应答文件kickstart

主机环境:

[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[[email protected] ~]# uname -r
3.10.0-862.11.6.el7.x86_64

10.0.91.8主机上执行如下操作:

1、搭建kvm环境

1.1 linux从内核版本2.6.20之后,默认安装kvm模块,因此不需要安装kvm模块

1.2 安装qemu工具

linux上自带的qemu版本太老,最好是从官方下载最新的源码包编译安装

在QEMU 1.3版本之前,QEMU和QEMU-KVM是有区别的,从2012年底GA的QEMU 1.3版本开始,两者就完全一样

下载页面如下:
https://www.qemu.org/download/

这里下载当前最新版本2.12.0,如果本地事先已经下载源码,直接上传即可

yum install gcc gcc-c++ autoconf automake libtool glib* zlib* pixman* virt-manager virt-install virt-viewer libvirt libvirt-client libvirt-python python-virtinst -y

tar xvf qemu-2.12.0.tar.xz

cd qemu-2.12.0

./configure #默认安装路径为/usr/local

make -j 4 #这里指定编译时使用几个进程,设置为cpu数量

make install

which qemu-system-x86_64

qemu-system-x86_64 -version

为了使用上的便利,创建如下链接:
ln -s /usr/local/bin/qemu-system-x86_64 /usr/bin/qemu-kvm

qemu-kvm -version
systemctl status libvirtd
systemctl start libvirtd
systemctl enable libvirtd
systemctl status libvirtd

chgrp kvm /dev/kvm

sed -n ‘/#user = "root"/s/#user = "root"/user = "root"/p‘ /etc/libvirt/qemu.conf
sed -n ‘/#group = "root"/s/#group = "root"/group = "root"/p‘ /etc/libvirt/qemu.conf

systemctl restart libvirtd
systemctl status libvirtd

这里让虚拟机使用桥接网络(等同于vmare中的桥接)

yum  install  bridge-utils  -y

brctl  addbr  br0

cat >/etc/sysconfig/network-scripts/ifcfg-br0<<end

STP=yes
BRIDGING_OPTS=priority=32768
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=10.0.91.8
PREFIX=24
GATEWAY=10.0.91.1
DNS1=1.1.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
UUID=1b77d18d-9929-4cd3-8a32-52b858315867
DEVICE=br0
ONBOOT=yes

end

cat >/etc/sysconfig/network-scripts/ifcfg-em1<<end

TYPE=Ethernet
NAME=em1
UUID=dea57870-7fb5-46da-b068-7c007a827e50
DEVICE=em1
ONBOOT=yes
BRIDGE=br0
BRIDGE_UUID=1b77d18d-9929-4cd3-8a32-52b858315867

end

/etc/init.d/network  restart

10.0.91.10主机上执行如下操作:

1、安装httpd
yum install httpd -y

systemctl start httpd
systemctl enable httpd
systemctl status httpd

mkdir /var/www/html/{os,ks}

mount /dev/sr0 /var/www/html/os

cat >> /var/www/html/ks/ks.cfg<<end
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
#url --url=http://10.0.91.10/os/
# Use graphical install
#graphical
cmdline
text
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=vda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts=‘us‘
# System language
lang en_US.UTF-8

# Network information
network --bootproto=dhcp --device=eth0 --onboot=on --ipv6=auto
#network --bootproto=static --device=eth0 --gateway=10.0.91.1 --ip=10.0.91.82 --nameserver=114.114.114.114 --netmask=255.255.255.0
network --hostname=test.com

# Root password
#rootpw --iscrypted $6$q4DFSYCTvcXUb14r$J/WTNLpNOlJbeDj3cGNM64oFMZB3sSEarJFbqNeZLK96LGG3snqE/SFMeA8lzRkM5upTaJxQgtR7K1X59dO6O1
rootpw china123
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
#user --groups=wheel --name=nick --password=$6$EOKAkARkDAe5WoLv$0ACn/K0QNrOP2cxnalhy/k1i666EMH/Hjt8R4kS2E48xZ6xTTbfebnCTkoZ40hCPXbUPE7ifdTNoWnxCGAn6s1 --iscrypted --gecos="nick"
user --name=webapp --groups=webapp --homedir=/home/webapp --password=china123 --shell=/usr/bin/bash --uid=1000

# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=vda
# Partition clearing information
clearpart --none --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=vda --size=500
part / --fstype="xfs" --ondisk=vda --grow --size=1
part swap --fstype="swap" --ondisk=vda --recommended

logging --host=10.0.91.83 --port=514 --level=info
zerombr
firewall --disabled
selinux --disabled
reboot

%packages
@^minimal
@compat-libraries
@core
@debugging
@development
kexec-tools
%end

%addon com_redhat_kdump --enable --reserve-mb=‘auto‘
%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

end

在浏览器中访问10.0.91.10/os(显示镜像中文件列表)及10.0.91.10/ks/ks.cfg(显示ks.cfg文件内容)

在10.0.91.8上开始安装虚拟机:

mkdir /kvm/os/ -p

qemu-img create -f qcow2 /kvm/os/vm-01.qcow2

virt-install \
--name=vm-01 \
--disk path=/kvm/os/vm-01.qcow2,device=disk,bus=virtio,perms=rw,cache=writethrough \
--graphics none \
--vcpus sockets=2,cores=2,threads=2 \
--ram=16000 \
--location="http://10.0.91.10/os" \
--network bridge=br0 \
--os-type=linux \
--os-variant=rhel7 \
--extra-args="ks=http://10.0.91.10/ks/ks.cfg console=tty0 console=ttyS0,115200n8"

如果要同时安装台,将上述指令包装到for或while循环中放到脚本中,执行脚本即可

脚本示例:

cat >> auto_install.sh<<end

#!/bin/bash

for i in {01..10}
do
qemu-img create -f qcow2 /kvm/os/vm-$i.qcow2

virt-install \
--name=vm-$i \
--disk path=/kvm/os/vm-$i.qcow2,device=disk,bus=virtio,perms=rw,cache=writethrough \
--graphics none \
--vcpus sockets=2,cores=2,threads=2 \
--ram=16000 \
--location="http://10.0.91.10/os" \
--network bridge=br0 \
--os-type=linux \
--os-variant=rhel7 \
--extra-args="ks=http://10.0.91.10/ks/ks.cfg console=tty0 console=ttyS0,115200n8" &

virsh start vm-$i
done

执行脚本:
sh auto_install.sh

因为脚本安装指令中指定了终端,有使用了后台并发执行,这样回导致不能再当前终端安装过程而报错,直接回车,之后使用串口登录即可

[[email protected] ~]# virsh
Welcome to virsh, the virtualization interactive terminal.

Type: ‘help‘ for help with commands
‘quit‘ to quit

virsh # list
Id Name State
----------------------------------------------------
4 vm-01 running
8 vm-02 running
17 vm-03 running
18 vm-04 running
19 vm-05 running
20 vm-06 running
21 vm-07 running
22 vm-08 running
23 vm-09 running
24 vm-10 running

virsh # console 24 #使用串口登录,注意数字24是每台虚拟主机的Id
Connected to domain vm-10
Escape character is ^]

CentOS Linux 7 (Core)
Kernel 3.10.0-862.el7.x86_64 on an x86_64

test login: root
Password:
[[email protected] ~]# #可以看到已经通过敞口登录到虚拟机上,在虚拟节点中进行网络及其他优化设置

原文地址:https://www.cnblogs.com/liliyang/p/9685992.html

时间: 2024-07-29 11:32:09

搭建kvm环境,及批量自动化部署的相关文章

DHCP+VSFTPD+TFTP+Kickstart搭建PXE环境实现批量自动化系统安装

一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服 务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动

搭建KVM环境——07 带GUI的Linux上安装KVM图形界面管理工具

清空yum源缓存,并查看yun源 [[email protected] ~]# yum clean all Loaded plugins: fastestmirror, langpacks Cleaning repos: vcd Cleaning up everything Cleaning up list of fastest mirrors [[email protected] ~]# yum repolist Loaded plugins: fastestmirror, langpacks

Linux下搭建jenkins+svn+http+maven自动化部署

服务器设置: 卸载redhat的yum,安装centos的yum,配置第三方yum 1.删除redhat原有的rpm -qa |grep yum |xargs rpm -e yum --nodeps 2.下载yum安装文件,如果下载时找不到文件,http://mirrors.163.com/centos/6/os/x86_64/ wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.27-14.el6.centos.noa

.NET 半天搭建Jenkins持续集成与自动化部署系统

前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由于当时对系统划分的不合理等等原因导致每次发版都会设计到多个系统的发布,小的版本三五个,大的版本十几个甚至几十个系统的同时发布!而我们也没有相应的基础设施的支撑,发版方式更是最传统的,开发人员将发布包发给运维人员,由其讲各个发布包一个一个覆盖到生产环境.因此每次上线仅仅发版就需要2-3个小时.这种方式

cobbler 批量自动化部署 Linux 系统

实验介绍:Cobbler自动化部署linux系统,比PXE部署方式效率更高,因此在大多环境中,以cobbler 方式部署系统,更为方便:具体步骤如下所示: 若描述有误欢迎拍砖交流QQ:45223208 1.安装cobbler 和 DHCP服务: yum install cobbler -y yum install dhcp -y 2. 启动服务 systemctl start cobbler tftp httpd systemctl enable cobbler tftp httpd 3. 根据

使用开源my-deploy工具实现开发环境的代码自动化部署

@编者按: 由于公司内部存在的开发系统:内网开发--外网预发布--外网生产环境,程序员频繁的更新代码造成运维人员大量时间被占用,于是有了使用该开源工具的部署测试环节.在这里感谢该开源工具的作者,也希望我这边文档能多少帮助需要类似开发环境的技术人员. 1.部署: 开源项目地址:https://github.com/kelvv/my-deploy 操作视频教程:http://v.youku.com/v_show/id_XMTYxMjc0ODg3Mg==.html 基础环境:node 4.X.X以上版

搭建KVM环境

实验环境 镜像:CentOS-7-x86_64-DVD-1511.iso VMWare:我用的最新版14.1.1 build-7528167 开启虚拟化支持 BIOS 开启VT KVM需要硬件虚拟化特性的支持.因此,在安装KVM之前,应该在BIOS中,将CPU虚拟化开启.首先找到CPU features,然后找到Virtualization Technology(VT)此项,将值设置为Enabled. 虚拟化技术(Virtualization Techonology,VT),不同的厂商对于虚拟化

搭建KVM环境——06 添加一块新的硬盘存放虚拟机

虚拟机磁盘格式 创建一个raw格式的虚拟机磁盘 [[email protected] opt]# qemu-img create -f raw CentOS-7.2-x86_64.raw 10G Formatting 'CentOS-7.2-x86_64.raw', fmt=raw size=10737418240 [[email protected] opt]# ll -h total 16K -rw-r--r-- 1 root root 10G May 22 19:23 CentOS-7.2

解放劳动力—Cobbler批量自动化部署多版本系统

1 Cobbler  介绍 Cobbler 是一个 Linux 服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理 DHCP,DNS 等.Cobbler 可以使用命令行方式管理,也提供了基于 Web 的界面管理工具(cobbler-web),还提供了API 接口,可以方便二次开发使用.Cobbler 是较早前的 kickstart 的升级版,优点是比较容易配置,还自带 web 界面比较易于管理.Cobbler 内置了一个轻量级配置管理系统,但它也