![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术分享
文章平均质量分 69
ops-coffee
微信公众号【运维咖啡吧】内容精选,CSDN已不再更新,关注公众号查看最新文章
展开
-
自研多云管理系统CMP即云上CMDB
云上CMDB该如何构建,多云系统改如何管理,以下是一系列的落地实践文章可以参考CMP多云管理即云上CMDB落地实践原创 2022-06-14 17:36:33 · 573 阅读 · 0 评论 -
面向老板的需求管理系统
一个服务对象为各种不同品牌、产品、业务的基础技术支持部门,同时在进行的项目就有十几个甚至几十个,对于开发资源的争抢就成了不可避免的问题,每当A产品提出需求,而项目经理告诉他开发资源不足时,他们都会有疑惑,我们只提了3个项目为啥会资源不足?这个时候项目经理就会解释一通B产品在做啥项目,同时也在支持C产品D产品balabala的,这个时候一个包含所有项目的看板就显得非常有用了于是便有了今天这个项目,需求管理系统项目需求需求管理系统比较简单,重点只有两个,其一是有一个看板面向公司所有人能够查看我们所有开发的原创 2021-12-15 17:24:24 · 1530 阅读 · 2 评论 -
再聊我们自研的那些Devops工具
两年前我写了篇文章『我们自研的那些Devops工具』介绍了我们自研的一些DevOps工具系统,两年过去了这些工具究竟还有没有在发光发热,又有哪些新的变化呢,我将通过这篇文章来回顾一下这两年的发展与变化CMDBCMDB配置管理数据库,作为整个运维体系构建的基础,几乎其他所有的运维工具系统都要依赖他提供的基础数据,所以保证稳定非常重要,这里的稳定不仅指的是系统运行状态的稳定,还有数据结构、功能的稳定,其数据结构一旦改变上游系统可能都要跟着修改,所以在规划CMDB的迭代更新时,首先要考虑兼容性,已有功能不做过原创 2021-12-09 15:55:45 · 202 阅读 · 0 评论 -
Django Model字段加密的优雅实现
早前的一篇文章Django开发密码管理表实例有写我们写了个密码管理工具来实现对密码的管理,当时加密解密的功能在view层实现,一直运行稳定所以也没有过多关注实现是否优雅的问题。最近要多加几个密码表再次回头看之前的代码发现加解密在view层实现较为繁琐,尤其是使用了Sadmin公共库之后view的代码简洁了很多,若再在view层处理显然不够优雅,是时候用更优雅的方式来实现了Sadmin增删改查对数据库表的增删改查是开发过程中最常用到的功能,之前的文章也介绍过我们通过封装Sadmin公共库用最为简洁的代码实原创 2021-10-25 09:53:38 · 685 阅读 · 0 评论 -
Probius+Prometheus通过API集成POD监控
上一篇文章Probius+Kubernetes任务系统如虎添翼讲了我们把Kubernetes集成进了任务系统Probius,上线后小伙伴反馈虽然摆脱了Kubernetes-Dashboard,但还是得去Grafana系统查看容器的监控数据,能否将容器监控也给集成进Probius呢?只要能优化流程提高效率那就必须给安排当前Kubernetes集群通过Prometheus来收集和存储监控数据同时借助Grafana来画图展示,Probius若想集成容器监控只需要获取Prometheus存储的容器数据并绘图展示即原创 2021-10-18 10:27:50 · 354 阅读 · 0 评论 -
Probius+Kubernetes任务系统如虎添翼
Probius是一款自定义任务引擎,可以灵活方便的处理日常运维中的各种任务,我们所有的CI/CD任务都通过Probius来完成的,这篇文章Probius:一个功能强大的自定义任务系统对其有详细的介绍,之前通过Probius更新Kubernetes的Deployment是通过脚本的方式来完成的,脚本大概像这样if [ $# != 2 ];then echo "USAGE: $0 PROJ ENVT" exit 1fiPROJ=$1ENVT=$2BASE_DIR=/home/dat原创 2021-09-26 09:40:15 · 130 阅读 · 0 评论 -
Django+Ansible构建任务中心思路
Ansible作为老牌的自动化运维工具,由Python开发,应用广泛,但其默认只提供了命令行下的使用方式,好在提供有完善的API支持二次开发,可以很方便的集成到我们的自动化运维系统中最近一个朋友跳槽到了新公司转做DevOps开发,接到的第一个需求就是基于Ansible研发简单的任务中心,而他欠缺相关经验就找我帮忙,我就花了两天时间从熟悉Ansible开始写了个项目,由于我们的任务都是通过自研的一套自定义任务引擎Probius来实现的,之前从未正式用过Ansible,趁此机会也算是熟悉了本篇文章只有思路没原创 2021-09-07 10:02:45 · 358 阅读 · 0 评论 -
Sadmin:打造私有Django公共库实现代码复用
我们借助于Django开发了许多的内部管理系统,例如之前介绍过的Probius、Kerrigan、Proxy等等,这些系统看起来长的都一样,但实际实现的功能确是千差万别,这些不同的系统为什么会长的一样呢?这不仅仅是因为它们使用了同一套前端模板,更为重要的是我们将很多大多系统都要用到的基础功能给集中在了一起,封装成了一个基础的Django应用,例如前端页面及常用插件、后端用户及权限管理等等,任何一个Django项目只要集成了这个应用就能快速拥有这些功能,不仅省去了大把的基础功能开发时间,而且对于后续的更新也是原创 2021-08-28 10:22:39 · 282 阅读 · 0 评论 -
DevOps运维自动化工具系统平台
Alodi:为了保密我开发了一个系统Alodi:环境创建从未如此简单Probius:一个功能强大的自定义任务系统Kerrigan:配置中心管理UI的实现思路和技术细节开源推荐 | CoDo开源一站式DevOps平台我们自研的那些Devops工具Docker环境的持续部署优化实践探秘varian:优雅的发布部署程序中小团队基于Docker的devops实践中小团队落地配置中心详解中小团队快速构建SQL自动审核系统运维效率之数据迁移自动化代码中的敏感信息加密方案Probius使用C..原创 2020-11-23 11:05:27 · 4592 阅读 · 0 评论 -
Python Django开发的WebSSH 堡垒机
主页https://blog.ops-coffee.cn/webssh功能交互式命令执行,支持 vim\top 之类的指令所有的操作都会被录像,方便审计回放管理员可以实时监控用户操作,必要的时候给强制踢下线支持 zmodem 协议,可以使用 lrzsz 命令上传下载文件窗口自适应,会根据浏览器窗口大小动态调整后端输出终端大小文章Django实现WebSSH操作Kubernetes PodKubernetes WebSSH终端窗口自适应ResizeDjango实现WebSSH操作物原创 2020-09-24 10:59:45 · 959 阅读 · 0 评论 -
BPMN开源工作流编辑器bpmn-js落地实践中文文档
BPMN是一套标准的业务流程建模符号规范,bpmn-js是基于此规范实现的一套渲染工具包和web建模器,可以实现拖拽生成工作流程图,效果大概如下最近刚好用到,研究之后写了系列文章,分享给有需要的小伙伴最好用的流程编辑器bpmn-js系列之基本使用最好用的流程编辑器bpmn-js系列之本地文件最好用的流程编辑器bpmn-js系列之Modeler最好用的流程编辑器bpmn-js系列之Viewer系列文章,持续更新中,有用到的欢迎关注,同时也搭建了个在线Demo:https://bpmn.ops原创 2020-09-17 12:31:06 · 3258 阅读 · 3 评论 -
Django集成OpenLDAP认证
本文详细介绍了django-auth-ldap的使用方法,参数含义,并提供了示例代码版本说明Django==2.2django-auth-ldap==1.7.0集成过程Django集成LDAP认证有现成的django-auth-ldap模块可以使用,本文也主要以这个模块的使用为主,先安装模块pip install django-auth-ldap然后在setting.py全...原创 2019-04-04 09:27:05 · 399 阅读 · 0 评论 -
Logstash读取Kafka数据写入HDFS详解
强大的功能,丰富的插件,让logstash在数据处理的行列中出类拔萃通常日志数据除了要入ES提供实时展示和简单统计外,还需要写入大数据集群来提供更为深入的逻辑处理,前边几篇ELK的文章介绍过利用logstash将kafka的数据写入到elasticsearch集群,这篇文章将会介绍如何通过logstash将数据写入HDFS本文所有演示均基于logstash 6.6.2版本数据收集log...原创 2019-03-21 17:15:58 · 1537 阅读 · 0 评论 -
没有基础也能写个小程序
文章记录了小程序的设计思路,介绍了使用的技术,描述了提交审核的故事,还提供了最终的完整源码背景说明微信小程序自从发布以来就占据着超高的话题热度,一直以来都想开发一款自己的小程序,但苦于不懂前端迟迟没有开始。偶然发现了ColorUI这个开源的小程序组件库,界面好看且提供Demo,心中狂喜马上动手做个什么小程序呢?想了一圈这半年多一直坚持在写技术文章,为此开通了微信公众号,因为公众号查看文章...原创 2020-09-17 12:33:22 · 193 阅读 · 0 评论 -
Elasticsearch Query DSL查询入门
本篇为学习DSL时做的笔记,适合ES新手,大佬请略过~Query DSL又叫查询表达式,是一种非常灵活又富有表现力的查询语言,采用JSON接口的方式实现丰富的查询,并使你的查询语句更灵活、更精确、更易读且易调试查询与过滤Elasticsearch(以下简称ES)中的数据检索分为两种情况:查询和过滤。Query查询会对检索结果进行评分,注重的点是匹配程度,例如检索“运维咖啡吧”与文档的标...原创 2019-05-17 07:14:44 · 2046 阅读 · 0 评论 -
我们自研的那些Devops工具
随着云技术以及容器技术的崛起,人肉运维的时代结束了2018年为了解决日常运维中的痛点以及更高效的推进运维工作,我们自研并完善了几个工具系统,这些系统无一例外的帮我们节约了时间,提高了效率,这篇文章将分享介绍一下这些工具系统系统介绍CMDBCMDB配置管理数据库,主要用来记录我们管理维护的软硬件信息,包含实体的服务器,交换机以及虚拟的项目、服务、环境等所有需要管理维护的信息,通俗一点理...原创 2020-09-17 12:32:59 · 236 阅读 · 0 评论 -
Filebeat的Registry文件解读
你可能没有注意但很重要的filebeat小知识Registry文件Filebeat会将自己处理日志文件的进度信息写入到registry文件中,以保证filebeat在重启之后能够接着处理未处理过的数据,而无需从头开始registry文件内容为一个list,list里的每个元素都是一个字典,字典的格式如下:{ "source": "/home/logs/app/exception...原创 2019-03-29 09:42:53 · 1238 阅读 · 0 评论 -
Django使用Channels实现WebSocket--上篇
文章讲解了什么是websocket,websocket有什么用,已经Django实现websocket的channels框架,尤其对Channels框架进行了详细透彻的讲解,涉及到channels中的基础概念理解例如channel,layer,group,auth,scope等等,写的非常棒,原文地址:Django使用Channels实现WebSocket–上篇相关延伸文章:Djang...原创 2019-04-22 09:42:14 · 1505 阅读 · 0 评论 -
Django使用Channels实现WebSocket--下篇
文章以一个Channels+Celery实现web端tailf功能的例子更加深入的介绍Channels,channels的实际使用案例,并且结合了celery,非常有参考价值,延续了一贯的认真和严谨,不仅能够让你知其然还能知其所以然,写的很棒,原文地址:Django使用Channels实现WebSocket–下篇相关延伸文章:Django使用Channels实现WebSocket–上篇...原创 2019-04-22 09:45:24 · 987 阅读 · 0 评论 -
Nginx的几个常用配置和技巧
文章列举了几个Nginx常见的,实用的,有趣的配置,希望看过之后能说一句:学到了!文章首发于微信公众号【运维咖啡吧】,版权归作者所有,未经允许不得转载一个站点配置多个域名server { listen 80; server_name ops-coffee.cn b.ops-coffee.cn;}server_name 后跟多个域名即可,多个域名之间用空...原创 2019-05-05 09:24:58 · 391 阅读 · 0 评论 -
开源推荐 | CoDo开源一站式DevOps平台
一群有梦想的年轻人开源了一个云管理平台,他们的口号是:让天下没有996的运维有幸参与到CoDo项目的开发,这是一个非常棒的一站式开源运维平台,分享给大家平台介绍CODO是一款为用户提供企业多混合云、自动化运维、完全开源的云管理平台。CODO前端基于Vue iview开发、为用户提供友好的操作界面,增强用户体验。CODO后端基于Python Tornado开发,其优势为轻量、简洁清晰、...原创 2019-05-31 09:27:43 · 13931 阅读 · 0 评论 -
记一次诡异的故障排查经历
每一次故障排查都是一笔财富,各种狗血经过不表,解决问题之后的那种满足是不可替代的。背景发布系统架构图简化如下: 管理员通过Jenkins调用“发布程序(代号varian,以下简称varian)”,发布程序会进行一系列的初始化操作,完成后生成Docker镜像上传到Docker仓库,容器集群更新镜像,用户通过负载均衡访问我们的容器集群。老的varian采用shell+py...原创 2018-07-24 17:37:33 · 306 阅读 · 0 评论 -
Django内置权限扩展案例
当Django的内置权限无法满足需求的时候就自己扩展吧~背景介绍overmind项目使用了Django内置的权限系统,Django内置权限系统基于model层做控制,新的model创建后会默认新建三个权限,分别为:add、change、delete,如果给用户或组赋予delete的权限,那么用户将可以删除这个model下的所有数据。原本overmind只管理了我们自己部门的数据库,权限设...原创 2019-02-28 09:27:03 · 1043 阅读 · 0 评论 -
Django+JWT实现Token认证
对外提供API不用django rest framework(DRF)就是旁门左道吗?基于Token的鉴权机制越来越多的用在了项目中,尤其是对于纯后端只对外提供API没有web页面的项目,例如我们通常所讲的前后端分离架构中的纯后端服务,只提供API给前端,前端通过API提供的数据对页面进行渲染展示或增加修改等,我们知道HTTP是一种无状态的协议,也就是说后端服务并不知道是谁发来的请求,那么如...原创 2019-01-22 18:58:50 · 3961 阅读 · 0 评论 -
Django集成Markdown编辑器【附源码】
专注内容写作的你一定不要错过markdown简单介绍markdown是一种标记语言,通过简单的标记语法可以使普通的文本内容具有一定的格式,使用非常简单,学习成本极低目前各大Blog平台都已支持markdown编辑器,某道云笔记也已支持markdown,各开源Blog,Wiki都在逐渐投入markdown的怀抱,身为技术人员如果现在还不知道markdown的话可能会被大佬dissedit...原创 2019-01-24 18:48:50 · 1028 阅读 · 1 评论 -
LDAP落地实战(四):Jenkins集成OpenLDAP认证
前几篇分文章分别介绍了openldap的部署管理和维护以及svn、git的接入,今天我们再下一城接入jenkins。LDAP系列文章: - ldap落地实战:openldap部署及管理维护 - ldap落地实战:subversion集成ldap认证 - ldap落地实战:gitlab集成openldap认证jenkins集成openldap认证1. 安装LDAP插...原创 2018-08-06 15:56:40 · 5461 阅读 · 0 评论 -
探秘varian:优雅的发布部署程序
上一篇文章《记一次诡异的故障排查经历》中有介绍到我们的部署程序varian,文章发布后有小伙伴对varian很感兴趣,今天就简单的介绍一下我们的varian,揭开她神秘的面纱~什么是varianvarian是我们基于Python3编写的一套部署程序,处在整个部署系统的中心,与CMDB、Jenkins、SVN/Git、镜像仓库Harbor、Kubernetes API、通知系统等...原创 2018-08-01 08:40:29 · 475 阅读 · 0 评论 -
Django配置celery执行异步任务和定时任务
所有演示均基于Django2.0celery是一个基于python开发的简单、灵活且可靠的分布式任务队列框架,支持使用任务队列的方式在分布式的机器/进程/线程上执行任务调度。采用典型的生产者-消费者模型,主要由三部分组成: 1. 消息队列broker:broker实际上就是一个MQ队列服务,可以使用redis、rabbitmq等作为broker 2. 处理任务的消费者workers...原创 2018-07-14 20:16:14 · 10141 阅读 · 2 评论 -
中小团队快速构建SQL自动审核系统
SQL审核与执行,作为DBA日常工作中相当重要的一环,一直以来我们都是通过人工的方式来处理,效率低且质量没办法保证。为了规范操作,提高效率,我们决定引入目前市面上非常流行的SQL自动审核工具Inception。 花了一周看了inception官方文档并搭建了测试环境简单测试,又花了3天写了webui(内部起名叫overmind,以下也简称overmind),目前正在进行各种测试以及...原创 2018-07-20 09:52:16 · 882 阅读 · 0 评论 -
python如何帮我在投资中获取更高收益
搞技术的大都比较纯粹,比较实在,除了工资之外基本就没有别的收入了(少部分人能接外包赚外块)。或许是迫于生活的压力,或许是不甘于固定的工资,或许是出于技术人骨子里的好奇,亦或是这几年关于理财投资的大力宣传、门槛降低,理财越来越被我们所接受,并开始尝试股票、基金、P2P、XX宝等各种理财产品,本文所讲与P2P有关,但不打广告,只讲技术,顺便说明:投资有风险,理财需谨慎,我们赚钱不容易,不能给打了...原创 2018-07-06 19:47:40 · 1503 阅读 · 0 评论 -
中小团队基于Docker的devops实践
笔者所在的技术团队负责了数十个项目的开发和维护工作,每个项目都至少有dev、qa、hidden、product四个环境,数百台机器,在各个系统之间疲于奔命,解决各种琐碎的问题,如何从这些琐碎的事情中解放出来?devops成了我们不二的选择。 文章是基于目前的环境和团队规模做的devops实践总结,方案简单易懂,容易落地且效果显著。实现方法先来看下流程图: 工程师...原创 2018-07-04 12:04:00 · 1394 阅读 · 0 评论 -
Django model update的各种用法介绍
Django开发过程中对表(model)的增删改查是最常用的功能之一,本文介绍笔者在使用model update过程中遇到的那些事[ 运行环境:Django2.0 ]model update常规用法假如我们的表结构是这样的class User(models.Model): username = models.CharField(max_length=255,...原创 2020-09-17 12:32:14 · 13184 阅读 · 2 评论 -
LDAP落地实战(三):GitLab集成OpenLDAP认证
上一篇文章介绍了svn集成openldap认证,版本控制除了svn外,git目前也被越来越多的开发者所喜爱,本文将介绍gitlab如何集成openldap实现账号认证gitlab集成openldap认证修改配置文件gitlab.ymlldap:enabled: trueservers: main: label: 'LDAP' host: 'l...原创 2018-07-01 22:05:53 · 4329 阅读 · 0 评论 -
LDAP落地实战(二):SVN集成OpenLDAP认证
上一篇文章我们介绍了LDAP的部署以及管理维护,那么如何接入LDAP实现账号统一认证呢?这篇文章将带你完成svn的接入验证subversion集成openldap认证系统环境:debian8.4svn部署环境:apache2.4 + subversionapache开启ldap相关模块# a2enmod ldapEnabling module ldap.To ...原创 2018-06-30 13:03:42 · 943 阅读 · 0 评论 -
风起于青萍之末,浪成于微澜之间
LDAP系列LDAP落地实战(一):OpenLDAP部署及管理维护LDAP落地实战(二):SVN集成OpenLDAP认证LDAP落地实战(三):GitLab集成OpenLDAP认证LDAP落地实战(四):Jenkins集成OpenLDAP认证DevOps系列记一次诡异的故障排查经历探秘varian:优雅的发布部署程序中小团队快速构建SQL自动审核系统中小团队基于D...原创 2018-08-11 08:44:27 · 1286 阅读 · 0 评论 -
Django model select的各种用法详解
《Django model update的各种用法介绍》文章介绍了Django model的各种update操作,这篇文章就是她的姊妹篇,详细介绍Django model select的用法,配以对应MySQL的查询语句,理解起来更轻松。基本操作# 获取所有数据,对应SQL:select * from UserUser.objects.all()# 匹配,对应SQL:...原创 2018-08-13 16:13:07 · 3417 阅读 · 0 评论 -
ELK构建MySQL慢日志收集平台详解
上篇文章《中小团队快速构建SQL自动审核系统》我们完成了SQL的自动审核与执行,不仅提高了效率还受到了同事的肯定,心里美滋滋。但关于慢查询的收集及处理也耗费了我们太多的时间和精力,如何在这一块也能提升效率呢?且看本文讲解如何利用ELK做慢日志收集ELK介绍ELK最早是Elasticsearch(以下简称ES)、Logstash、Kibana三款开源软件的简称,三款软件后来被同一...原创 2018-08-16 09:36:32 · 3348 阅读 · 3 评论 -
SVN Hooks的介绍及使用
阅读此篇文章你可以:对SVN Hooks有一定的了解获取两个最常用的SVN Hooks案例SVN hooks介绍Hooks 钩子,主要实现的功能就是在特定事件发生之前或者之后自动执行事先定义好的脚本代码来实现某些功能,类似于JS中的监听事件、MySQL中的触发器、Django中的signals信号等大多数开发语言都可以用来编写hooks脚本,常用的如windows下的bat、vb,l...原创 2018-12-27 09:21:51 · 5915 阅读 · 0 评论 -
Django开发密码管理表实例【附源码】
文章及代码比较基础,适合初、中级人员,高手略过阅读此篇文章你可以:获取一个Django实现增删改查的案例源码了解数据加密的使用场景和方法以及如何在Python3中使用背景介绍DBA需要维护一张密码表,主要记录数据库中创建的账号密码信息,大概如下:目前的维护方式还是最传统的Excel,一个人更新给多个人同步,Excel设置密码以保证安全性,原始且效率低下,既然我们已经上线了ov...原创 2018-12-07 09:45:50 · 489 阅读 · 0 评论 -
代码中的敏感信息加密方案
曾有个同事不小心把项目代码给传到了Github上,导致代码里边的一个明文邮箱账号密码被利用,为此公司及个人都付出了沉重的代价。那么代码中的敏感信息该如何处理呢?本文将简单介绍一下我们的实践方法。实现目标代码中的敏感信息加密,例如邮箱账号密码、连接数据库的账号密码、第三方校验的key对于生产使用的原始密码等信息应尽量少的人接触,例如数据库的密码应只有DBA知道信息加密信息加密常见的...原创 2018-10-30 09:32:25 · 5849 阅读 · 2 评论