爱猫家

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

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

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

Dashboard

...

django版本升级总会有一些方法变更
像获取models的所有field

django 1.8之前是通过这个方法直接获取field name:

model._meta.get_all_field_names()

而1.8及以后的版本则改为如下的方法:

model._meta.get_fields()

获取到的是model query,所以通常做法是这样的:

[f.name for f in MyModel._meta.get_fields()]

为避免对数据库进行多次save,影响性能,可通过bulk_create()来进行批量插入数据到数据库

objs = [
    Message(
        recipient_number=e.mobile,
        content=batch.content,
        sender=e.contact_owner,
        billee=batch.user,
        sender_name=batch.sender_name
    )
    for e in q
]
msg = Message.objects.bulk_create(objs...

Django的静态文件处理一直让人头疼,一个配置不当就是404
在urls.py中配置了static,一直是可以正常访问的
最近安装了django 1.10,copy了static的配置,访问竟然报错了

TypeError view must be a callable or a list tuple in the case of include()

解决方法

原来的配置:

url(r'^uploads/(?P<path>.*)$', 'django.views.static.serve', {'document_root'...

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 = &...

当有多个平台的时候,用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):
...

icomments嵌套评论
github地址:https://github.com/qitan/icomments

嵌套评论基于https://github.com/evilbinary/myblog.git

修改了嵌套评论显示以及评论管理功能

安装

Step1:

git clone https://github.com/qitan/icomments.git

Step2:

编辑 icomments/models.py
找到 from blog.models import Post
更改为项目文章模型

Step3:

添加 icomments 到项目
编辑 settings.py,添...

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

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

  • «
  • 1
  • »

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