1. 概述
本篇博客主要講述在Deepin系統上使用KVM虛擬化環境部署虛擬化集群來完成個人的運維實踐平台項目:Promethues。
之前是在win10系統下使用vmware workstation作為虛擬化平台,暫時擱淺...
2. kvm虛擬化環境
2.1 安裝kvm依賴環境
Deepin上安裝kvm環境很簡單,命令行執行:
sudo apt-get install qemu qemu-kvm virt-manager ,libvirtd服務會自動啟動和開機啟動。
2.1 配置虛擬化網絡
與win10平台使用vmware workstation來完成該項目不同的是,Deepin系統上使用libvirtd提供的虛擬化服務時,需要使用其提供的nat網絡。
默認的虛擬網絡類型已經是nat模式,叫做default。default是不隨着libvirtd服務啟動的,執行命令:
virsh net-auotstart default,設置default隨着libvirtd服務啟動。libvirtd服務同時提供了dnsmasq的輕量級DHCP和DNS服務。
本篇博客僅僅使用其DHCP服務,通過給虛擬機分配固定的MAC地址來實現固定IP的目的。
具體操作如下:
2.1.1 修改default.xml
一般不建議直接修改該文件,但是你修改這個文件,也不一定會有什么問題。
Deepin系統上,使用終端切換到root用戶。
編輯配置文件:vim /etc/libvirt/qemu/networks/autostart/default.xml
修改內容如下:
<mac address='00:00:00:80:00:01'/>
<ip address='192.168.80.1' netmask='255.255.255.0'/>
<dhcp>
<rang start='192.168.80.11' end='192.168.80.99'>
<host mac='00:00:00:80:00:11' ip='192.168.80.11' name='node11'/>
<host mac='00:00:00:80:00:12' ip='192.168.80.12' name='node12'/>
<host mac='00:00:00:80:00:13' ip='192.168.80.13' name='node13'/>
....這里省略...
<host mac='00:00:00:80:00:99' ip='192.168.80.99' name='node99'/>
</dhcp>
本人在修改該配置文件時,使用了for循環批量生產了配置,然后通過vim粘貼進去。
修改了default.xml之后,需要執行systemctl restart libvirtd生效
上述的過程完成之后,就可以為虛擬機固定IP打下第一個基礎了。
2.1.2 創建模板虛擬機
通過virt-manager創建一個模板虛擬機。
注:如果不適用virt-manager來安裝,可以用命令行virt-install命令指定參數安裝,本篇博客先跳過此部分內容。
本人選擇的是centos7最小化安裝的鏡像(阿里雲的源應該可以找到)。
安裝操作系統的過程這里不表,這里主要說明一下本人的習慣細節:
- 模板虛擬機命名為base
- CPU指定為4核心,2槽2核心1線程,內存為1024M
- 分配了10G的磁盤空間
- 自定義分區/boot 256M,其他給根分區,選擇xfs文件系統
- 不要忘記設置root密碼
一頓操作之后,模板虛擬機base出爐。
3. 初始化模板虛擬機
Deepin終端執行virsh start base,將模板虛擬機開機之后,ssh base即可輸入密碼登錄虛擬機(我的base也是node99,/etc/hosts里面一個IP可以對應多個主機名)
注:deepin終端執行for i in \((seq 11 99);do echo "192.168.80.\)i node$i" >> /etc/hosts; done
然后將初始化腳步run_me拷貝到base節點上並執行。
我的run_me初始化腳本內容如下:
#!/bin/bash
#安裝依賴
yum -y install \
epel-release \
yum repolist
yum -y install \
vim net-tools lsof wget tree psmisc pciutils\
gcc gcc-c++ automake autoconf \
strace dstat nmap tcpdump \
nfs-utils sssd \
openldap openldap-servers openldap-clients compat-openldap openldap-devel openldap-servers-sql \
yum -y install atop htop mytop \
#關閉服務
systemctl disable firewalld
systemctl disable postfix
#禁用selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#修改ssh服務
sed -i 's/\#UseDNS\ yes/UseDNS\ no/g' /etc/ssh/sshd_config
sed -i 's/\#PrintLastLog\ yes/PrintLastLog\ no/g' /etc/ssh/sshd_config
echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config
echo " UserKnownhostsFile /dev/null" >> /etc/ssh/ssh_config
echo " LogLevel quiet" >> /etc/ssh/ssh_config
#創建host
for i in $(seq 11 99)
do
echo "192.168.80.$i node$i" >> /etc/hosts
done
#生成秘鑰
ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys
#修改啟動選項,不延遲,禁用ipv6
sed -i 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/g' /etc/default/grub
sed -i 's/quiet/quiet\ ipv6.disable=1/g' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
#啟用virsh console登錄虛擬機
systemctl enable serial-getty@ttyS0.service
完成上面的操作,模板虛擬機base就可以關機了,作為以后要創建的虛擬機的模板備用。
此后便可以通過virt-clone快速創建虛擬機使用。
