0%

我们一直使用python-memcached库来操作memcached,最近发现在python3.8的环境中,代码会报类似这样的警告:

1
2
3
4
memcache.py:1303: SyntaxWarning: "is" with a literal. Did you mean "=="?
if key is '':
memcache.py:1304: SyntaxWarning: "is" with a literal. Did you mean "=="?
if key_extra_len is 0:
阅读全文 »

最近尝试使用nginx来提供一些静态的json文件来作为配置,最为简单的做法就是提供下面这样的配置了:

1
2
3
location ~ ^/myconf/(?<filename>.*)$ {
alias /home/knktc/myconf/$filename;
}
阅读全文 »

用Certbot来自动生成Let’s Encrypt证书这件事儿,虽然官方和网上已经有了很详实的文档了,但是我还是想自己记录下,留作以后备查吧。

本文用的操作系统是ubuntu 20.04,DNS的话用的是Cloudflare的服务,web服务使用nginx来提供。然后,按照以下步骤进行就可以了。

阅读全文 »

首先添加下全局的pip代理:

1
pip config --user setglobal.index-url https://pypi.tuna.tsinghua.edu.cn/simple

然后下载安装脚本到本地(比如保存成install-poetry.py文件):

1
curl -sSL https://install.python-poetry.org -o install-poetry.py

打开脚本进行编辑,找到如下这段代码:

1
2
def pip(self, *args, **kwargs) -> subprocess.CompletedProcess:
return self.python("-m", "pip", "--isolated", *args, **kwargs)

把里面的”–isolated”删除掉,然后安装脚本使用pip时就会自动使用之前配置好的镜像了:

1
python3 install install-poetry.py

最近琢磨给自己的系统加上个Agent来实现配置变更和监控信息采集等任务,因为这个系统是多实例部署的,所以这些Agent可能需要同时运行相同的任务。因为我们正好在用celery,celery支持广播任务,所有的worker都能收到相同的任务,正好就能用这个特性来实现Agent的功能了。

阅读全文 »

我这边的一个系统用了telegraf的snmp_trap插件来采集snmp trap告警,然后再转换为http格式吐出进入下一个环节。这个插件配置起来倒是简单,但是其中对于OID的翻译依赖于snmptranslate命令的结果,而如果让snmptranslate命令能正常翻译,又依赖于MIB库文件的正确放置和配置。最近在用这套东西来采集H3C交换机设备的告警,正好记录下在ubuntu环境下导入MIB库文件的方法。

阅读全文 »

最近要在自动构建中加入个打tag的操作,却发现可能是gitlab的bug,之前加过的默认deploy key怎么都找不到了。没办法,只好在打包服务器上再创建一个SSH密钥对,让执行git命令时使用这个新的SSH密钥。

阅读全文 »

我一直用Celery Beat来做定时任务,Beat这东西简单易用,但一直有个问题就是同时启动多个Beat实例时任务就会重复发起。我们之前用uwsgi的legion模式来控制同一时间只能有一个beat实例运行,这个其实依赖于一个靠谱的网络连接。最近遇到一个问题:两个跑beat的节点的网络连接可能不稳定,那uwsgi legion可能就不太稳妥了。对此只好看看如何手动来设置,让celery beat能进入待命的模式:虽然服务在跑,但是不生成定时任务。

阅读全文 »

当我看到我的博客可怜的PV时,我开始学习SEO,这才第一次登陆https://ziyuan.baidu.com/,然后发现我的博客在百度的索引量仅仅只有8个!

怪不得我的blog来源基本都是google和bing,合着百度完全没收录过我的文章~那就只好主动提交咯,但是查了半天,百度也没有google这种主动提交sitemap的接口,只有一个接口来接收url。只好边吐槽百度资源站的原始,边写点东西,让这个博客可以通过github actions来给百度提交sitemap。

阅读全文 »

最近用nginx来提供一些静态文件作为配置。nginx从1.3.3版起就支持etag了,默认就可以生效,配置文件更改后可以通过etag的变化来让浏览器拉取新的配置,还是挺方便的。但是在测试环境部署后,却发现了问题:测试环境的nginx有两个节点,前面再放个负载均衡器,轮询访问到不同的服务器上,此时发现请求相同的静态文件时,返回的etag却不同,浏览器每次请求都会返回个200,而不是304,没有缓存的效果了。

阅读全文 »