python

salt-syndic 使用方法

salt syndic 让 saltstack 支持分层次的架构,拓扑结构更加灵活。

关于 syndic 的使用场景,官方给的比较抽象,就说:

The Salt Syndic interface is a powerful tool which allows for the construction of Salt command topologies.

也就是架构将可以变成这样:

坦白地讲,syndic 的使用体验比较奇怪,在测试完 salt-syndic 之后,gtt 仍然想不到什么场景下会使用这个功能。

拓扑

都是 ubuntu14.04 操作系统,salt 版本 2015.5.3+ds-1trusty1

三个节点:dev193查看详细

Ansible 实现原理(源码分析)

这篇文章 gtt 憋了非常久,一直没有时间坐下来好好整理思路,看了下草稿保存时间是2016年2月17日,尼玛都快过了一年了,这可不行,自己挖的坑含泪也要跳,争取在17日之前完工,不能留下人生遗憾。本文分析的是 ansible 1.x 版本的实现原理,2.0 中批量执行的核心逻辑是一样的,可以类推。

使用方法回顾

先回顾下 ansible 的使用场景,从使用场景出发 gtt 将剖析 ansible 里的黑魔法到底是个啥。… 查看详细

使用 epdb 远程调试 python

有很多时候不能直接使用 pdb/ipdb,比如多进程,比如后台服务。

这个时候可以用 epdb,远程调试工具

在服务端代码中加入:

import epdb; epdb.serve() #可以填一个参数 port,默认是8080

程序执行到这里会卡住,并且监听在8080端口等待连接。

另外开一个python终端

import epdb
epdb.connect()  # 两个参数 connect(host='localhost', port=8080)

之后就和本地 pdb 一样了。… 查看详细

python packaging(2015)- Distutils, Setuptools, Distribute, Distutils2 ?

python 虽然很热门,但是自 1991 年出生到现在,包管理一直十分灵活(混乱),作为开发者每过一段时间都要重新学习 python 包管理,以免追赶不上社区的变化。

为了统一 python 包管理,python 社区成立了 Python Packaging Authority 组织,专门维护 python 包相关的工具,并且维护着一份“权威”的 python 包管理用户手册

目前包管理情况

根据写文章时最新的用户手册 (2015-08-31) 反应,python 打包生态系统是这样的情况:… 查看详细

异常自动跳入 pdb

又是 OpenStack 社区发布新版本的时候,又是一次各种新包发布的季节,又是 CI 奔溃的节奏。

CI 好不容易把 devstack 安装上了,最后跑 tempest 测试时丢出这么一堆东西:

WARNING:test command found but not installed in testenv
  cmd: /bin/bash
  env: /opt/stack/new/tempest/.tox/testr-full
Maybe forgot to specify a dependency?
Traceback (most recent call last):
  File "setup.py", line 22, in <module>
    pbr=True)
  File "/usr/lib/python2.7/distutils/core.py", line 137, in setup
    ok = dist.parse_command_line()
查看详细