1. 概述

本篇博客主要使用运行在win10专业版上的vmware workstation 15 pro虚拟化软件,安装centos7.7最小化系统,并在centos7上安装kvm虚拟机,实现快速创建和启动一个虚拟机的过程。

本人在deepin15.11操作系统上,部署了同样的环境。但是有些细节是有区别的。

2. 详述

2.1 虚拟机创建

创建新的虚拟机,命名为opsdev(运维开发),暂时不安装操作系统

处理器选择2颗,每颗4核心,内存10240MB

网络类型为NAT(或者vmnet 8),NAT网卡的mac地址为:00:00:00:08:00:02

系统盘为20GB,单个文件,命名为opsdev-os

其他配置默认安装。

完成之后:

删除虚拟机的声卡和打印机

勾选处理器设置中的虚拟化引擎

新增一款网卡,仅主机模式(vmnet 1),mac地址为00:00:00:01:00:02

新增一块磁盘,大小为80G,单个文件,命名为opsdev-data

综述:这样就类型云虚拟机一样,8核10G,双网卡,支持虚拟化,最小化安装操作系统

2.2 操作系统安装

通过虚拟机的CDROM设备,加载本地已经下载的centos7的最小化系统镜像,启动虚拟机开始操作系统安装

centos7的安装很简单。

这里主要是设置:

两个网卡,均设置为静态IP地址。

NAT类型的网卡,IP地址为:192.168.8.2,网关192.168.2.254,DNS:192.168.2.254

仅主机类型的网卡,IP地址为192.168.1.2,其他不配置

主机名为:opsdev

root密码为:liwanliang

其他默认安装即可

2.3 opsdev基础环境

使用xshell6登陆opsdev

opsdev为最小化安装,首先安装一下基本工具:

yum -y install vim net-tools psmisc lsof tree wget git lrzsz

2.3.1 生产公密钥对

ssh-keygen,回车到底。

2.3.2 关闭防火墙和selinux

关闭防火墙:systemctl stop firewalld && systemctl disable firewalld

修改selinux:vim /etc/selinux/config,SELINUX=disabled

2.3.3 关闭postfixe

关闭postfix:systemctl stop postfix && systemctl disable postfix

2.3.4 禁用ipv6

编辑配置:vim /etc/default/grub

修改为:

GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rhgb quiet ipv6.disable=1"

执行命令:grub2-mkconfig -o /boot/grub2/grub.cfg

2.3.5 挂载数据盘

lsblk查看当前系统的块设备。

mkfs.xfs /dev/sdb,将数据盘格式化为xfs文件系统

mkdir -p /data,创建挂载点

blkid,查看sdb的UUID号

vim /etc/fstab,最后一行添加

UUID=b68a0552-6d36-4e8b-9bf5-f597bcabc12f /data xfs defaults 0 0

mount -a,执行挂载

上述操作完之后,重启机器

2.4 opsdev虚拟化环境

2.4.1 配置双网卡的网桥

安装网桥软件环境:yum -y instal bridge-utils

进入/etc/sysconfig/network-scripts

创建ifcfg-br0,内容如下:

TYPE=Bridge
NAME=br0
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.8.2
PREFIX=24
GATEWAY=192.168.8.254
DNS1=192.168.8.254
IPV6_PRIVACY=no

修改ifcfg-ens32,内容如下:

TYPE=Ethernet
NAME=ens32
ONBOOT=yes
BRIDGE=br0

创建ifcfg-br1,内容如下:

TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
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=br1
DEVICE=br1
ONBOOT=yes
IPADDR=192.168.1.2
PREFIX=24
IPV6_PRIVACY=no

修改ifcfg-ens33,内容如下:

TYPE=Ethernet
NAME=ens33
DEVICE=ens33
BRIDGE=br1

重启网络服务systemctr restart network

2.4.2 安装dnsmasq和配置

执行安装:yum -y install dnsmasq

使用下面配置:/etc/dnsmasq.conf

