最近学个DEVOPS2.0,讲微服务,容器华,持续部署,很到位,就一个一个工具撸一撸。。。
vagrant,以前接触过,所以上手快,,哈哈,,用时再具体配置。
virtualbox的。
基本命令:
#提前下载好的box文件,~/box/precise64.box,我们给这个box命名为ubuntu12.04 vagrant box add ubuntu12.04 ~/box/precise64.box #box文件也可以是远程地址 base 为默认名称 #vagrant box add base http://files.vagrantup.com/lucid64.box #打开目录 #cd ~/vagrant/work #初始化 vagrant init #如果你添加的box名称不是base,那么需要在初始化的时候指定名称,例如 vagrant init ubuntu12.04 vagrant up vagrant ssh vagrant reload vagrant package vagrant -h
Vagrantfile
# -*- mode: ruby -*- # vi: set ft=ruby :# All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure("2") do |config|# The most common configuration options are documented and commented below.# For a complete reference, please see the online documentation at# https://docs.vagrantup.com.# Every Vagrant development environment requires a box. You can search for# boxes at https://atlas.hashicorp.com/search.config.vm.box = "hashicorp/precise64"config.vm.provision :shell, path: "bootstrap.sh"config.vm.network :forwarded_port, guest: 80, host: 4567# Disable automatic box update checking. If you disable this, then# boxes will only be checked for updates when the user runs# `vagrant box outdated`. This is not recommended.# config.vm.box_check_update = false# Create a forwarded port mapping which allows access to a specific port# within the machine from a port on the host machine. In the example below,# accessing "localhost:8080" will access port 80 on the guest machine.# config.vm.network "forwarded_port", guest: 80, host: 8080# Create a private network, which allows host-only access to the machine# using a specific IP.# config.vm.network "private_network", ip: "192.168.33.10"# Create a public network, which generally matched to bridged network.# Bridged networks make the machine appear as another physical device on# your network.# config.vm.network "public_network"# Share an additional folder to the guest VM. The first argument is# the path on the host to the actual folder. The second argument is# the path on the guest to mount the folder. And the optional third# argument is a set of non-required options.# config.vm.synced_folder "../data", "/vagrant_data"# Provider-specific configuration so you can fine-tune various# backing providers for Vagrant. These expose provider-specific options.# Example for VirtualBox:## config.vm.provider "virtualbox" do |vb|# # Display the VirtualBox GUI when booting the machine# vb.gui = true## # Customize the amount of memory on the VM:# vb.memory = "1024"# end## View the documentation for the provider you are using for more# information on available options.# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies# such as FTP and Heroku are also available. See the documentation at# https://docs.vagrantup.com/v2/push/atlas.html for more information.# config.push.define "atlas" do |push|# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"# end# Enable provisioning with a shell script. Additional provisioners such as# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the# documentation for more information about their specific syntax and use.# config.vm.provision "shell", inline: <<-SHELL# apt-get update# apt-get install -y apache2# SHELL end
bootstrap.sh
#!/usr/bin/env bashapt-get update apt-get install -y apache2 if ! [ -L /var/www ]; thenrm -rf /var/wwwln -fs /vagrant /var/www fi