1 Star 0 Fork 12

林林未 / 运维平台

forked from Yokiy / 运维平台 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

Yokiy 运维自动化平台项目

gitee


项目简介

  • 这是一个web自动化平台,为企业实现一键部署。
  • 基于Python 3 和 Django2.0
  • Bootstrap ampleadmin 模板
  • Docker kubernetes
  • Mysql 5.6 & Redis 4.0

主要功能

  1. 用户权限管理
  2. CI/CD 持续部署,持续构建
  3. MySql执行管理
  4. 应用日志管理
  5. 应用监控
  6. API监控

TODO

  1. 自动创建应用,yml配置文件前置
  2. 监控告警通知
  3. 配置模板
  4. 多构建节点
  5. 发布审核
  6. API监控多节点
  7. 文档管理
  8. 短信验证
  9. 钉钉加入

依赖

  • django==2.0
  • requests==2.18.4
  • mysqlclient==1.3.12
  • PyMySQL==0.8.0
  • pycurl==7.43.0.1
  • APScheduler==3.0.3
  • SQLAlchemy==1.1.7
  • celery==4.1.0
  • django-celery-results==1.0.1
  • django-redis==4.8.0

效果图

gitee gitee gitee gitee gitee gitee gitee gitee gitee gitee gitee gitee gitee gitee gitee

部署步骤

安装版

  • 部署kubernetes并安装kubectl
  • 安装mysql & redis & nginx
  • 安装pyenv:
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash    # 安装虚拟环境,脚本跑完之后会有提示 按照提示修改自己的`~/.bash_profile
# 打开配置文件
vim ~/.bash_profile

# 复制刚才提示中的类似这三段
# 不能直接复制我的,每个人的不一样
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-"

# 使自己的profile生效
source ~/.bash_profile
  • 安装Python3:
pyenv install 3.6.5
  • 创建运维平台运行的虚拟环境
pyenv virtualenv 3.6.5 venv
  • Clone并编写配置:
git clone -b master https://gitee.com/jdytrip/jdy_devops.git
cd /data/jdy_devops  # 进入网站目录
pyenv local venv # 将项目文件夹的环境设置为 virtualenv
  • 修改jdyops/conf.py 配置文件
  • 安装依赖:
pip install -r requirements.txt
  • 初始化数据库:
python manage.py makemigrations django_celery_results  # 可忽略
python manage.py makemigrations server
python manage.py migrate
  • 初始化管理员数据和权限数据:
python ./daemon/init_db.py

注意,管理员账号初始化为admin,密码为admin123

  • 后台程序启动:
celery multi start  -A jdyops worker -l info -c 8 -n worker1.%h  # 启动多进程 -c {进程数}
  • 启动定时任务程序:
nohup python ./daemon/api_monitor.py >>./logs/api_monitor.log 2>&1 &
  • 启动nginx: 将daemon/jdy_devops.cnf 拷贝到nginx/conf/vhost下,并修改配件文件相应字段,然后启动

  • 启动uwsgi

uwsgi uwsgi.ini
  • 安装构建环境
    • 生成openssh key,将key和pub放入 daemon/ssh_key/ 目录下
    • 安装JDK8,MAVEN3,NODEJS
# 到构建节点机器上运行,前期可以与web在同一台机器
sh jdy_devops/daemon/sh/install_mvn_npm.sh
  • 前台启动celery
celery -A ManagerMaster worker --pool=solo -l info

Docker版

server
    {
     	listen 80;
        server_name _;  # 这个地方填写你的域名
        root  /src/django-sspanel;

	location /static
        {
	alias  /src/django-sspanel/static; #静态文件地址,js/css
        expires  12h;
        }

	location /
        {
	include uwsgi_params;
        uwsgi_pass web:8080;
        }

        location = /favicon.ico {
        empty_gif;
        }

    }
  • 运行程序
# 进入项目根目录
cd jdy_devops

# 开启程序
docker-compose up -d
  • 初始化数据库
docker exec -it devops-web /usr/local/bin/python /src/yokiy-devops/manage.py makemigrations server
docker exec -it devops-web /usr/local/bin/python /src/yokiy-devops/manage.py migrate
docker exec -it devops-web /usr/local/bin/python /src/yokiy-devops/daemon/init_db.py
  • 安装构建环境
    • 生成openssh key,将key和pub放入 daemon/ssh_key/ 目录下
    • 安装JDK8,MAVEN3,NODEJS
# 到构建节点机器上运行,前期可以与web在同一台机器
sh jdy_devops/daemon/sh/install_mvn_npm.sh

开始访问你的域名吧~

Copyright (c) 2018, yokiy All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the {organization} nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

暂无描述 展开 收起
Python
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/vtnt/jdy_devops.git
git@gitee.com:vtnt/jdy_devops.git
vtnt
jdy_devops
运维平台
master

搜索帮助