使用libvirt配置多節(jié)點(diǎn)的Vagrant集群

如今很多實(shí)驗(yàn)室都裝備有大內(nèi)存,高主頻,多核心的高性能服務(wù)器,所以很多虛擬機(jī)的實(shí)驗(yàn)其實(shí)是可以在實(shí)驗(yàn)室完成的,而且相對(duì)于在公有云,其測(cè)試結(jié)果更準(zhǔn)確。目前,我認(rèn)為最好的方式就是在實(shí)驗(yàn)室搭建Vagrant+libvirt+KVM的虛擬機(jī)集群。本文講介紹如何在CentOS/Fedora/Redhat上搭建Vagrant+libvirt的虛擬機(jī)集群。

特點(diǎn)

  • 支持多個(gè)物理機(jī)上的虛擬機(jī)之間互相通信
  • 通過(guò)Vagrantfile直接指定虛擬機(jī)啟動(dòng)的具體物理節(jié)點(diǎn),可以有效的減少在公有云中虛擬機(jī)分配的物理節(jié)點(diǎn)拓?fù)洳幻鞔_造成的實(shí)驗(yàn)誤差。
  • 通過(guò)編寫Vagrantfile完成測(cè)試環(huán)境的快速搭建和部署
  • 相對(duì)于Virtualbox,KVM虛擬機(jī)的性能較高

步驟

使用傳統(tǒng)網(wǎng)絡(luò)名稱

  • /etc/default/grub 中的GRUB_CMDLINE_LINUX行中加入下面的兩個(gè)選項(xiàng)net.ifnames=0 biosdevname=0
  • 運(yùn)行g(shù)rub2-mkconfig
  • 修改/etc/sysconfig/networt-script/ifcfg-x里的內(nèi)容并重命名為ifcfg-eth0,ifcfg-eth1
  • 重啟機(jī)器

節(jié)點(diǎn)之間SSH互聯(lián)

  • 使用ssh-keygen生成本機(jī)密鑰,使用ssh-copy-id username@hostname拷貝密鑰

安裝和配置libvirt

  • 配置/etc/hosts

注意,hostname的名字必須準(zhǔn)確

安裝和配置Vagrant

  • 從官網(wǎng)安裝Vagrant
rpm -ivh https://releases.hashicorp.com/vagrant/1.9.1/vagrant_1.9.1_x86_64.rpm
  • 安裝vagrant-libvirt插件
dnf -y install qemu libvirt libvirt-devel ruby-devel gcc
vagrant plugin install vagrant-libvirt

編寫Vagrantfile

其中,master為遠(yuǎn)程主機(jī),slave為本地主機(jī),遠(yuǎn)程主機(jī)在libvirt.host中設(shè)置主機(jī)名稱

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  config.vm.define "master" do |master|
    master.vm.box = "centos/7"
    master.vm.provider :libvirt do |libvirt|
        libvirt.host = "e2104"
        libvirt.driver = "kvm"
        libvirt.username = "root"
        libvirt.password = "111111"
        libvirt.connect_via_ssh = true
    end
    master.vm.network :public_network, :dev => "eth0", :mode => 'bridge', :ip => "10.0.2.111"
  end

  config.vm.define "slave" do |master|
    master.vm.box = "centos/7"
    master.vm.network :public_network, :dev => "eth0", :mode => 'bridge', :ip => "10.0.2.110"
  end
end

啟動(dòng)虛擬機(jī)

vagrant up master
vagrant up slave

注意事項(xiàng)

  • 在安裝前如果已經(jīng)安裝了libvirt,則將libvirt完全卸載,并重啟服務(wù)器
yum remove libvirt libvirt-client
reboot
yum install libvirt libvirt-devel
  • TLS訪問(wèn)是密鑰的cn必須是主機(jī)名,否則會(huì)出錯(cuò)
country = AU
state = Queensland
locality = Brisbane
organization = libvirt.org
cn = e2105  #(必須為主機(jī)名)
tls_www_client
encryption_key
signing_key
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容