Prometheusプロジェクトの実践-vmware導入kvm仮想クラスタ

12856 ワード

1.概要


このブログでは、主にwin 10の専門版で実行されているvmware workstation 15 pro仮想化ソフトウェアを使用してcentos 7をインストールします.7システムを最小化し、centos 7にkvm仮想マシンをインストールし、仮想マシンの迅速な作成と起動を実現します.私はdeepin 15にいます.11オペレーティングシステムには、同じ環境が導入されています.しかし、いくつかの細部には違いがあります.

2.詳しく述べる


2.1仮想マシンの作成


新しい仮想マシンを作成し、opsdev(運用次元開発)と名付け、オペレーティングシステムを一時的にインストールしません.
プロセッサは2個を選択し、各4コア、メモリは10240 MB
ネットワークタイプはNAT(またはvmnet 8)、NAT NICのmacアドレスは:00:00:08:00:00:02
システムディスクは20 GBで、単一のファイルで、opsdev-osと命名されています.
その他の構成はデフォルトでインストールされます.
完了後:
仮想マシンのサウンドカードとプリンタの削除
プロセッサ設定の仮想化エンジンのチェック
ホストモードのみ(vmnet 1)、macアドレス00:00:01:00:02
新しいディスク、サイズ80 G、単一ファイル、名前opsdev-data
概要:このようにタイプのクラウド仮想マシンと同じように、8コア10 G、デュアルネットワークカード、仮想化をサポートし、オペレーティングシステムのインストールを最小限に抑える

2.2オペレーティングシステムのインストール


仮想マシンのCDROMデバイスを介して、ローカルでダウンロードしたcentos 7の最小化システムミラーをロードし、仮想マシンを起動してオペレーティングシステムのインストールを開始する
centos 7のインストールは簡単です.
ここでは主に以下の設定を行います.
両方のNICは、静的IPアドレスに設定されています.
NATタイプのNIC、IPアドレス:192.168.8..2、ゲートウェイ192.168.2.2254、DNS:192.168.2254
ホストタイプのNICのみ、IPアドレスは192.168.1.2、その他は構成されていません
ホスト名:opsdev
rootパスワード:liwanliang
その他のデフォルトのインストール

2.3 opsdev基礎環境


xshell 6を使用して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 ipv 6の無効化


構成の編集: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デュアルNICブリッジの構成


ブリッジソフトウェア環境のインストール:yum -y instal bridge-utils/etc/sysconfig/network-scriptsへ
ifcfg-br 0を作成します.内容は次のとおりです.
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-ens 32を変更します.内容は次のとおりです.
TYPE=Ethernet
NAME=ens32
ONBOOT=yes
BRIDGE=br0

ifcfg-br 1を作成します.内容は次のとおりです.
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-ens 33を変更します.内容は以下の通りです.
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 httpサービスのインストール

yum -y install httpd、httpサービスのインストールsystemctl start httpd && systemctl enable httpd、起動と構成起動mkdir -p /var/www/html/osimage/centos/7オペレーティングシステムミラーを格納rz、centos 7の最小化システムミラーファイルをxshellでアップロードmount -o loop CentOS-7-x86_64-Minimal-1908.iso /mnt、ミラーファイルをマウントcp -r /mnt/* /var/www/html/osimage/centos/7オペレーティングシステムファイルをhttpdサービスディレクトリにコピーumount /mnt、OSミラーのマウント解除

2.4.4 kvm仮想化環境のインストール


実行コマンド:yum -y install qemu-kvm libvirt virt-install実行コマンド:systemctl start libvirtd && systemctl enable libvirtddnsmasqサービスが開始されたためlibvirtd起動dnsmasqを閉じる必要があり、実行可能virsh net-autostart --disable default virtbr 0(default)のPOSTをオフにします.

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

これをldifデータベースへの追加ldapadd -x -W -D "cn=admin,dc=liwanliang,dc=com" -f basedomain.ldif
ユーザーliwl 01を作成し、ユーザーliwl 01の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

liwl 01.ldifデータベースに追加:ldapadd -x -W -D "cn=admin,dc=liwanliang,dc=com" -f liwl01.ldif
liwl 01のパスワードを変更するには:
ldappasswd -s liwanliang -W
-D "cn=admin,dc=liwanliang,dc=com"
-x "uid=liwl01,ou=People,dc=liwanliang,dc=com"

liwl 01_の作成group.ldif、内容は以下の通りです.
dn: cn=liwl01,ou=Group,dc=liwanliang,dc=com
objectClass: posixGroup
objectClass: top
cn: liwl01
userPassword: {crypt}x
gidNumber: 1001

liwl 01_を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のNICが配置されており、割り当てられたIPアドレスは192.168.8..2、00:00:00:01:00:03のNICで、割り当てられた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クライアントをインストールせず、Googleブラウザでvncをインストールするアプリケーション)を選択し、同様にインストール操作を最小化します.今回のインストールでは、ディスクパーティションを手動で分割するだけで、opsdev上のdnsmasqを使用してIPアドレスを自動的に取得できます.rootパスワードをliwanliangに設定
仮想マシンbaseのインストールが完了したら、virsh console baseまたはssh 192.168.8.3を介して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.3systemctl stop firewalld && systemctl disable firewalld
selinux、vim /etc/selinux/config、SELINUX=disabledをオフにします.
Openldapのクライアントとしてsssdサービスを使用する
ベースに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/ssd/ssd.confの権限、chmod 400 /etc/sssd/sssd.confsystemctl start sssd && systemctl enable sssd、起動と設定起動
ベースでは、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仮想マシンnode 11のクローン作成


同様に、node 11のmacアドレスを指定し、baseからnodeをクローンすると、node 11をすばやく作成できます.
コマンドの実行:
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 node 11を起動