Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

重新打包镜像,将环境的配置全部转为容器内来操作完成 #39

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 5 additions & 27 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,34 +1,12 @@
FROM centos:7
# 设置编码
ENV LANG en_US.UTF-8
# 同步时间
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
FROM registry.cn-hangzhou.aliyuncs.com/sourcegarden/python:centos7-3.6

# 1. 安装基本依赖
RUN yum update -y && yum install epel-release -y && yum update -y && yum install wget unzip epel-release nginx xz gcc automake zlib-devel openssl-devel supervisor groupinstall development libxslt-devel libxml2-devel libcurl-devel git -y
#WORKDIR /var/www/

# 2. 准备python
RUN wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
RUN xz -d Python-3.6.6.tar.xz && tar xvf Python-3.6.6.tar && cd Python-3.6.6 && ./configure && make && make install

# 3. 安装websdk
RUN pip3 install --upgrade pip
RUN pip3 install -U git+https://github.com/ss1917/ops_sdk.git
# 4. 复制代码
RUN mkdir -p /var/www/
ADD . /var/www/codo-cmdb/

# 5. 安装pip依赖
RUN pip3 install -r /var/www/codo-cmdb/doc/requirements.txt

# 6. 日志
VOLUME /var/log/
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r /var/www/codo-cmdb/requirements.txt

# 7. 准备文件
COPY doc/nginx_ops.conf /etc/nginx/conf.d/default.conf
COPY doc/supervisor_ops.conf /etc/supervisord.conf
COPY docker/nginx_default.conf /etc/nginx/nginx.conf
COPY docker/nginx_ops.conf /etc/nginx/conf.d/default.conf
COPY docker/supervisor_ops.conf /etc/supervisord.conf

EXPOSE 80
CMD ["/usr/bin/supervisord"]
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

> 基于Python Tornado实现的一套CMDB资产管理系统,前端使用Vue+Iview-admin

### 更新

- beta0.3.1 支持了华为云资产获取

```
前端更换成最新的前端、更改表结构即可
ALTER TABLE `asset_configs` ADD `project_id` VARCHAR(120) NOT NULL ;
ALTER TABLE `asset_configs` ADD `huawei_cloud` VARCHAR(120) NOT NULL ;
ALTER TABLE `asset_configs` ADD `huawei_instance_id` VARCHAR(120) NOT NULL ;

#若是不想更改表结构、或者是第一次部署的同学,默认docker exec -ti cmdb_codo_cmdb_1 /usr/local/bin/python3 /var/www/codo-cmdb/db_sync.py 初始化表结构即可
```


**目前功能**
Expand Down
46 changes: 23 additions & 23 deletions biz/crontab_app.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/4/26 14:30
# @Author : Fred Yangxiaofei
# @File : auto_update_app.py
# @Role : 一些定时执行的程序
import tornado
from websdk.application import Application as myApplication
from biz.timed_program import tail_data as my_timed_program
class Application(myApplication):
def __init__(self, **settings):
urls = []
my_program_callback = tornado.ioloop.PeriodicCallback(my_timed_program, 3600000) #1小时
my_program_callback.start()
super(Application, self).__init__(urls, **settings)
if __name__ == '__main__':
pass
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/4/26 14:30
# @Author : Fred Yangxiaofei
# @File : auto_update_app.py
# @Role : 一些定时执行的程序


import tornado
from websdk.application import Application as myApplication
from biz.timed_program import tail_data as my_timed_program


class Application(myApplication):
def __init__(self, **settings):
urls = []
my_program_callback = tornado.ioloop.PeriodicCallback(my_timed_program, 3600000) #1小时
my_program_callback.start()
super(Application, self).__init__(urls, **settings)


