下載和安裝基本組件
下載一般很簡單煮仇,安裝也很簡單见转,可以采用 dpkg
和 apt-get
的安裝方式。
- 下載安裝 virtualbox:穩(wěn)定版VirtualBox
- 下載系統(tǒng)鏡像box:下載 iso 地址
- 下載安裝 vagrant:下載 Vagrant 地址
單機(jī)虛擬環(huán)境
注意,以下操作在存放虛擬環(huán)境的目錄下進(jìn)行:
- 添加下載的系統(tǒng)鏡像box:
vagrant box add add_tag iso_box_path
- 利用下載的box初始化虛擬環(huán)境:
vagrant init add_tag
- 主要配置:
- 虛擬環(huán)境網(wǎng)絡(luò)借杰,最好不要和本機(jī)同網(wǎng)絡(luò)段:
config.vm.network "private_network", ip: "192.168.33.10"
- 共享目錄,統(tǒng)一為好:
config.vm.synced_folder "local_share_dir", "/virtual_dir"
- 虛擬環(huán)境網(wǎng)絡(luò)借杰,最好不要和本機(jī)同網(wǎng)絡(luò)段:
- 啟動創(chuàng)建的虛擬環(huán)境P:
vagrant up
- 進(jìn)入虛擬環(huán)境:
vagrant ssh
集群虛擬環(huán)境
集群相當(dāng)于有多個單機(jī),所以就是配置多個單機(jī)进泼。這里蔗衡,采用先寫配置文件,再使用 vagrant up
啟動集群的方式乳绕。上面單機(jī)绞惦,是用初始化的方式創(chuàng)建單機(jī)虛擬環(huán)境,運(yùn)行vagrant init
后會生成 Vagrantfile
文件洋措。集群虛擬環(huán)境 Vagrantfile
配置如下:
# box 存放的絕對路徑
# config.vm.box = "iso_box_absolute_path"
config.vm.box_version = "2.3.1"
config.vm.box_check_update = false
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "node#{i}" do |node|
# 設(shè)置虛擬機(jī)的Box
node.vm.box = "ubuntu/trusty64"
# 設(shè)置虛擬機(jī)的主機(jī)名
node.vm.hostname="node#{i}"
# 設(shè)置虛擬機(jī)的IP
node.vm.network "private_network", ip: "192.168.59.#{i}"
# 設(shè)置主機(jī)與虛擬機(jī)的共享目錄
node.vm.synced_folder "~/Desktop/share", "/home/vagrant/share"
# VirtaulBox相關(guān)配置
node.vm.provider "virtualbox" do |v|
# 設(shè)置虛擬機(jī)的名稱
v.name = "node#{i}"
# 設(shè)置虛擬機(jī)的內(nèi)存大小
v.memory = 2048
# 設(shè)置虛擬機(jī)的CPU個數(shù)
v.cpus = 1
end
# 使用shell腳本進(jìn)行軟件安裝和配置
node.vm.provision "shell", inline: <<-SHELL
# Shell 命令
SHELL
end
end
end
- 上面的配置創(chuàng)建了三個節(jié)點(diǎn):node1 , node2 , node3
-
vagrant up
會按照Vagrantfile
生成集群- box 系統(tǒng)路徑
- private ip
- 用戶/密碼: vagrant/vagrant
- 共享目錄: 桌面上的share目錄將與虛擬機(jī)內(nèi)的/home/vagrant/share目錄內(nèi)容實(shí)時同步
- 內(nèi)存:2GB
- CPU: 1
集群命令
- 啟動單個虛擬機(jī):
vagrant up node1
- 啟動多個虛擬機(jī):
vagrant up node1 node3
- 啟動所有虛擬機(jī):
vagrant up
SSH免密碼登陸
- 使用vagrant ssh命令登陸虛擬機(jī)必須切換到Vagrantfile所在的目錄济蝉,而直接使用虛擬機(jī)IP登陸虛擬機(jī)則更為方便:
ssh vagrant@192.168.59.2
。此時SSH登陸需要輸入虛擬機(jī)vagrant用戶的密碼菠发,即vagrant - 將主機(jī)的公鑰復(fù)制到虛擬機(jī)的authorized_keys文件中即可實(shí)現(xiàn)SSH免密碼登陸:
cat $HOME/.ssh/id_rsa.pub | ssh vagrant@192.168.59.2 'cat >> $HOME/.ssh/authorized_keys'
vagrant 常用命令
vagrant init # 初始化
vagrant up # 啟動虛擬機(jī)
vagrant halt # 關(guān)閉虛擬機(jī)
vagrant reload # 重啟虛擬機(jī)
vagrant ssh # SSH 至虛擬機(jī)
vagrant status # 查看虛擬機(jī)運(yùn)行狀態(tài)
vagrant destroy # 銷毀當(dāng)前虛擬機(jī)
vagrant package #分發(fā)box