爱猫家

基于django的saltstack自动化运维平台SOMS

20181012更新:代码优化、功能完善

一直想写个运维平台,无奈前端太差(虽然也不懂开发语言),所以没实现。。

还好有不少人共享了各种各样的平台,其中就有OMS运维平台

binbin开源的OMS平台 链接:https://github.com/binbin91/oms

所以自己拿来捣鼓,根据自己的需求,也算是写了点东西出来

  • 批量管理
  • 文件管理
  • 用户管理
  • 项目管理等

利用空闲时间,启用了全新模板,并不停的修改完善,想到什么就写些什么
放到github上也是希望可以给有需要的人一些帮助,也希望可以得到大家的提拔指点

gentelella: https://github.com/puikinsh/gentelella

SOMS github地址:https://github.com/qitan/SOMS

SOMS演示地址: https://soms.imaojia.com/

User: admin
Passwd: soms123

预览

Salt主机管理

salt-host.png

Salt分组管理

salt-group.png

主机远程命令

remote-command.png

remote-command-group.png

remote-command-advance.png

主机模块部署

remote-module.png

模块管理

salt-module.png

文件下载

remote-file-download.png

文件上传

remote-file-upload.png

文件回滚

file-rollback.png

用户管理

soms-user.png

用户组管理

soms-group.png

日志审计

soms-log.png

组件要求查看requirements.txt

安装:

安装必备软件

yum -y update && yum -y install mariadb mariadb-devel mariadb-server wget epel-release python-devel gcc c++ make openssl openssl-devel passwd libffi libffi-devel
yum -y install salt-master salt-minion salt-api nginx
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

配置salt-api

pip install pyOpenSSL==0.15.1  -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
useradd -M -s /sbin/nologin saltapi && echo "password"|/usr/bin/passwd saltapi --stdin
salt-call --local tls.create_self_signed_cert

配置salt-master 我这里把soms解压到了/data/wwwroot下

cat > /etc/salt/master <<EOF
interface: 0.0.0.0

external_auth:
  pam:
    saltapi:
      - .*
      - '@wheel'
      - '@runner'
      - '@jobs'

rest_cherrypy:
  port: 8000
  ssl_crt: /etc/pki/tls/certs/localhost.crt
  ssl_key: /etc/pki/tls/certs/localhost.key

file_roots:
  base:
    - /data/wwwroot/soms/media/salt

file_recv: True

include: /data/wwwroot/soms/saltconfig/*.conf
EOF

配置好后,把服务启起来,并测试salt-api

systemctl start salt-master salt-api
curl -sSk https://localhost:8000/login -H 'Accept: application/x-yaml' -d username=saltapi -d password=password -d eauth=pam

返回如下信息则配置成功:

return:
- eauth: pam
  expire: 1472695867.308063
  perms:
  - .*
  - '@wheel'
  - '@runner'
  - '@jobs'
  start: 1472652667.308062
  token: 99993ca778fa4f31dce472421cbf01d37be936ad
  user: saltapi

上面这些操作都完成后就可以部署soms项目了

##安装依赖
pip install -r requirements.txt
##同步数据库
python manage.py make
migrations python manage.py migrate
##创建管理员
python manage.py createsuperuser

runserver运行检查是否正常

python manage.py runserver 0.0.0.0:8080

如果无法正常运行,请检查以上步骤

或者email:qqing_lai@hotmail.com

soms正常运行后,正式上线最好部署django+nginx+uwsgi环境

目前SOMS运维平台功能比较简单,代码写的也比较烂,欢迎吐槽 -_-||

文章评论

djsnow 回复

2017年7月10日 12:46

你好!部署起来,saltapi 手工测试正常! 通过界面主机列表的时候报<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)> 网上查询python2.9之后版本问题,加入 ssl._create_default_https_context = ssl._create_unverified_context 后又报未校验错误

franjia 回复

2017年7月19日 18:04

你好,请问远程管理部分,目标主机是分组后的多个机器的话,执行命令后的返回信息如下: post tgt_select lcb-u-assets arg pwd check_type panel-group 源代码 tgt_select=lcb-u-assets&arg=pwd&check_type=panel-group 响应返回是{},空,是什么原因呢?

dj 回复

2017年4月28日 08:51

请问这部分填什么/data/wwwroot/soms/saltconfig/*.conf

奇谭 回复

2017年5月10日 09:56

*.conf引入该路径下所有conf文件 主机分组时会在该路径下自动生成文件 同时需要手动添加一个fileserver.conf file_roots: base: - /data/wwwroot/soms/media/salt pillar_roots: base: - /data/wwwroot/soms/media/pillar

tom2ling 回复

2017年6月12日 10:40

登录web界面之后,没有找到如何添加管理主机,请问应该如何添加?

奇谭 回复

2017年6月14日 18:05

被管理主机需要安装salt客户端

jja 回复

2017年9月25日 16:33

"上传的Html页面通过js限制了类型" 那个txt不是没有限制吗?所有的文件上传都提示上传失败

franjia 回复

2017年6月29日 18:06

你好,非常感谢你的分享,环境已经搭建起来了,就是文件管理部分不成功,提示 “主机:LCB-U-ht02-134 远程文件/tmp/vpn.txt上传失败...” 这是和那些有关系呢,是哪里没配置好吗?salt-master,salt-minion,salt-api都已经验证没有问题,可以远程命令,就是文件管理这部分,非常感谢

奇谭 回复

2017年7月3日 18:51

上传的Html页面通过js限制了类型

djsnow 回复

2017年7月10日 12:46

你好!部署起来,saltapi 手工测试正常! 通过界面主机列表的时候报<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)> 网上查询python2.9之后版本问题,加入 ssl._create_default_https_context = ssl._create_unverified_context 后又报未校验错误

jja 回复

2017年9月25日 16:31

txt不是没有被js限制嘛?

owen 回复

2017年7月5日 12:20

我salt 客户端安装ok了,为啥资产同步不过来

大哈 回复

2017年7月5日 13:19

被管理主机需要安装salt客户端,安装了怎么系统还是不显示主机,怎么回事?centos7的系统

发表评论

Hot Posts

Latest Comments

water 08月09日
 《基于saltstack开发的SOMSSH发布平台》 中的评论

版主https://github.com/qitan/SOMS 上边不是最新的吗?运行和你这显示的不一样哇。

打酱油的二师兄 05月08日
 《基于saltstack开发的SOMSSH发布平台》 中的评论

您好,想请教一下 配置salt-master 我这里把soms解压到了/data/wwwroot下 这个目录就是github中的SOMS项目?如果是的话,为什么没有/soms/saltconfig/*.conf的文件?

jja 09月25日
 《基于django的saltstack自动化运维平台SOMS》 中的评论

"上传的Html页面通过js限制了类型" 那个txt不是没有限制吗?所有的文件上传都提示上传失败

zander 07月21日
 《Django嵌套评论-icomments》 中的评论

这个好呀。学习一下,我是新手,才学django,收藏大神您了。

franjia 07月19日
 《基于django的saltstack自动化运维平台SOMS》 中的评论

你好,请问远程管理部分,目标主机是分组后的多个机器的话,执行命令后的返回信息如下: post tgt_select lcb-u-assets arg pwd check_type panel-group 源代码 tgt_select=lcb-u-assets&arg=pwd&check_type=panel-group 响应返回是{},空,是什么原因呢?