port=5353
dhcp-range=set:vmware-nat,192.168.8.3,192.168.8.99,255.255.255.0,120h
dhcp-range=set:vmware-host-only,192.168.1.3,192.168.1.99,255.255.255.0,120h
dhcp-host=00:00:00:08:00:03,192.168.8.3,base
dhcp-host=00:00:00:01:00:03,192.168.1.3
dhcp-host=00:00:00:08:00:11,192.168.8.11,node11
dhcp-host=00:00:00:01:00:11,192.168.1.11
dhcp-host=00:00:00:08:00:12,192.168.8.12,node12
dhcp-host=00:00:00:01:00:12,192.168.1.12
dhcp-host=00:00:00:08:00:13,192.168.8.13,node13
dhcp-host=00:00:00:01:00:13,192.168.1.13
dhcp-host=00:00:00:08:00:14,192.168.8.14,node14
dhcp-host=00:00:00:01:00:14,192.168.1.14
dhcp-host=00:00:00:08:00:15,192.168.8.15,node15
dhcp-host=00:00:00:01:00:15,192.168.1.15
dhcp-host=00:00:00:08:00:16,192.168.8.16,node16
dhcp-host=00:00:00:01:00:16,192.168.1.16
......
dhcp-option=tag:vmware-nat,option:router,192.168.8.254
dhcp-option=tag:vmware-host-only,option:router,0.0.0.0
dhcp-option=tag:vmware-nat,option:ntp-server,192.168.8.2
dhcp-option=tag:vmware-nat,option:dns-server,192.168.8.254
conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig

执行命令:systemctl start dnsmasq && systemctl enable dnsmasq

注意,比如关闭selinux,才能够正常启动·

2.4.3 安装httpd服务

yum -y install httpd,安装httpd服务

systemctl start httpd && systemctl enable httpd,启动和配置开机启动

mkdir -p /var/www/html/osimage/centos/7,用于存放操作系统镜像

rz,通过xshell上传centos7的最小化系统镜像文件

mount -o loop CentOS-7-x86_64-Minimal-1908.iso /mnt,挂载镜像文件

