首页 > 代码库 > Vagrant 部署python开发环境

Vagrant 部署python开发环境

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_startedcd vagrant_getting_started#初始化,这里需要一个centos的box,在box分享网站上可以找到chef/centos-6.5vagrant init chef/centos-6.5#启动虚拟机vagrant up#登录虚拟机vagrant ssh

配置开发环境

sudo yum update -ysu rootPassword:vagrant#更改root密码,方便SecureCRT登录 默认虚拟机22端口映射宿主机2222端口service sshd reloadpasswd root#后续的服务器安全加固措施,可以使用key登录

常用命令

box管理

vagrant box list #列出可用boxvagrant 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, 8080end
  2. 打包Project
    #打包完成后,会在工程根目录下生成package.boxvagrant 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 bashyum updateyum install -y apache2rm -rf /var/wwwln -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