爱猫家

基于saltstack(salt-ssh)开发的somssh发布平台

前端使用bootstrap,针对公司java项目发布而开发
目前所在公司使用蓝鲸进行项目更新,而配置文件(不同区域服务器配置文件差异)、服务启停等都是手动处理,效率低下

此发布平台目前完成的功能有:
项目版本更新回滚:以工单形式创建任务,支持发布前从nginx摘除后端、腾讯云负载均衡摘除后端,支持svn取包或者本地上传
项目进程管理:进程启动、重启、停止
配置文件更新回滚:根据机器各自区域属性获取各自的差异配置实现差异化管理、本地对比文件修改
日志审计:查看发布、回滚记录、人员登录记录等

Dashboard

...

之前部署oms运维平台一直没出现问题
但在新机器上部署完竟然抛出如下错误:

 File "/home/qitan/PycharmProjects/SOMS/deploy/saltapi.py", line 32, in postRequest
    opener = urllib2.urlopen(req)
  File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/usr...

Django的models非常简单易用
如下所示,即是插入一条新数据的常规用法

Class Foo(models.Model):
    name = models.CharField()
    address = models.TextField()

如果要新增一条记录有如下方法:

1) 新增记录
    Foo.objects.create(name='foo1',address='no1')
2) 新增或更新记录
    foo = Foo()
    foo.name = 'foo1'
    foo.address = &...

有个shell脚本监控机器上的服务,现结合python脚本实现短信报警,在传参给python脚本的时候出现了错误
究其原因,python短信脚本只需读取报警主题、手机号码和报警内容,而shell传过去的报警内容包含了不少的空格,python读取的时候就变成很多个参数了

如下所示:

$ cat s.sh 
#!/bin/bash
t=`date "+%Y-%m-%d %H:%M:%S"`
## 在这里把 t 当做一个参数传给python
python ./q.py $t
$ cat q.py 
#!/usr/bin/env python
# coding=utf-...

Zabbix提供了多图同屏查看功能,即聚合图形,只要创建了聚合图形,就可以很方便地在一个屏幕上看到多个监控项的图表。
但是手动添加图形是很繁琐的,所以写了个python脚本来自动创建添加聚合图形

zabbix_screen

用法:

$ python zabbix_screen_add.py host

脚本:

$ cat zabbix_screen_add.py 
#! /usr/bin/env python
# -*- coding: utf-8 -*-

'''
Author: qitan
Blog: imaojia.com
Date: 20161021
''...

当有多个平台的时候,用Openldap来做用户管理还是比较方便

这里记录下基于django如何修改openldap用户密码

def CheckPasswd(pwd):
    '''定义密码检测'''
    pattern = re.compile('([^a-z0-9A-Z])+')
    pattern2 = re.compile('[a-z]+')
    if len(pwd) >= 8 and pattern.findall(pwd) and pattern2.findall(pwd):
...

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

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

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

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

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

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

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

gentelella: https://github.com/pu...

VirtualEnv的作用:创建隔离的Python环境,解决模块或库的版本冲突或依赖。
安装virtualenv见CentOS上搭建virtualenv虚拟环境

在这里我们以实际部署一个项目为例,看看django+nginx+uwsgi的环境是怎么部署的

首先通过virtualenv创建python虚拟环境

$ virtualenv imaojia

然后激活虚拟环境并安装django

$ pip install django -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

virtualenv

接着新建一个项目并通...

VPN(virtual private network),即虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道。

而OpenVPN使用OpenSSL库加密数据与控制信息:使用OpenSSL的加密以及验证功能,意味着,它能够使用任何OpenSSL支持的算法。它提供了可选的数据包HMAC功能以提高连接的安全性。此外,OpenSSL的硬件加速也能提高它的性能。

相互间的通讯严格加密,安全可靠。当今互联网,攻击时刻进行着,再复杂的密码也存在被暴力破解的机率,要彻底杜绝这种隐患,就可以利用openvpn来搭建虚拟网络。通过 OpenVPN 的证书认证连接成功后,客户端和服务器之间...

Django过滤器和标签功能很强大,而且支持自定义标签,很是方便;其中一种标签是Inclusion tags,即包含标签,个人感觉比较反人类的

包含标签(Inclusion tags)通过渲染其他的模板来展示内容,这类标签的用途在于一些相似的内容的展示,并且返回的内容是渲染其他模板得到的内容。
这里我将举个小小栗子

我们自定义一个包含标签,这个标签将输出一个列表,我们可以这样使用这个标签
{% task_l %}

输出大概是这样的

inclusion_tag

下面我们一步一步来完成

首先定义一个函数,这个函数返回所有任务列表

def task_l():
    task = TaskList.objects....

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 响应返回是{},空,是什么原因呢?