cp -r /mnt/* /var/www/html/osimage/centos/7,将操作系统文件拷贝至httpd服务目录下

umount /mnt,卸载操作系统镜像的挂载

2.4.4 安装kvm虚拟化环境

执行命令:yum -y install qemu-kvm libvirt virt-install

执行命令:systemctl start libvirtd && systemctl enable libvirtd

因为启动了dnsmasq服务,因此需要关闭libvirtd启动的dnsmasq,可执行

virsh net-autostart --disable default关闭virtbr0(default)的开机自启动

2.4.5 安装openldap认证服务

yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel,安装openldap软件环境

systemctl start slapd && systemctl enable slapd,启动和设置开机启动

netstat -tupln|trep slapd,查看是否启动端口监听

slappasswd -h {SSHA} -s liwanliang,生成明文密码liwanliang的HASH值

创建chdomain.ldif,内容如下:

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=liwanliang,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=liwanliang,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}Cq7Cw0unvXejuaigFGiVTt+4q+hx6o7f

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,dc=liwanliang,dc=com" read by *none

ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif,将chdomain.ldif添加至数据库

创建basedomain.ldif,内如下:

dn: dc=liwanliang,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: LiwanLiang Person
dc: liwanliang

dn: cn=admin,dc=liwanliang,dc=com
objectClass: organizationalRole
cn: admin

dn: ou=People,dc=liwanliang,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=liwanliang,dc=com
objectClass: organizationalRole
cn: Group

将basedomain.ldif添加至数据库

ldapadd -x -W -D "cn=admin,dc=liwanliang,dc=com" -f basedomain.ldif

创建用户liwl01,创建用户liwl01的ldif文件,内容如下:

dn: uid=liwl01,ou=People,dc=liwanliang,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: liwl01
uid: liwl01
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/liwl01
loginShell: /bin/bash
gecos: liwl01 [user (at) liwanliang.com]
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7

将liwl01.ldif添加至数据库:

ldapadd -x -W -D "cn=admin,dc=liwanliang,dc=com" -f liwl01.ldif

修改liwl01的密码:

ldappasswd -s liwanliang -W
-D "cn=admin,dc=liwanliang,dc=com"
-x "uid=liwl01,ou=People,dc=liwanliang,dc=com"

查看添加的条目:

ldapsearch -x cn=admin,dc=liwanliang,dc=com

2.4.6 安装chrony时间同步服务

yum -y install chrony,安装chrony服务

修改/etc/chrony.conf,allow 192.168.8.0/24

systemctl start chronyd && systemctl enable chronyd

3. kvm虚拟机安装

3.1 创建模板虚拟机base

这里创建一个kvm虚拟机,为基础虚拟机,命名为base。以后创建虚拟机,直接从该虚拟机克隆即可快速创建。

上面dnsmasq.conf里面,配置了mac地址为00:00:00:08:00:03的网卡,分配的IP地址为192.168.8.2,00:00:00:01:00:03的网卡,分配的IP地址为192.168.1.2

执行命令(或者写出脚本):

virt-install \
--name  base \
--memory 2048 \
--vcpus sockets=2,cores=4,threads=1 \
--location http://192.168.8.2/osimage/centos/7 \
-x "console=ttyS0" \
--os-variant rhel7 \
--disk path=/data/vhosts/base.img,size=10,bus=scsi \
--network bridge=br0,mac=00:00:00:08:00:03,model=virtio \
--network bridge=br1,mac=00:00:00:01:00:03,model=virtio \
--nographics

本过程采用了最小化安装,并且未在ospdev的虚拟机安装图形化,但是上面的执行脚本在执行第一个交互时,会提示是使用VNC还是文本安装。

本篇选择VNC(未安装vnc客户端,通过使用谷歌浏览器安装vnc的应用),同样进行最小化安装操作。本次安装只需手动划分磁盘分区,网络配置使用opsdev上的dnsmasq可以自动获取IP地址。root密码设置为liwanliang

虚拟机base安装完成之后,通过virsh console base或者ssh 192.168.8.3登陆到base,然后对base进行一些基础环境安装。

在base上

yum -y install vim lsof wget psmisc tree chronyd

ssh-keygen,回车创建公密钥对

cat id_rsa.pub > authorized_keys && chmod 400 authorized_keys将公钥写入认证文件

配置/etc/ssh/sshd_config,修改为UseDNS nosystemctl restart sshd

配置/etc/chrony.conf,server 192.168.8.3 iburst设置时间服务器地址为192.168.8.3

systemctl stop firewalld && systemctl disable firewalld

关闭selinux,vim /etc/selinux/config,SELINUX=disabled

使用sssd服务作为openldap的客户端

在base上,yum -y instal sssd,安装sssd

进入目录cd /etc/sssd,创建文件sssd.conf,内容如下:

[sssd]
config_file_version = 2
services = nss, pam, autofs
domains = default
[nss]
filter_users = root,ldap
[pam]
[domain/default]
auth_provider = ldap
id_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://192.168.8.2:389
ldap_search_base = dc=liwanliang,dc=com
ldap_tls_reqcert = never
ldap_id_use_start_tls = False
ldap_tls_cacertdir = /etc/openldap/cacerts
cache_credentials = True
entry_cache_timeout = 60
ldap_network_timeout = 3
autofs_provider = ldap
[autofs]

修改/etc/sssd/sssd.conf的权限,chmod 400 /etc/sssd/sssd.conf

systemctl start sssd && systemctl enable sssd,启动和设置开机启动

在base上,id liwl01验证,或者getent passwd liwl01验证

在opsdev上

首先配置opsdev到base的无密码登陆,ssh-copy-id -i /root/.ssh/id_rsa.pub base,输入base的root密码liwanliang即可

然后拷贝opsdev的/etc/hosts到base上,scp /etc/hosts base:/etc/hosts

3.2 克隆虚拟机node11

同样,只要指定node11的mac地址,然后从base克隆node,就可以快速创建node11。

执行命令:

virt-clone -f /data/vhosts/node11.img -n node11 -o base -m 00:00:00:08:00:11 -m 00:00:00:01:00:11

virsh start node11,启动node11

vmware安装kvm虚拟机的更多相关文章

  1. centos6.2安装kvm虚拟机

    http://www.wenzizone.com/2012/03/06/centos_6-2_install_kvm.html KVM虚拟机简介 kernel-based Virtual Machin ...

  2. 6、安装kvm虚拟机

    6.1.虚拟机开启虚拟化: 6.2.检查linux虚拟机cpu是否开启了虚拟化: egrep -o 'vmx|svm' /proc/cpuinfo vmx 6.3.安装kvm管理和安装kvm虚拟机的软 ...

  3. Linux:Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21...

    问题: Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21... ...

  4. 11.安装KVM虚拟机

    安装KVM虚拟机是一大难题,不按照虚拟机物理机128G内存和强劲的CPU无法充分利用.也不便于后面的jenkins自动部署.安装KVM虚拟机过程我是借鉴了网上下载的马哥linux   KVM那块的内容 ...

  5. VMware安装xp虚拟机

    VMware安装xp虚拟机 1.用到的软件: 2.安装VMware:  接受 选择自定义 要等上一小会. 输入密钥:百度一个就可以了. 安装成功: 禁用VMware网卡: 3.安装xp系统: 创建新的 ...

  6. CentOS 7.5 安装KVM虚拟机(Windows)

    一.KVM环境搭建1.检测系统是否支持cat /proc/cpuinfo | egrep 'vmx|svm' KVM是基于x86虚拟化扩展(Intel VT 或者 AMD-V)技术的虚拟机软件,所以查 ...

  7. 命令行安装kvm虚拟机、桥接网络、用virt-manager管理

    宿主机CentOS Linux release 7.2.1511 (Core),内核3.10.0-327.el7.x86_64 1.配置宿主机网络桥接 想让虚拟机有自己的ip且外网可访问,需要在安装虚 ...

  8. Centos7使用pxe安装KVM虚拟机

    Centos7使用pxe安装KVM虚拟机 一.安装服务所需的软件 [root@localhost ~]yum install nginx dhcp vsftpd syslinux -y [root@l ...

  9. (转)CentOS7安装KVM虚拟机详解

    原文:https://github.com/jaywcjlove/handbook/blob/master/CentOS/CentOS7%E5%AE%89%E8%A3%85KVM%E8%99%9A%E ...

随机推荐

  1. 洛谷p1119--灾难后重建(Floyd不仅仅是板子)

    问题描述 询问次数  5 000 00,   顶点数  200 怎么办? dijkstra?对不起,超时了/. 时间限制是1秒,询问5 000 00 ,每次dijsktra要跑n*n*logm 次,稳 ...

  2. DEVOPS技术实践_23:判断文件下载成功作为执行条件

    在实际生产中,我们经常会需要通过判断一个结果作为一个条件去执行另一个内容,比如判断一个文件是否存在,判官一个命令是否执行成功等等 现在我们选择其中一个场景进行实验,当某个目录下存在,则执行操作 1. ...

  3. $Poj2376\ Poj3171\ Luogu4644\ Cleaning\ Shifts$ 数据结构优化$DP$

    $Poj$    $AcWing$    $Luogu$ $ps:$洛谷题目与$Poj$略有不同,以下$Description$是$Poj$版.题目的不同之处在于洛谷中雇用奶牛的费用不相同,所以不可以 ...

  4. HDU3709 Balanced Number 题解 数位DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3709 题目大意: 求区间 \([x, y]\) 范围内"平衡数"的数量. 所谓平衡 ...

  5. 从0开发3D引擎(三):搭建开发环境

    本系列使用Reason语言,因此需要搭建它的开发环境. 上一篇博文 从0开发3D引擎(二):准备预备知识 搭建开发环境 建议使用VSCode编辑器来开发Reason,因为它的插件支持得最好. 具体搭建 ...

  6. c++数字和字符之间的转化

    关于C++中数与字符之间的转化 在c++中我们经常遇到需要把一个数变成字符,或者把字符变为一个数,c++中没有直接的转化函数,故我们需要自己去写函数去转化,这里我将介绍两种比较简单的方法: 法一: s ...

  7. Persistence.beans

    SF_USERS user = new SF_USERS(); user.setCTIME("20170103"); String ids = "fish,water&q ...

  8. 使用PE启动盘清空电脑登入密码

    1.PE启动盘制作过程 要制作一个启动盘可以使用很多工具来制作,比如老毛桃.U深度.大白菜等软件都可以制作PE启动盘.此处就用老毛桃制作PE启动盘为例(http://www.laomaotao.tv/ ...

  9. 《图解机器学习-杉山将著》读书笔记---CH5

    CH5 稀疏学习 重点提炼 提出稀疏学习的缘故: 虽然带有约束条件的最小二乘学习法结合交叉验证法,在实际应用中是非常有效的回归方法,但是,当参数特别多时,计算参数以及预测值需要大量时间.此时,我们要解 ...

  10. 【Java基础总结】IO流

    字节流 1. InputStream 字节输入流 代码演示 InputStream in = System.in; System.out.println("int read(byte b) ...