zoukankan      html  css  js  c++  java
  • 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目录下也可以看到当前的文件. 说明成功的实现了共享文件.

     

     

     

  • 相关阅读:
    数学+高精度 ZOJ 2313 Chinese Girls' Amusement
    最短路(Bellman_Ford) POJ 1860 Currency Exchange
    贪心 Gym 100502E Opening Ceremony
    概率 Gym 100502D Dice Game
    判断 Gym 100502K Train Passengers
    BFS POJ 3278 Catch That Cow
    DFS POJ 2362 Square
    DFS ZOJ 1002/HDOJ 1045 Fire Net
    组合数学(全排列)+DFS CSU 1563 Lexicography
    stack UVA 442 Matrix Chain Multiplication
  • 原文地址:https://www.cnblogs.com/huangZ-H/p/12886072.html
Copyright © 2011-2022 走看看