
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
-
kvm
-
https://github.com/vagrant-libvirt/vagrant-libvirt
-
/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
- https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins
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代碼化
快速多機器環境的應用開發和測驗
[統一的配置和快速安裝]
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/187033.html
標籤:其他
上一篇:入職微軟三個月把老板炒了,七個月自己跑路是一種怎樣的體驗?
下一篇:性能測驗之JVM的故障排查-死鎖
