• 学会使用 vagrant


    全平台适用 Mac  win  ubuntu  centos
     
     
    1.安装 vbox. 只是个承载,不用去启动
    2.下载vagrantbox镜像  .box文件  4用到  
    3.下载vagrant  win  msi 
     
     
    4.导入box
    vagrant box add 名  box位置
     
    查看是否存在
     vagrant box list
     
    5.初始化
    vagrant init 名
      
    6.5完成后会生成一个vagrantfile配置文件,配置访问地址
    去掉注释并修改约29行
    config.vm.network "private_network", ip: "192.168.7.7"
     
    7.启动虚拟机
    vagrant up
     

    #####################################################################################################################################################
    8.运行ssh,启动并获取ssh链接信息
    vagrant ssh
    9.打包分发
    vagrant package
     
    10.常用命令
    直接DOS运行 vagrant回车查看
     
    11.说明
    以上如果没问题的话可以使用自己配制的ip访问
    如果在vagrant up时提示
     
    则 ctrl+c强制停止,然后继续vagrant ssh 这时仍可正常使用 不过连接ssh时则需要使用 给出的登录信息 127.0.0.1:2222  仍可正常使用
     
    无失败信息的可通过帐号和密钥登录,失败的只能通过帐号登录
     
    默认帐号密码
    vagrant  vagrant  或者 root  vagrant
     
    12.宿主机访问
    编辑配置文件
    config.vm.network "forwarded_port", guest: 80, host: 8080
     
     config.vm.network "public_network"
     
    去掉上边的两个注释
     
    访问地址
    127.0.0.1:8080
     

    目录同步

    虽说如此容易的启动一个虚拟机的确很酷,但不是所有人都喜欢通过终端来编辑文件(Vim党和Emacs党勿喷),所以Vagrant提供了一个目录同步的功能。默认情况下Vagrant会把你的项目目录(存储Vagrantfile的那个)与虚拟机中的/vagrant进行同步(这就是为什么你不要执行rm -rf /的原因,否则你会把项目目录删掉)。我们可以登录到虚拟机上验证一下。

    	$ vagrant up
    	...
    	$ vagrant ssh
    	...
    	vagrant@precise32:~$ ls /vagrant
    	Vagrantfile
    

    如果你不确信,可以创建一个文件看看:

    	vagrant@precise32:~$ touch /vagrant/foo
    	vagrant@precise32:~$ exit
    	$ ls
    	foo Vagrantfile
    

    怎么样?没骗你吧。通过目录同步功能,你还可以继续使用最爱的编辑器来修改虚拟机中的文件。

    配置

    假设我们的业务需要安装Apache,传统的做法是在虚拟机上手动安装并配置,如果这样那么使用Vagrant的人都需要重复一遍。幸好Vagrant提供了自动配置(automated provisioning)的功能。通过这个特性,Vagrant会在你执行vagrant up的时候自动安装所需的软件。

    在你的项目目录(即包含Vagrantfile的目录)下创建Bash脚本bootstrap.sh,内容如下:

    	#!/usr/bin/env bash
    
    	apt-get update
    	apt-get install -y apache2
    	rm -rf /var/www
    	ln -fs /vagrant /var/www
    

    接下来,我们来配置让Vagrant在启动虚拟机的时候自动执行以上脚本,在Vagrantfile中添加如下内容:

    Vagrant.configure("2") do |config|
      config.vm.box = "hashicorp/precise32"
      config.vm.provision :shell, path: "bootstrap.sh"
    end
    

    provision这一行告诉Vagrant使用shell provisioner来配置虚拟机,要执行的脚本是bootstrap.sh。

    接下来执行vagrant up来启动虚拟机,之后你可以登录到虚拟机来验证Apache时候已经安装成功:

    	$ vagrant ssh
    	...
    	vagrant@precise32:~$ wget -qO- 127.0.0.1
    

    网络

    总是在终端里边访问Apache不是什么好的主意,所以这个部分我们会对Vagrant的网络进行配置,让它可以通过宿主机器(Host machine)来访问。

    我们用端口映射来实现对Apache服务的访问,编辑Vagrantfile文件如下:

    	Vagrant.configure("2") do |config|
    	  config.vm.box = "hashicorp/precise32"
    	  config.vm.provision :shell, path: "bootstrap.sh"
    	  config.vm.network :forwarded_port, host: 4567, guest: 80
    	end
    

    forwarded_port这一行把宿主机器的4567端口映射到了客户机器(Guest machine)的80端口。然后通过vagrant reload重启虚拟机,重启完成之后你用浏览器打开 http://127.0.0.1:4567就可以访问到WEB页面了。

  • 相关阅读:
    delphi reintroduce作用
    终止TTask.Run启动的线程
    ChinaCock界面控件介绍-TCCYearMonthSelector
    EChart 后台生成图片思路
    Maven的仓库和settings.xml配置文件
    JDK13 安装处理
    jdk API8、9英文、中文在线文档及CHM下载:
    springmvc 学习基础
    Spring 框架——利用HandlerExceptionResolver实现全局异常捕获
    ApplicationListener详解
  • 原文地址:https://www.cnblogs.com/gakuki/p/7543616.html
Copyright © 2020-2023  润新知