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

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

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

    ...

  • 相关阅读:
    JVM理解
    ubuntu下Android反编译详细教程-apktool,dex2jar,jd-gui的使用
    Add Two Numbers
    Two Sum
    JS实现总价随数量变化而变化(顾客购买商品表单)
    族谱管理系统(孩子兄弟存储结构)
    Java登录界面的实现(注册、登录、背景图片)
    Java GUI记账本(基于Mysql&&文件存储两种版本)
    几种对栈操作的方法
    Java中的成员内部类
  • 原文地址:https://www.cnblogs.com/2018/p/13862033.html
Copyright © 2020-2023  润新知