if __name__ == '__main__':
pass
204 changes: 102 additions & 102 deletions biz/handlers/admin_user_handler.py
Original file line number Diff line number Diff line change
@@ -1,102 +1,102 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/4/18 10:12
# @Author : Fred Yangxiaofei
# @File : admin_user_handler.py
# @Role : 管理用户
import json
from libs.base_handler import BaseHandler
from models.server import AdminUser, model_to_dict
from websdk.db_context import DBContext
class AdminUserHandler(BaseHandler):
def get(self, *args, **kwargs):
key = self.get_argument('key', default=None, strip=True)
value = self.get_argument('value', default=None, strip=True)
page_size = self.get_argument('page', default=1, strip=True)
limit = self.get_argument('limit', default=15, strip=True)
limit_start = (int(page_size) - 1) * int(limit)
admin_user_list = []
with DBContext('w') as session:
if key and value:
count = session.query(AdminUser).filter_by(**{key: value}).count()
admin_user_data = session.query(AdminUser).filter_by(**{key: value}).order_by(
AdminUser.id).offset(limit_start).limit(int(limit))
else:
count = session.query(AdminUser).count()
admin_user_data = session.query(AdminUser).order_by(AdminUser.id).offset(
limit_start).limit(int(limit))
for data in admin_user_data:
data_dict = model_to_dict(data)
data_dict['update_time'] = str(data_dict['update_time'])
admin_user_list.append(data_dict)
return self.write(dict(code=0, msg='获取成功', count=count, data=admin_user_list))
def post(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
admin_user = data.get('admin_user', None)
system_user = data.get('system_user', None)
# password = data.get('password', None)
user_key = data.get('user_key', None)
remarks = data.get('remarks', None)
if not admin_user or not system_user or not user_key:
return self.write(dict(code=-2, msg='关键参数不能为空'))
with DBContext('r') as session:
exist_id = session.query(AdminUser.id).filter(AdminUser.admin_user == admin_user).first()
count = session.query(AdminUser).count()
print(count)
if exist_id:
return self.write(dict(code=-2, msg='不要重复记录'))
if count > 15:
return self.write(dict(code=-2, msg='管理用户最大只允许15个'))
with DBContext('w', None, True) as session:
new_admin_user = AdminUser(admin_user=admin_user, system_user=system_user, user_key=user_key, remarks=remarks)
session.add(new_admin_user)
return self.write(dict(code=0, msg='添加成功'))
def put(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
admin_user_id = data.get('id')
admin_user = data.get('admin_user', None)
system_user = data.get('system_user', None)
# password = data.get('password', None)
user_key = data.get('user_key', None)
remarks = data.get('remarks', None)
if not admin_user or not system_user or not user_key:
return self.write(dict(code=-2, msg='关键参数不能为空'))
update_info = {
"admin_user": admin_user,
"system_user": system_user,
"user_key": user_key,
"remarks": remarks,
}
with DBContext('w', None, True) as session:
session.query(AdminUser).filter(AdminUser.id == admin_user_id).update(update_info)
self.write(dict(code=0, msg='更新成功'))
def delete(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
id = data.get('id')
if not id:
return self.write(dict(code=-2, msg='关键参数不能为空'))
with DBContext('w', None, True) as session:
session.query(AdminUser).filter(AdminUser.id == id).delete(synchronize_session=False)
self.write(dict(code=0, msg='删除成功'))
admin_user_urls = [
(r"/v1/cmdb/admin_user/", AdminUserHandler)
]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/4/18 10:12
# @Author : Fred Yangxiaofei
# @File : admin_user_handler.py
# @Role : 管理用户


import json
from libs.base_handler import BaseHandler
from models.server import AdminUser, model_to_dict
from websdk.db_context import DBContext


class AdminUserHandler(BaseHandler):
def get(self, *args, **kwargs):
key = self.get_argument('key', default=None, strip=True)
value = self.get_argument('value', default=None, strip=True)
page_size = self.get_argument('page', default=1, strip=True)
limit = self.get_argument('limit', default=15, strip=True)
limit_start = (int(page_size) - 1) * int(limit)
admin_user_list = []
with DBContext('w') as session:
if key and value:
count = session.query(AdminUser).filter_by(**{key: value}).count()
admin_user_data = session.query(AdminUser).filter_by(**{key: value}).order_by(
AdminUser.id).offset(limit_start).limit(int(limit))
else:
count = session.query(AdminUser).count()
admin_user_data = session.query(AdminUser).order_by(AdminUser.id).offset(
limit_start).limit(int(limit))

for data in admin_user_data:
data_dict = model_to_dict(data)
data_dict['update_time'] = str(data_dict['update_time'])
admin_user_list.append(data_dict)
return self.write(dict(code=0, msg='获取成功', count=count, data=admin_user_list))

def post(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
admin_user = data.get('admin_user', None)
system_user = data.get('system_user', None)
# password = data.get('password', None)
user_key = data.get('user_key', None)
remarks = data.get('remarks', None)

if not admin_user or not system_user or not user_key:
return self.write(dict(code=-2, msg='关键参数不能为空'))

with DBContext('r') as session:
exist_id = session.query(AdminUser.id).filter(AdminUser.admin_user == admin_user).first()
count = session.query(AdminUser).count()
print(count)
if exist_id:
return self.write(dict(code=-2, msg='不要重复记录'))

if count > 15:
return self.write(dict(code=-2, msg='管理用户最大只允许15个'))

with DBContext('w', None, True) as session:
new_admin_user = AdminUser(admin_user=admin_user, system_user=system_user, user_key=user_key, remarks=remarks)
session.add(new_admin_user)
return self.write(dict(code=0, msg='添加成功'))

def put(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
admin_user_id = data.get('id')
admin_user = data.get('admin_user', None)
system_user = data.get('system_user', None)
# password = data.get('password', None)
user_key = data.get('user_key', None)
remarks = data.get('remarks', None)

if not admin_user or not system_user or not user_key:
return self.write(dict(code=-2, msg='关键参数不能为空'))

update_info = {
"admin_user": admin_user,
"system_user": system_user,
"user_key": user_key,
"remarks": remarks,
}

with DBContext('w', None, True) as session:
session.query(AdminUser).filter(AdminUser.id == admin_user_id).update(update_info)
self.write(dict(code=0, msg='更新成功'))

def delete(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
id = data.get('id')
if not id:
return self.write(dict(code=-2, msg='关键参数不能为空'))

with DBContext('w', None, True) as session:
session.query(AdminUser).filter(AdminUser.id == id).delete(synchronize_session=False)

self.write(dict(code=0, msg='删除成功'))


admin_user_urls = [
(r"/v1/cmdb/admin_user/", AdminUserHandler)
]
Loading