0%

最近在做一些国产化适配的工作,让自己的系统能跑在申威架构的CPU上。这几年国产CPU如雨后春笋一般涌现出来,感慨一下,放我刚工作的那几年真是想都不敢想。

申威架构的CPU与ARM架构的CPU不同,更加小众,国内也就UOS和Kylin对其有支持。客户提供的操作系统是Kylin V10的SW_64版本,本文就记录下在这个架构CPU+Kylin V10环境下装Pandas遇到的问题。

阅读全文 »

我们一直使用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能进入待命的模式:虽然服务在跑,但是不生成定时任务。

阅读全文 »