Vagrant相关知识脑图

Vagrant相关知识脑图

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代码化

快速多机器环境的应用开发和测试

[统一的配置和快速安装]

...

上一篇:Vagrant


下一篇:laravel开发环境homestead搭建详解