环境准备:
    基础构建:
	windows10
        vagrant2.1.5
        virtualbox5.2.18
        vbox:ubuntu14
    
    配置中心:
	ansible2.4

项目设计:
  	 使用vagrant + virtalbox 构建基础环境
  	 使用ansible作为项目代码环境配置中心



拉取代码配置中心代码: git clone git@github.com:frankful/tw-ansible.git
		      替换host/dev中主机ip(172.17.10.50)为vagrantfile新建ip
	
制作vbox步骤省略: *

初始化系统环境: less Vagrantfile 
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
  config.vm.provider "virtualbox" do |v|
      v.customize ["modifyvm", :id, "--name", "xxl-job", "--memory", "512"]
  end
  config.vm.box = "ubuntu14"
  config.vm.hostname = "xxl-job"
  config.ssh.username = "deploy"
  config.ssh.password = "deploy"
  config.ssh.insert_key = false
  config.vm.network "private_network", ip: "10.0.0.10"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.provision :ansible do |ansible|
      ansible.playbook = "deploy-tw-java.yml"
    end
end
	构建系统环境:vagrant up


部署代码:使用目前线上改版开源项目xxl-job为例,进行自动化部署
	1.替换host/dev中主机ip(172.17.10.50)为vagrantfile新建ip
	2.生产环境运行:ansible-playbook -i hosts/ deploy-tw-java.yml  -e "NODE=dev SITE=xxl-job"
	3.开发测试环境运行:ansible-playbook -i hosts/ deploy-tw-java.yml  -e "NODE=dev SITE=xxl-job version=tag"
	4.使用浏览器访问: http://ip:8080/toLogin
	

项目结构说明
├── deploy-tw-java.retry
├── deploy-tw-java.yml			项目部署入口
├── group_vars				变量配置中心
│   ├── all
│   ├── dev
│   └── prod
├── handlers.yml			服务启动中心
├── hosts				主机配置中心
│   ├── dev
│   └── prod
├── README				帮助文件
├── roles				角色中心,本例未使用
├── setup-agent.yml			监控入口文件,未做实际推送
├── setup-filebeat.yml			日志入口文件,未做实际推送
├── tasks				ansible 项目块,可供入口文件灵活组合
│   ├── copy_tw_key.yml
│   ├── create_tw_user.yml
│   ├── remove-nginx-default-site.yml
│   ├── repo-force-ipv4.yml
│   ├── setup-java-8.yml
│   ├── setup-mysql5.6.yml
│   └── zabbix				
│       └── install-zabbix.yml
├── templates				环境配置中心
│   ├── config				项目配置中心
│   │   ├── mysql5.6			数据库配置中心
│   │   │   └── my.cnf
│   │   └── xxl-job			代码配置中心
│   │       ├── ROOT.xml
│   │       ├── settings.xml
│   │       ├── upstart
│   │       │   ├── job-executor.conf
│   │       │   └── site.conf
│   │       └── xxl-job.sql
│   ├── filebeat			日志配置中心
│   ├── nginx				nginx配置中心
│   │   └── xxl-job.conf
│   ├── nginx.conf			
│   └── rsakey				key统一存放中心		
│       ├── git.deploy.id_rsa	
│       └── git.tw.id_rsa
└── Vagrantfile				#构建系统化境配置