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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM