Bladeren bron

U - Update README.md and Docs

张玉坡 7 jaren geleden
bovenliggende
commit
7044b171f1

+ 14 - 10
README.md

@@ -36,16 +36,18 @@ Spug是一款使用Python+Flask+Element组件开发的开源运维管理系统,
 ----------------------------
 ```
 $ docker pull hub.qbangmang.com/spug:1.0.1
-$ docker run -d -e REGISTRY_SERVER="hub.docker.com:5000" -p 80:80 hub.qbangmang.com/spug:1.0.1
+$ docker run -d -e REGISTRY_SERVER="hub.qbangmang.com:5000" -p 80:80 hub.qbangmang.com/spug:1.0.1
 
+$ 访问:http://主机ip
+$ 默认账号密码:admin/spug
 
 # 可选参数:
-$ -e MYSQL_DATABASE="spug"        	       //指定数据库名称
-  -e MYSQL_USER="spuguser"         	       //指定数据库用户名
-  -e MYSQL_PASSWORD="spugpwd"    	         //指定数据库密码
-  -e REGISTRY_SERVER="hub.docker.com:5000" //指定私有镜像仓库
-  -e REGISTRY_USER="hubuser"    	         //指定私有镜像仓库用户名
-  -e REGISTRY_PASSWORD="hubpwd" 	         //指定私有镜像仓库密码
+$ -e MYSQL_DATABASE="spug"                    //指定数据库名称
+  -e MYSQL_USER="spuguser"                    //指定数据库用户名
+  -e MYSQL_PASSWORD="spugpwd"                 //指定数据库密码
+  -e REGISTRY_SERVER="hub.qbangmang.com:5000" //指定私有镜像仓库
+  -e REGISTRY_USER="hubuser"                  //指定私有镜像仓库用户名
+  -e REGISTRY_PASSWORD="hubpwd"               //指定私有镜像仓库密码
 ```
 
 更多Dockerfile [Dockerfile](https://github.com/openspug/spug/docs/Dockerfile)
@@ -65,8 +67,10 @@ $ -e MYSQL_DATABASE="spug"        	       //指定数据库名称
 
    2. Start server 启动服务端:
    $ cd spug/spug_api
-   $ pip install -r requirements.txt
-   $ python main.py
+   $ pip install -r requirements.txt  //安装依赖包
+   $ python manage.py init_db         //初始化数据库
+   $ python manage.py create_admin    //创建管理员
+   $ python main.py                   //启动服务
 
    3. Start web  启动前端:
    $ cd spug/spug_web
@@ -86,7 +90,7 @@ $ -e MYSQL_DATABASE="spug"        	       //指定数据库名称
 ### Docs 开发者文档
 ----------------------------
 
- * [Project structure 项目结构](https://github.com/openspug/spug/docs/project_structure.md)
+ * [Project structure 项目结构](https://github.com/openspug/spug/blob/master/docs/project_structure.md)
 
 ### Contributor 贡献者
 ----------------------------

+ 4 - 3
docs/Dockerfile/Dockerfile

@@ -3,13 +3,14 @@ FROM alpine:3.6
 RUN echo -e "http://mirrors.aliyun.com/alpine/v3.6/main\nhttp://mirrors.aliyun.com/alpine/v3.6/community" > /etc/apk/repositories
 RUN apk update && apk add --no-cache ca-certificates python3 nginx mariadb nodejs-npm git 
 RUN apk add --no-cache --virtual .build-deps python3-dev gcc musl-dev libffi-dev openssl-dev make \
+    && git clone https://github.com/openspug/spug.git /spug \
     && pip3 install --no-cache-dir -r /spug/spug_api/requirements.txt \
-	&& pip3 install --no-cache-dir gunicorn \	
+    && pip3 install --no-cache-dir gunicorn \	
     && apk del .build-deps 
 RUN cd /spug/spug_web/ && npm i -d --registry=https://registry.npm.taobao.org \
     && npm run build \
-	&& mv /var/lib/nginx/html /var/lib/nginx/html.bak && mv /spug/spug_web/dist /var/lib/nginx/html \
-    && rm -f /spug/spug_web
+    && mv /var/lib/nginx/html /var/lib/nginx/html.bak && mv /spug/spug_web/dist /var/lib/nginx/html \
+    && rm -rf /spug/spug_web
 	
 ADD default.conf /etc/nginx/conf.d/default.conf
 ADD entrypoint.sh /entrypoint.sh

+ 1 - 1
docs/Dockerfile/entrypoint.sh

@@ -37,4 +37,4 @@ sleep 2
 if [ $REQUIRE_INIT_OPS == true ]; then
     /usr/bin/python3 /scripts/init_spug.py
 fi 
-gunicorn --threads=32 main:app
+gunicorn --threads=32 main:app -b 0.0.0.0:3000

+ 11 - 0
docs/Dockerfile/scripts/init_config.sh

@@ -1,5 +1,16 @@
 set -e 
 
+cat >> /spug/spug_api/config.py << EOF
+from pytz import timezone
+import os
+
+DEBUG = True
+TIME_ZONE = timezone('Asia/Shanghai')
+BASE_DIR = os.path.dirname(os.path.abspath(__file__))
+DOCKER_URL = 'unix:///var/run/docker.sock'
+SQLALCHEMY_ECHO = False
+
+EOF
 echo "SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://${MYSQL_USER:-spuguser}:${MYSQL_PASSWORD:-spugpwd}@localhost/${MYSQL_DATABASE:-spug}'" >> /spug/spug_api/config.py
 echo "DOCKER_REGISTRY_SERVER = '${REGISTRY_SERVER}'" >> /spug/spug_api/config.py
 echo "DOCKER_REGISTRY_AUTH = {'username': '${REGISTRY_USER}', 'password': '${REGISTRY_PASSWORD}'}" >> /spug/spug_api/config.py

+ 2 - 2
docs/Dockerfile/scripts/init_spug.py

@@ -1,6 +1,6 @@
 import sys
 import os
-sys.path.append('/ops_api')
+sys.path.append('/spug/spug_api')
 import random
 import string
 from public import db
@@ -25,7 +25,7 @@ with open(os.path.join(BASE_DIR, 'libs', 'sql', 'permissions.sql'), 'r') as f:
 
 # create default admin
 username = 'admin'
-password = ''.join(random.sample(string.ascii_letters + string.digits, 8))
+password = 'spug'
 User(username=username, password=password, nickname='Administrator', is_supper=True).save()
 
 print('*' * 80)

+ 72 - 72
docs/project_structure.md

@@ -2,89 +2,89 @@
 
 
 ```
-├── docs                         	 // 文档相关目录
+├── docs                             // 文档相关目录
 ├── spug_api                         // 后端接口目录
 │   └── apps                         // 后端子模块目录
 │   │   ├── account                  // 用户管理模块
 │   │   │   └── __init__.py          // 用户模块蓝图路由
-│   │   │   └── models.py			 // 用户模块数据模型
-│   │   │   └── role.py				 // 用户权限操作相关方法
-│   │   │   └── user.py				 // 用户操作相关方法
-│   │   ├── apis                  	 // 公用接口模块
+│   │   │   └── models.py            // 用户模块数据模型
+│   │   │   └── role.py              // 用户权限操作相关方法
+│   │   │   └── user.py              // 用户操作相关方法
+│   │   ├── apis                     // 公用接口模块
 │   │   │   └── __init__.py          // 定义接口相关蓝图路由
-│   │   │   └── config.py			 // 客户端获取配置文件相关方法
+│   │   │   └── config.py            // 客户端获取配置文件相关方法
 │   │   │   └── files.py		     // 文件上传相关方法
 │   │   │   └── utils.py			 //
 │   │   ├── assets                   // 资产管理模块
 │   │   │   └── __init__.py          // 资产模块蓝图路由
-│   │   │   └── host.py			     // 主机管理相关方法
+│   │   │   └── host.py              // 主机管理相关方法
 │   │   │   └── host_exec.py	     // 主机批量执行相关方法
-│   │   │   └── models.py	     	 // 资产模块数据模型
+│   │   │   └── models.py            // 资产模块数据模型
 │   │   │   └── utils.py			 //
 │   │   ├── common                   // 公用队列模块
 │   │   │   └── __init__.py          // 公用队列模块蓝图路由
 │   │   │   └── queue.py			 // 公用队列方法
 │   │   ├── configuration            // 配置管理模块
 │   │   │   └── __init__.py          // 配置管理模块蓝图路由
-│   │   │   └── app.py			     // 主机管理相关方法
-│   │   │   └── config.py	     	 // 
-│   │   │   └── environment.py	     // 环境配置相关方法
-│   │   │   └── models.py	     	 // 配置管理数据模型
-│   │   │   └── service.py			 // 配置管理-服务配置相关方法
-│   │   ├── deploy            		 // 应用发布模块
+│   │   │   └── app.py               // 应用配置管理
+│   │   │   └── config.py            // 
+│   │   │   └── environment.py       // 环境配置相关方法
+│   │   │   └── models.py            // 配置管理数据模型
+│   │   │   └── service.py           // 配置管理-服务配置相关方法
+│   │   ├── deploy                   // 应用发布模块
 │   │   │   └── __init__.py          // 应用发布模块蓝图路由
-│   │   │   └── app.py			     // 
-│   │   │   └── config.py	     	 // 
+│   │   │   └── app.py               // 
+│   │   │   └── config.py            // 
 │   │   │   └── container.py	     // 
-│   │   │   └── exec.py	     		 // 应用发布-执行发布相关方法
-│   │   │   └── field.py	     	 // 应用发布-字段管理相关方法
-│   │   │   └── host.py	     		 // 
-│   │   │   └── image.py	     	 // 应用发布-镜像管理相关方法
-│   │   │   └── menu.py	     		 // 应用发布-菜单管理相关组件
-│   │   │   └── models.py	     	 // 应用发布数据模型
-│   │   │   └── publish.py			 // 应用发布-发布相关方法
-│   │   │   └── utils.py			 // 
+│   │   │   └── exec.py              // 应用发布-执行发布相关方法
+│   │   │   └── field.py             // 应用发布-字段管理相关方法
+│   │   │   └── host.py              // 
+│   │   │   └── image.py             // 应用发布-镜像管理相关方法
+│   │   │   └── menu.py              // 应用发布-菜单管理相关组件
+│   │   │   └── models.py            // 应用发布数据模型
+│   │   │   └── publish.py           // 应用发布-发布相关方法
+│   │   │   └── utils.py             // 
 │   │   ├── home            		 // 首页模块
 │   │   │   └── __init__.py          // 首页蓝图路由
 │   │   │   └── homes.py			 // 首页展示数据方法
-│   │   ├── schedule              	 // 任务管理模块
+│   │   ├── schedule                 // 任务管理模块
 │   │   │   └── __init__.py          // 任务管理蓝图路由
 │   │   │   └── agent.py			 // 任务管理-执行对象相关方法
-│   │   │   └── history.py	     	 // 任务管理-任务历史
-│   │   │   └── job.py	     		 // 任务管理-任务列表相关
-│   │   │   └── models.py	     	 // 任务管理数据模型
+│   │   │   └── history.py           // 任务管理-任务历史
+│   │   │   └── job.py               // 任务管理-任务列表相关
+│   │   │   └── models.py            // 任务管理数据模型
 │   │   │   └── scheduler.py	     // 任务管理方法
-│   │   ├── setting              	 // 
+│   │   ├── setting                  // 
 │   │   │   └── __init__.py          // 
-│   │   │   └── models.py			 // 
-│   │   │   └── utils.py	     	 // 
+│   │   │   └── models.py            // 
+│   │   │   └── utils.py             // 
 │   │   ├── __init__.py              // 
-│   │   │ 
+│   │   │
 │   └── libs                         // 系统公用库目录
 │   │   ├── scripts                  // 公用脚本目录
 │   │   │   └── entrypoint.sh        // 容器启动脚本
-│   │   ├── sql                  	 // sql目录
+│   │   ├── sql                      // sql目录
 │   │   │   └── permissions.sql      // 系统权限SQL文件
-│   │   ├── ssh                   	 // ssh管理目录
+│   │   ├── ssh                      // ssh管理目录
 │   │   │   └── __init__.py          // 公用ssh相关方法
 │   │   ├── template                 // 系统模板目录
-│   │   │   └── host.xls         	 // 主机管理-主机导入-模板
-│   │   ├── __init__.py              // 
+│   │   │   └── host.xls             // 主机管理-主机导入-模板
+│   │   ├── __init__.py              //
 │   │   ├── decorators.py            // 公用检查权限文件
 │   │   ├── middleware.py            // 系统公共设置文件
 │   │   ├── model.py                 // 系统公用类
 │   │   ├── tool.py                  // 系统公用工具文件
-│   │   ├── utils.py                 // 
+│   │   ├── utils.py                 //
 │   └── storage                      // 系统公用目录
 │   │   ├── exec_tmp                 // 执行目录
 │   │   ├── images                   // 镜像目录
 │   │   ├── publish_tmp              // 发布目录
 │   └── config.py.example            // 后端配置文件模板
-│   └── main.py            			 // 后端入口文件,加载所有模块
-│   └── manage.py            		 // 系统管理文件
-│   └── public.py            		 // 系统公用
+│   └── main.py                      // 后端入口文件,加载所有模块
+│   └── manage.py                    // 系统管理文件
+│   └── public.py                    // 系统公用
 │   └── requirements.txt             // 后端依赖包文件
-│  
+│
 ├── spug_web                         // 前端目录
 │   └── dist                         // 项目编译后的静态资源目录
@@ -96,55 +96,55 @@
 │   │   │   │   └── PublishPermission.vue // 角色权限-发布权限组件
 │   │   │   │   └── Role.vue		 // 角色权限组件
 │   │   │   │   └── routes.js        // 用户管理路由
-│   │   │   │   └── TagTd.vue		 // 权限管理标签
+│   │   │   │   └── TagTd.vue        // 权限管理标签
 │   │   │   │   └── User.vue		 // 用户列表组件
 │   │   │   ├── assets               // 主机管理目录
-│   │   │   │   └── Host.vue	 	 // 主机列表组件
+│   │   │   │   └── Host.vue         // 主机列表组件
 │   │   │   │   └── HostExec.vue	 // 批量执行组件
 │   │   │   │   └── route.js		 // 主机管理路由
 │   │   │   ├── configuration        // 配置管理目录
-│   │   │   │   └── App.vue			 // 应用配置列表组件
-│   │   │   │   └── AppConfig.vue	 // 应用配置-配置组件
-│   │   │   │   └── AppRel.vue	     // 应用配置-关系配置组件
-│   │   │   │   └── ConfigEdie.vue	 // 
-│   │   │   │   └── Environment.vue	 // 环境配置组件
+│   │   │   │   └── App.vue          // 应用配置列表组件
+│   │   │   │   └── AppConfig.vue    // 应用配置-配置组件
+│   │   │   │   └── AppRel.vue       // 应用配置-关系配置组件
+│   │   │   │   └── ConfigEdie.vue   // 
+│   │   │   │   └── Environment.vue  // 环境配置组件
 │   │   │   │   └── route.js		 // 配置管理路由
-│   │   │   │   └── Service.vue	 	 // 服务管理组件
+│   │   │   │   └── Service.vue      // 服务管理组件
 │   │   │   │   └── ServiceConfig.vue// 服务配置-配置组件
-│   │   │   ├── publish            	 // 应用发布目录
-│   │   │   │   └── App.vue			 // 应用列表组件
-│   │   │   │   └── AppConfig.vue	 // 应用列表-应用设置组件
-│   │   │   │   └── AppMenu.vue	     // 
-│   │   │   │   └── AppSetting.vue	 // 应用列表-容器设置组件
-│   │   │   │   └── ColorInput.vue	 // 发布执行命令行组件
-│   │   │   │   └── Deploy.vue		 // 应用发布-部署组件 
-│   │   │   │   └── Field.vue	  	 // 应用发布-字段管理组件
-│   │   │   │   └── Image.vue		 // 应用发布-镜像管理组件
-│   │   │   │   └── Menu.vue	 	 // 应用发布-菜单管理组件
+│   │   │   ├── publish              // 应用发布目录
+│   │   │   │   └── App.vue          // 应用列表组件
+│   │   │   │   └── AppConfig.vue    // 应用列表-应用设置组件
+│   │   │   │   └── AppMenu.vue      // 
+│   │   │   │   └── AppSetting.vue   // 应用列表-容器设置组件
+│   │   │   │   └── ColorInput.vue   // 发布执行命令行组件
+│   │   │   │   └── Deploy.vue       // 应用发布-部署组件 
+│   │   │   │   └── Field.vue        // 应用发布-字段管理组件
+│   │   │   │   └── Image.vue        // 应用发布-镜像管理组件
+│   │   │   │   └── Menu.vue         // 应用发布-菜单管理组件
 │   │   │   │   └── MenuExec.vue	 //
 │   │   │   │   └── route.js		 // 应用发布路由
 │   │   │   ├── schedule             // 任务管理目录
-│   │   │   │   └── Job.vue	     	 // 任务列表组件
-│   │   │   │   └── JobSetting.vue	 // 任务管理-设置触发器组件
-│   │   │   ├── Deny.vue 			 // 全局权限拒绝组件
-│   │   │   ├── Home.vue   			 // 系统Home组件
-│   │   │   ├── Layout.vue 			 // 菜单生成组件
-│   │   │   ├── Login.vue 			 // 系统登录组件
-│   │   ├── config               	 // 配置目录
+│   │   │   │   └── Job.vue          // 任务列表组件
+│   │   │   │   └── JobSetting.vue   // 任务管理-设置触发器组件
+│   │   │   ├── Deny.vue             // 全局权限拒绝组件
+│   │   │   ├── Home.vue             // 系统Home组件
+│   │   │   ├── Layout.vue           // 菜单生成组件
+│   │   │   ├── Login.vue            // 系统登录组件
+│   │   ├── config                   // 配置目录
 │   │   │   ├── env.js               // 项目常规配置
 │   │   │   ├── menu.js              // 菜单及面包屑配置
-│   │   ├── plugins               	 // 项目扩展目录
+│   │   ├── plugins                  // 项目扩展目录
 │   │   │   ├── globalTools.js       // 全局变量
-│   │   ├── App.vue               	 // 
+│   │   ├── App.vue                  //
 │   │   ├── index.html               // 首页文件
-│   │   ├── main.js               	 // 入口文件,加载各种公共组件
+│   │   ├── main.js                  // 入口文件,加载各种公共组件
 │   │   ├── router.js                // 公共路由
 │   └── .babelrc                     // ES6语法编译配置
-│   └── Makefile                     // 
+│   └── Makefile                     //
 │   └── package.json                 // 项目及工具的依赖配置文件
-│   └── postcss.config.js            // 
+│   └── postcss.config.js            //
 │   └── ReadME.md                    // 前端README
-│   └── webpack.config.js            // 
+│   └── webpack.config.js            //
 
 
 ```