• 使用vagrant部署开发环境


    参考文章:http://blog.smdcn.net/article/1308.html

    准备工作:

    下载安装 VirtualBox :https://www.virtualbox.org/

    下载安装 Vagrant :http://www.vagrantup.com/

    下载需要使用的 box :

    官方提供的范例:http://files.vagrantup.com/precise32.box

    还可以在 http://www.vagrantbox.es/ 这里下载更多不同系统甚至是已经配置好环境直接可以用的box,虽然可以直接在Vagrant直接使用网址,由Vagrant自动下载安装,但是考虑到网络情况,还是建议自行先下载好。

    设置环境:

    第一步,新建目录

    mkdir -p vagrant/debian
    cd vagrant/debian

    第二步,初始化文件

    vagrant box add debian-local /home/wangkongming/software/pmv3.box
    debian-local 表示指定默认的box,也可以为box指定名称,比如 debian ,使用base时,之后可以直接使用 vagrant init 进行初始化,如果自行指定名称,则初始化的时候需要指定box的名称。

    pmv3.box 是box对应的文件名,这里可以是本地保存box的路径,也可以是可以下载box的网址,如果是网址的话,Vagrant会自动启动下载。

    第三步,

    设置好box之后,在当前工作目录运行

    vagrant init

    生成对应的Vagrantfile。通过文本编辑器打开Vagrantfile可以进行一些进一步的常用配置:

    网络配置:

    Vagrant的网络有三种模式

    1、较为常用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用 ,在Vagrantfile中配置:

    config.vm.network :forwarded_port, guest: 80, host: 8080

    guest: 80 表示虚拟机中的80端口, host: 8080 表示映射到宿主机的8080端口。

    2、如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,可以使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置:

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

    192.168.1.104 表示虚拟机的IP,多台虚拟机的话需要互相访问的话,设置在相同网段即可

    3、如果需要将虚拟机作为当前局域网中的一台计算机,由局域网进行DHCP,那么在Vagrantfile中配置:

    config.vm.network :public_network

    目录映射:

    既然是开发环境,那么开发工作肯定还是需要在本地完成,而不是都要进到虚拟机中去完成,虚拟机就好好在后台运行服务就好了,不然就本末倒置了,所以这里就需要使用目录映射功能,将本地的目录映射到虚拟机的对应目录。

    默认情况下,当前的工作目录,会被映射到虚拟机的 /vagrant 目录,当前目录下的文件可以直接在 /vagrant 下进行访问,当然也可以在通过 ln 创建软连接,如

    ln -fs /vagrant/wwwroot /var/www

    来进行目录映射,当然,从自动化配置的角度,能不进系统就不需要进系统,所以在Vagrant也可以进行目录映射的操作:

    config.vm.synced_folder "wwwroot/", "/var/www"

    前面的参数 “wwwroot/”  表示的是本地的路径,这里使用对于工作目录的相对路径,这里也可以使用绝对路径,比如: “d:/www/”

    后面的参数 “/var/www” 表示虚拟机中对应映射的目录。

    在不进入虚拟机的情况下,还可以使用下面的命令对 虚拟机进行管理:

    vagrant up (启动虚拟机)
    vagrant halt (关闭虚拟机——对应就是关机)
    vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用)
    vagrant resume (恢复虚拟机 —— 与前面的暂停相对应)
    vagrant destroy (删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留)

    当在启动Vagrant后,对于虚拟机有进行过安装环境相关的配置,如果并不希望写在Vagrant的启动shell里面每次都重新安装配置一遍,可以将当前配置好的虚拟机打包成box,

    vagrant package --output NAME --vagrantfile FILE
    
    可选参数:
    
    --output NAME : (可选)设置通过NAME来指定输出的文件名
    
    --vagrantfile FILE:(可选)可以将Vagrantfile直接封进box中

    注:如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:

    sudo rm -f /etc/udev/rule.d/70-persistent-net.rules

    制作完成之后直接将box文件拿到其他计算机上配置即可使用。

    更多信息可以参考官方文档:http://docs.vagrantup.com/v2/

    附:我本机上的vagrantfile文件

    Vagrant.configure(2) do |config|
       config.vm.box = "debian-local"
    
       config.vm.network "forwarded_port", guest: 80, host: 8080
       config.vm.network "private_network", ip: "192.168.1.88"
    
       config.vm.synced_folder "/home/wangkongming/files/works/code/kfz-pm", "/data/webroot/pmv2"
       
    end
  • 相关阅读:
    使用runOnUiThread更新UI
    Leetcode Symmetric Tree
    EBS 开发中如何动态启用和禁止请求(Current Request)的参数
    c 陷阱与缺陷(一)
    钟浩荣战胜病魔,不负众望重踏传智播客!
    【原创】分布式之elk日志架构的演进
    【强烈谴责】博客园园友随意抄袭他人文章并作为自己原创的行为
    【原创】研发应该懂的binlog知识(下)
    【原创】研发应该懂的binlog知识(上)
    【原创】一个线程oom,进程里其他线程还能运行吗?
  • 原文地址:https://www.cnblogs.com/wangkongming/p/4301021.html
Copyright © 2020-2023  润新知