• Prometheus项目实践——vmware部署kvm虚拟集群


    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"

    创建liwl01_group.ldif,内容如下:

    dn: cn=liwl01,ou=Group,dc=liwanliang,dc=com
    objectClass: posixGroup
    objectClass: top
    cn: liwl01
    userPassword: {crypt}x
    gidNumber: 1001

    将liwl01_group.ldif添加至数据库:

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

    查看添加的条目:

    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

  • 相关阅读:
    专家教你应对小孩鼻血不止
    爸爸去哪?
    Windows server 2008 R2 + IIS7.5,ASP网站设置
    请把这十个生命气质传给孩子
    zoj 2071 Technology Trader 最大权闭合子图
    TJU 2944 Mussy Paper 最大权闭合子图
    poj 1222 EXTENDED LIGHTS OUT 高斯消元
    codeforces 383C Propagating tree 线段树
    ubuntu 安装qq
    Kafka Manager 监控
  • 原文地址:https://www.cnblogs.com/liwanliangblog/p/12274101.html
Copyright © 2020-2023  润新知