7

运维工具《链喵 CMDB》

 3 years ago
source link: http://www.eryajf.net/1352.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
本文预计阅读时间 8 分钟

1,介绍。

项目中文名:链喵

项目英文名:chain

linux 云主机 管理系统,包含 CMDB系统,webssh登录、命令执行、异步执行shell/python/yml、查看日志、定时任务等功能。

重要通知:因本人工作原因,本项目就此完结。之后不提供更新和维护。 2018-6-1

交流群号: 620176501

2,DEMO。

http://47.104.140.38:8001

  • 账号 admin
  • 密码 1qaz.2wsx

3,目录结构。

  • asset 资产
  • api asset/api/asset.html
  • chain 主配置目录
  • crontab 定时任务
  • data 测试数据/Dockerfile目录
  • index 首页及用户处理
  • tasks 任务
  • name 系统用户 | 组 | 权限
  • static css | js
  • templates 静态模板
  • webssh 终端ssh登录 参考的https://github.com/huashengdun/webssh 此项目

4,权限。

关于权限,采用的为 django-guardian 对象权限 和 django自带auth权限 相结合。

举个例子:

  • 新建一个资产项目 [运维] 新建一个资产 [web01] 和 资产用户 [web01-root] 分配到 [运维] 项目下
  • 新建一个用户 [hequan] , 将 [hequan] 分配到用户组 [ops].
  • 系统用户–组对象权限 | 添加 对象类型:[资产项目] 资产项目:[运维] 组:[ops] 权限:[asset | 资产项目 | 只读资产项目]
  • [ hequan ] 获得 [web01] [web01-root] [运维] 可读权限
  • 小权限分5类: [可读 添加(没用到) 修改 删除 执行(后面用来执行cmd 和工具)]
  • [admin] 默认有所有权限
  • 如果想让 [hequan] 有添加资产权限, 选择 系统用户 — 用户或者组 选择 Can add 资产管理
  • 普通用户 无权限 管理系统用户 和 登录后台

5,环境。

前端模板:

  • INSPINIA 2.7.1
  • django==2.0.5
  • Python 3.6.5

运行环境:

  • 阿里云 Centos 7.5
  • 目前开发阶段 用的 sqlite3,可无缝切换为 mysql

6,部署。

1,下载源码。

  1. git clone https://github.com/hequan2017/chain.git

2,修改 chain/settings.py。

  1. web_ssh = "47.104.140.38" ##修改为本机外网IP
  2. web_port = 8002

3,一些操作。

  1. mkdir /etc/ansible/
  2. cd chain/
  3. yum install sshpass bzip2 redis -y
  4. systemctl start redis
  5. pip3 install -r requirements.txt
  6. cd /tmp/
  7. wget https://files.pythonhosted.org/packages/12/2a/e9e4fb2e6b2f7a75577e0614926819a472934b0b85f205ba5d5d2add54d0/Twisted-18.4.0.tar.bz2
  8. tar xf Twisted-18.4.0.tar.bz2
  9. cd Twisted-18.4.0
  10. python3 setup.py install
  11. cd chain/
  12. python3 manage.py makemigrations
  13. python3 manage.py migrate
  14. python manage.py shell
  15. from name.models import Names
  16. user=Names.objects.create_superuser('admin','[email protected]','1qaz.2wsx')
  17. exit()
  18. python3 manage.py runserver 0.0.0.0:80
  19. python3 webssh/main.py ##启动终端登录功能
  20. celery -A chain worker -l info
  21. celery -A chain beat -l info

4,报错解决。

  1. 如果遇到报错 ImportError: No module named '_sqlite3' ,可以执行下面的操作
  2. yum -y install sqlite-devel
  3. 重新编译python3.6.5
  4. 想在windows 环境下运行,请注释 tasks/views.py 以下两行
  5. from task.ansible_2420.runner import AdHocRunner
  6. from task.ansible_2420.inventory import BaseInventory

7,docker部署。

可以参考 data/dockerfile-* 文件部署。

  1. chain
  2. password.sh
  3. dockerfile-chain
  4. dockerfile-python3
  5. supervisord.conf
  6. cd /opt
  7. mv /opt/chain/data/dockerfile-python3 .
  8. mv /opt/chain/data/dockerfile-chain .
  9. mv /opt/chain/data/supervisord.conf .
  10. mv /opt/chain/data/password.sh .
  11. 修改password.sh 里面的密码
  12. docker build -t python3.6.5 -f dockerfile-python3 .
  13. docker build -t chain -f dockerfile-chain --build-arg ip='47.104.140.38' .
  14. docker run -itd --name chain -p 8001:8001 -p 8002:8002 chain
  15. docker exec -it chain /bin/bash

8,截图展示。

9,源码地址。

chain

by:hequan.


weinxin

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明运维工具《链喵 CMDB》

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK