雲計算

Vagrant相關知識腦圖

Vagrant主要點和例子.jpg

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
  1. 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

  • 例子
  1. 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

Leave a Reply

Your email address will not be published. Required fields are marked *