Vagrant主要點和例子
安裝
vagrant運行文件
- yum install -y vagrant.x86_64
- 安裝和運行的信息保存地址
~/.vagrant.d
provider
-
virtualbox
- yum install -y VirtualBox-6.1-6.1.12_139181_el7-1.x86_64
VBoxManage extpack install --accept-license=56be48f923303c8cababb0bb4c478284b688ed23f16d775d729b89a2e8e5f9eb --replace /opt/dev/tools/virtualbox/Oracle_VM_VirtualBox_Extension_Pack-6.1.12-139181.vbox-extpack
-
kvm
- yum install -y libvirt
- install -y qemu* kvm
yum install -y virt-manager
vagrant kvm時需要
yum install -y rsync
- 還有vmware之類的,不列出了
plugin
-
virtualbox
- yum install -y vagrant.x86_64
--plugin-clean-sources --plugin-source 設置後在 ~/.vagrant.d/plugins.json 這裡就會保存了安裝源地址
https://github.com/devopsgroup-io/vagrant-hostmanager
vagrant plugin install --plugin-clean-sources --plugin-source ${REPO_GEMS} --debug vagrant-hostmanager
config.vbguest.iso_path = "https://mirrors.tuna.tsinghua.edu.cn/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso"
vagrant plugin install --plugin-clean-sources --plugin-source ${REPO_GEMS} --debug vagrant-vbguest
https://github.com/sprotheroe/vagrant-disksize config.disksize.size = '50GB'
vagrant plugin install --plugin-clean-sources --plugin-source ${REPO_GEMS} --debug vagrant-disksize
/opt/vagrant/embedded/lib/ruby/2.6.0/x86_64-linux/rbconfig.rb 中需要修改 -Wl,--compress-debug-sections=zlib
vagrant plugin install --plugin-clean-sources --plugin-source ${REPO_GEMS} --debug vagrant-libvirt || true
centos7上編譯出錯,因此替換後再次安裝,由於使用了緩存就可正常安裝
sed -i "s/-Wl,--compress-debug-sections=zlib/ /" /opt/vagrant/embedded/lib/ruby/2.6.0/x86_64-linux/rbconfig.rb
vagrant plugin install --plugin-clean-sources --plugin-source ${REPO_GEMS} --debug vagrant-libvirt
box
已經預製好的鏡像文件
和provider對應
https://app.vagrantup.com/boxes/search
官方的box檢索入口,註冊後,自己的box公開的也可以放在這
如centos7的可以下載的box有
https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/
導入box
- 例子
- box add --name centos7.4 ftp://xxx.xxx.xxx.xxx/vagrant/CentOS-7-x86_64-Vagrant-1708_01.Libvirt.box
Vagrantfile
代碼化配置
約定式命名
所有配置都體現在這個文件中
這是RUBY實現的DSL,因此編寫時注意RUBY的語法
登錄證書
- config.ssh
這個的配置可以設置自己的免密證書等 -
vagrant ssh的排錯
- vagrant up --provider=virtualbox --debug
- vagrant ssh-config
- 直接進入虛擬機命令行
虛擬機設置
- CPU 內存 網卡地址 硬盤設置
https://www.vagrantup.com/docs/providers/virtualbox/configuration -
config.vm.define "centos7.4-vb" do |node| node.vm.hostname = "vb1" #box需要按照格式備好 node.vm.box = "cs-centos-cert-user-7.4" node.vm.box_check_update = false #node.vm.synced_folder '.', '/vagrant', :disabled => true node.vm.network "private_network", ip: "192.168.99.200" #https://www.vagrantup.com/docs/providers/virtualbox/configuration 具體的配置項 node.vm.provider :virtualbox do |vb| # vb.gui = true vb.memory = 1024 vb.cpus = 1 vb.name = "vb1" end end
provision
-
腳本
- config.vm.provision :shell, inline: "chmod +x /home/vagrant/post.sh; sudo /home/vagrant/post.sh"
-
拷貝文件
- config.vm.provision "file", source: "env.sh", destination: "/home/vagrant/env.sh"
主要命令
vagrant CMD ARGS
啟動 up
關機 halt
初始化 provision
登錄進某個主機 ssh
銷燬虛機 destroy
導出自己的box
如將當前定製的虛擬機mycentos7.4導出為box共享使用
vagrant package --base mycentos7.4 --output ./mycentos-cert-user-7.4.box
參考
https://gitee.com/wushifeng/centosKit/tree/master/sys/virtual/kvm
https://gitee.com/wushifeng/centosKit/tree/master/sys/virtual/virtualbox
官方網站
https://www.vagrantup.com/docs
基本概念名詞[一句話]
box
類似livecd的啟動文件
provider
虛擬環境運行的地方,如kvm virtualbox vmware
plugin
輔助不同的provider下的虛機的配置
provision
在默認的初始鏡像啟動後,需要定製的軟件安裝和各種操作
概要: 更多明細網絡檢索即可
用途
基礎設施IAAS代碼化
快速多機器環境的應用開發和測試
[統一的配置和快速安裝]
...
XMind: ZEN - Trial Version