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. 掌握这些,ArrayList就不用担心了!

    关于ArrayList的学习 ArrayList属于Java基础知识,面试中会经常问到,所以作为一个Java从业者,它是你不得不掌握的一个知识点.

  2. 大学最新毕业论文参考文献,包含java,jsp,mysql,Android,sql,PHP

    每当毕业论文写到最后需要参考文献时,往往是很令人头疼的,因为有的老师对参考文献的要求是很多的,比如需要国内的和国外的,时间必须是近三年的,满足XXX要求的文献至少需要三篇以上等等.今天我就来给大家整理 ...

  3. 数据库中间件分片算法之stringhash

    前言 又是一个夜黑风高的晚上,带上无线耳机听一曲.突然很感慨一句话:生活就像心电图,一帆风顺就证明你挂了. 就如同我们干运维的,觉得很简单的事情,有时候能干出无限可能.还是言归正传吧,这一次我们来说说 ...

  4. 星星泡饭-R1SE

    作词 : 吴孤儿 时光不用斟酌 再流淌 摩天轮慢慢地旋转 约定 留下搅拌的星光 赵磊: 媲美哪颗星星的孤寂 是我们 脏不了的心 勇敢 游戏 品尝着很饿的梦境 我的梦想只是梦想 哪怕回音只是气球碰撞 会 ...

  5. 力扣142——环形链表 II

    原题 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos ...

  6. WeihanLi.Npoi 1.7.0 更新

    WeihanLi.Npoi 1.7.0 更新介绍 Intro 昨天晚上发布了 WeihanLi.Npoi 1.7.0 版本,增加了 ColumnInputFormatter/ColumnOutputF ...

  7. Could not write JSON: Infinite recursion (StackOverflowError);

    转自:https://blog.csdn.net/east123321/article/details/80435051 在controller返回数据到统一json转换的时候,出现了json inf ...

  8. linux下文件解压缩中文乱码问题的解决

    将带中文文件名的压缩文件上传到服务器,使用unzip解压后,文件名乱码: 临时解决方法: 通过unzip行命令解压,指定字符集unzip -O CP936 xxx.zip (用GBK, GB18030 ...

  9. must appear in the GROUP BY clause or be used in an aggregate function

    今天在分组统计的时候pgsql报错 must appear in the GROUP BY clause or be used in an aggregate function,在mysql里面是可以 ...

  10. 如何在ArcGIS中恢复MapGIS制图表达信息

    1.输出符号信息 Map2Shp软件中提供了图示表达转换功能,提供对MapGIS图形特征可视表达信息的跨平台支持.若要使用该功能,必须在转换时,"图元参数输出方式"选定为[图元参数 ...