• vagrant 系列 博客


    1. 添加box

    从中科大的网站下载了源

    http://mirrors.ustc.edu.cn/

    vagrant box add [自定义box名字] [镜像文件]

    例子: 

    vagrant box add ubuntu/14.04 trusty-server-cloudimg-amd64-vagrant-disk1.box

    创建通过源创建ubuntu镜像

    查看box

    vagrant box list 


     

    2. 初始化, 启动 连接虚拟机

    v初始化

    vagrant init base [box]

    例子: 通过ubuntu/16.04初始化一个虚拟机

    vagrant init ubuntu/16.04

    创建虚拟机

    vagrant up


     

    3. 启动, 停止, 重启, 销毁

    查看虚拟机运行的状态: 

    vagrant status

    停止虚拟机:

    vagrant halt

    暂停虚拟机

    vagrant suspend

    恢复虚拟机

    vagrant resume

    重启虚拟机

    vagrant reload

    销毁虚拟机

    vagrant destroy


     

    4. 共享目录

    默认的共享目录: 主机当前目录和虚拟机的/vagrant默认共享

    /Users/narcisohuang/workspace/vagrant-workspace/centos/ => /vagrant

    5. 自定义共享文件夹(暂时跳过)

     看15通过插件实现的nfs格式的共享文件夹.


     

    网络配置:

    私有网络, 虚拟机不能和主机的其他的应用进行网络的通信

    公有网络, 虚拟机拥有一个公网IP, 可以和主机的其他的应用通信

    7. 私有网络

    通过以下的命令, 设置虚拟的网络为私有网络, 主机上的其他的应用不能访问到虚拟机

    config.vm.network "private_network", ip: "127.0.0.1"

    8. 公有网络

    通过以下配置来实现虚拟机配置一个公有的IP地址, 主机内的其他的应用可以通过公网IP地址访问到虚拟机

    config.vm.network "public_network"

    由于我是用的是无线网卡, 需要在多个网卡中选择一个网络, 我选择1号网卡, 也就是连接无线网的网卡


     

    9. 搭建web服务器

    sudo yum install -y httpd


     

    10. 重新打包

    创建出一个box文件

    vagrant package

    通过这个box文件可以创建一个虚拟机文件, 再通过虚拟机文件创建出一个虚拟机实例


     

    11. 多主机

    创建两个主机分别命名为dev和pro

    没有设置网络, 两台虚拟机之间是不能通信的

    config.vm.define "dev" do |dev|
    end
    
    config.vm.define "pro" do |pro|
    end

    12. 多主机网络设置

    设置私有网络, 注意私有网络是不能和对外通信的网卡在同一个网络段内

    当前我的网络在

    192.168.1.103

    那么, 创建的私有的虚拟机所处的网络就不能在192.168.1.0/24这个段内

    Vagrant.configure("2") do |config|

      config.vm.box = "centos7"

      config.vm.define "dev" do |dev|

        dev.vm.network "private_network", ip: "192.168.2.11"

      end

      config.vm.define "pro" do |pro|

        pro.vm.network "private_network", ip: "192.168.2.12"

      end 

    end

    创建两个在192.168.2.0/24网段的两个主机, 如果之前已经创建两个主机了, 就需要重新启动虚拟机 vagrant reload


     

    13. 多主机多机名

    通过dev和pro变量设置hostname, 从而设置虚拟机的主机名

    Vagrant.configure("2") do |config|
      config.vm.box = "centos7"
      config.vm.define "dev" do |dev|
        dev.vm.network "private_network", ip: "192.168.2.11"
        dev.vm.hostname = "hzh-dev"
      end
      config.vm.define "pro" do |pro|
        pro.vm.network "private_network", ip: "192.168.2.12"
        pro.vm.hostname = "hzh-pro"
      end 
    end 

    主机名插件: vagrant-hostmanager

    使用国内的源进行安装插件

    vagrant plugin install vagrant-hostmanager --plugin-clean-sources --plugin-source https://gems.ruby-china.com/ 

    使用插件

    vagrant hostmanager

    dev虚拟机的主机名为hzh-dev

    pro虚拟机的主机名为hzh-pro

    可以直接通过主机名连接到另一个虚拟机的网络

    hostmanager插件将虚拟机的主机名和网络连接在一起了, 并且将各个虚拟机的主机名和IP地址都写到了各自的配置文件/etc/hosts中


    14. Guest Additions:vagrant-vbguest, 使用插件来修复原来的共享文件夹的错误

    为虚拟机安装 Guest Additions, 从而就可以使用默认的共享文件夹的功能了

    为dev虚拟机安装增强组建

    vagrant vbguest --do install dev

    centos 安装的过程中网络问题失败了, 算了, 有更好的方法,  使用nfs插件可以不用安装增强组建就可以实现共享文件, 所以算了, 不弄这个了

     


    15. nfs共享目录, 性能更好的共享目录

    黑体的部分实现了nfs共享文件夹

    # -*- mode: ruby -*-
    
    Vagrant.configure("2") do |config|
      config.vm.box = "centos7"
      # 启用vagrantmanage 插件
      config.hostmanager.enabled = true
      config.hostmanager.manage_guest = true
      config.hostmanager.manage_host = true
      # 设置vbguest不自动更新
      config.vbguest.auto_update = false
    
      config.vm.define "dev" do |dev|
        dev.vm.network "private_network", ip: "192.168.2.11"
        dev.vm.hostname = "hzh-dev"
        # 配置nfs绑定共享文件
        dev.vm.synced_folder "./app", "/app-data", type: "nfs"
        dev.bindfs.bind_folder "/app-data", "/app",
          force_user: "root", force_group: "root", o: "nonempty"
      end
      config.vm.define "pro" do |pro|
        pro.vm.network "private_network", ip: "192.168.2.12"
        pro.vm.hostname = "hzh-pro"
      end 
    end

    安装插件

    vagrant plugin install vagrant-bindfs --plugin-clean-sources --plugin-source https://gems.ruby-china.com/

    vagrant up 

    会自动安装bindfs, 需要访问wai 网 加 速 下 载 , 而且要5到10分钟

    在dev虚拟机中/app-data目录下创建一个文件, 在主机的Vagrantfile目录下的app目录下也可以看到当前的文件. 说明成功的实现了共享文件.

     

     

     

  • 相关阅读:
    这一年来
    网络流复习笔记
    Codeforces Round #431
    Codeforces Round #398 (Div. 2)
    Codeforces Round #418 (Div. 2)
    【Codeforces 98E】 Help Shrek and Donkey 游戏策略神题
    【bzoj1878】[SDOI2009]HH的项链
    Round 403 div. 2
    Codeforces Round #417 (Div. 2)
    Codeforces Round #416 (Div. 2)
  • 原文地址:https://www.cnblogs.com/huangZ-H/p/12886072.html
Copyright © 2020-2023  润新知