Vagrant简介

Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。

在Windows下,也可以方便地使用Linux环境开发程序

官方文档 http://docs.vagrantup.com/v2/getting-started/index.html

box https://vagrantcloud.com/discover/featured

准备工作

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

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

初始化Vagrant

#进入D盘
C:\Windows\system32>d:
#创建一个虚拟机的主目录,这个目录会与虚拟机/vagrant保持同步
mkdir vagrant_getting_started
cd vagrant_getting_started
#初始化,这里需要一个centos的box,在box分享网站上可以找到chef/centos-6.5
vagrant init chef/centos-6.5
#启动虚拟机
vagrant up
#登录虚拟机
vagrant ssh

配置开发环境

su root
Password:vagrant
#更改root密码,方便SecureCRT登录 默认虚拟机22端口映射宿主机2222端口
service sshd reload
passwd root
#后续的服务器安全加固措施,可以使用key登录
#下面的操作是让虚拟机更加稳定
sudo yum update -y
sudo yum install gcc
sudo install kernel-devel

常用命令

box管理

vagrant box list #列出可用box
vagrant box add chef/centos-6.5 #添加云box上的镜像
vagrant box add chef/centos-6.5 chef/centos-6.5.box #添加本地box

虚拟机管理命令

vagrant up #启动
vagrant reload #修改Vagrantfile快速使之快速生效
vagrant halt #关闭
vagrant suspend #暂停
vagrant resume #恢复
vagrant destroy #删除

打包box

  1. 创建新的文件Vagrantfile.pkg
    Vagrant::Config.run do |config|
    #Forward apache
    config.vm.forward_port 80, 8080
    end
  2. 打包Project
    #打包完成后,会在工程根目录下生成package.box
    vagrant package --vagrantfile Vagrantfile.pkg
  3. private_network模式需要清除一下配置
    rm -f /etc/udev/rule.d/70-persistent-net.rules
    

Vagrantfile 配置

Vagrantfile 工程根目录下,虚拟机的主要配置文件,提供网络配置,共享配置,环境初始化配置

(支持shell命令及脚本,chef,puppet,salt,Docker)

网络配置

#端口映射
config.vm.network :forwarded_port, guest: 80, host: 8080
#私有网络
config.vm.network :private_network, ip: "192.168.1.104"
#DHCP接入实体网络
config.vm.network :public_network
#网卡桥接接入实体网络
config.vm.network "public_network", bridge: 'en1: Wi-Fi (AirPort)'

共享

#目录共享
config.vm.synced_folder "E:/Blog", "/home/vagrant/Blog"

环境初始化provision

执行脚本
#!/usr/bin/env bash
yum update
yum install -y apache2
rm -rf /var/www
ln -fs /vagrant /var/www
Vagrant.configure("2") do |config|
config.vm.box = "chef/centos-6.5"
config.vm.provision :shell, path: "bootstrap.sh"
end

运行Docker

异常问题

共享加载失败

vagrant halt
vagrant plugin install vagrant-vbguest
vagrant up

Vagrant 部署python开发环境的更多相关文章

  1. Ubuntu 部署Python开发环境

    一.开发环境包安装 sudo apt-get install git-core sudo apt-get install libxml2-dev sudo apt-get install libxsl ...

  2. 使用Vagrant搭建本地python开发环境

    使用Vagrant搭建本地python开发环境 关于vagrant:Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境,它使用Oracle的开源VirtualBox虚拟化系统也可以使 ...

  3. ubuntu部署Java、Python开发环境

    要部署Java开发环境首先就要安装JDK. 一.安装JDK8 1. 下载 jdk-8u172-linux-x64.tar.gz 到 /usr/java8/ 目录下: 2. tar  -zxvf  jd ...

  4. Eclipse for Python开发环境部署

    Eclipse for Python开发环境部署 工欲善其事,必先利其器. 对开发人员来说,顺手的开发工具必定事半功倍.自学编程的小白不知道该选择那个开发工具,Eclipse作为一个功能强大且开源免费 ...

  5. 一.1搭建跨平台的统一python开发环境

    搭建跨平台的统一python开发环境: 使用开发环境的好处: 可不用在服务器上直接修改源代码---写的代码首先得入版本库(放git或giitlab中),在本地写代码提交到git中.然后在服务器上git ...

  6. ubuntu上用eclipse搭建java、python开发环境

    上一篇文章讲到如何在windwos上用eclipse搭建java.python开发环境,这一讲将关注如何在ubuntu上实现搭建,本人使用虚拟机安装的ubuntu系统,系统版本为:14.04 lts ...

  7. windows 下用eclipse搭建java、python开发环境

    本人只针对小白!本文只针对小白!本文只针对小白! 最近闲来无事,加上之前虽没有做过eclipse上java.python的开发工作,但一直想尝试一下.于是边查找资料边试验,花了一天时间在自己的机器上用 ...

  8. [原]打造Python开发环境之初篇

    古语有云: 工欲善其事,必先利其器 拥有自己的一套得心应手的Python开发环境,开发起来,简直如丝般顺滑.以我工作中使用到的Python开发环境(主要是Web应用),先做个总体介绍 Python环境 ...

  9. CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇

    CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境 CentOS7 + Python3 + D ...

随机推荐

  1. angular.bind

    angular.bind :Returns a function which calls function fn bound to self (self becomes the this for fn ...

  2. 各浏览器对 onbeforeunload 事件的支持与触发条件实现有差异

    转载:http://www.w3help.org/zh-cn/causes/BX2047 标准参考 无. 问题描述 一般情况下,onbeforeunload 事件处理函数内会写入一些提示性语句,当用户 ...

  3. 《第一行代码》学习笔记1-Android系统架构

    1. 2003.10,Andy Rubin创办Android公司.2005.8,Google收购之,并于2008年推出Android系统第一个版本. 2. ①Linux Kernel:基于Linux ...

  4. 【转】UITextView 修改键盘 的return按钮

    原文:http://www.apkbus.com/blog-107838-45740.html 1 #import <UIKit/UIKit.h>2 3 @interface TextVi ...

  5. Listbox与dataGridView的获取鼠标点击事件的区别!!!

    lisxian.SelectedIndex = index; Listbox获取鼠标的代码!!!! DataGridViewRow currenRow = this.dgvxian3.Rows[ind ...

  6. Java基础--IO

    1,流的认识和分类 2,Java种处理流的IO类架构 3,字节流和字符流转换 4,NIO的概述 5,Java IO关闭资源 1,流的认识和分类 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的 ...

  7. POJ3320 Jessica's Reading Problem(尺取+map+set)

    POJ3320 Jessica's Reading Problem set用来统计所有不重复的知识点的数,map用来维护区间[s,t]上每个知识点出现的次数,此题很好的体现了map的灵活应用 #inc ...

  8. centos账户管理命令(root权限)

    cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1        查看所有用户 userdel -r 用户名           -删除用户 ...

  9. php对mongo操作问题

    最近由于业务需求,需要使用php对mongo做一些操作,关于mongodb,选择的版本是:MongoDB shell version: 2.0.6 MongoDB是一种文档导向数据库管理系统,由C++ ...

  10. php网站判断用户是否是手机访问的方法

    PHP网站判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面.随着移动设备的普及,网站也会迎来越来越多移动设备的访问.用适应PC的页面,很多时候对手机用户不友好,那么有些时候,我们需要 ...