本环境只支持阿里云&腾讯云环境，其他环境如需使用请联系 decodedcm@gmail.com。使用本环境之前请先联系相关人员后，在进行使用。
本系统采用松耦合模块化配置，具体情况清根据自身需要选择模块。

## 背景：
    为了解决机器骤加的问题，推出本系统，旨在解决基本环境的安装及各个机器配置不统一情况。基于Devops理念，可运行简单的几条命令即可完成复杂的配置工作。

## 面向群体：全体

## 使用步骤
    1. 确定自己的需求（是否需要ssl，是否准备好ssl证书，是否有测试和正式环境的域名，磁盘使用情况，应用使用情况等。出现如上问题自行解决）
    2. 配置nginx，一定要把nginx/templates里面的几个nginx配置文件确认明白（使用到了ssl证书请放在file目录下），如果没有请按照已有几个自行配置（自行充分测试）
    3. 检查firewall参数，在roles/base/files/firewall.sh中（一般没问题）
    4. 配置filebeat。修改filebeat/templates/filebeat.yml
    5. 配置zabbix。分别确定zabbix server和agent的机器，修改相应的配置（templates里面的配置文件）。
    6. 修改host.yml.examples内容，样例相同位置的host文件
    7. 根据每个相应模块的相应使用过程使用

## Base
    裸配置机器请先运行此模块

### 使用：
    1. 任意服务器安装ansible，使用pip工具安装（需要Python3）。pip3 install ansible即可完成。
    2. git clone http://code.mayi888.com/operation/Ant_Devops.git
    3. cd Ant_Devops
    4. 设置免密认证。文档：https://blog.csdn.net/furzoom/article/details/79139570(如果免密认证失败，请在第七步加-k参数)
    5. vim host.yml.examples中内容为远程主机公网地址，并重命名此文件为host.yml
    6. vim roles/nginx/templates/examples.conf或roles/nginx/templates/examplesadmin.conf内容，把文中“examples”替换成需要的URL。其中，roles/nginx/templates/examples.conf适合前后分离的web环境。roles/nginx/templates/examplesadmin.conf适合用到“统一管理平台”的web环境。
    7. 运行 ansible-playbook -i host.yml  -u root standard.yml

## 本环境内容：
    1. nginx(tenginx 2.2.2)
    2. openjdk(1.8)
    3. docker(17.12.1-ce)
    4. git(2.9.5)

## Zabbix
    自动化部署Zabbix监控

### 使用：
    1-5同上
    6. 修改变量 roles/zabbix_server/templates/zabbix_server.conf（DB开头的三个变量），roles/zabbix_agent/templates/zabbix_agentd.conf（Server变量），roles/zabbix_server/files/zabbix_db.sh（mysql的变量），var/main.yml（mysql args变量）
    7. 运行ansible-playbook -i host.yml  -u root zabbix.yml

## 其他模块
    选配程序

### 使用
    1. 检查各自模块的templates中的配置文件，更改为相应要求
    2. 在/Ant_Devops/standard.yml中roles字段中添加相应模块
    3. 运行 ansible-playbook -i host.yml  -u root standard.yml

# 完整演示
## 1
![avatar](./images/1.png)
## 2
![avatar](./images/2.png)
## 3
![avatar](./images/3.png)
## 4
![avatar](./images/4.png)
## 5
![avatar](./images/5.png)
要在操控的机器上运行，把操控的机器的密钥复制到运行ansible的authorized_keys里面。具体原理：https://my.oschina.net/aiguozhe/blog/33994
## 6
![avatar](./images/6.png)
## 7
![avatar](./images/7.png)
## 8
![avatar](./images/8.png)
## 9
![avatar](./images/9.png)
## 10
![avatar](./images/10.png)
## 11
![avatar](./images/12.png)
## 12
![avatar](./images/13.png)
## 13
![avatar](./images/11.png)