环境准备: 基础构建: 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 #构建系统化境配置