YAML中空格引发的BUG

经过:
昨天跑的好好的服务突然挂掉,在经过深入的调试后,发现在从yaml文件加载到的对象不符合预期,确切的说是,对一个对象只加载了三个空格缩进的对象(文件中后出现),忽略了两个空格缩进的对象,其他对象无影响,在改成相同的空格数后恢复正常。

结论:
YAML文件对一个对象要使用相同的空格数缩进,或者全部使用相同的空格数缩进。

PGP SKS Keyserver

在PGP/GPG使用中会用到Keyserver ,以分发和查询PGP密钥,常用的就是skskeyserver/sks-keyserver,不多说,搞上。

0. 前提

本文在CentOS下进行,Ubuntu也是类似。

非编译安装,内网下找包麻烦。

1. 安装

对于CentOS,sks在epel源中,使用 yum install sks 即可。

2. 配置

根据参考中[1],主目录选为 /var/lib/sks,配置目录为 /etc/sks/,日志目录为/var/log/sks,都是约定俗成,便于理解。

注意:端口recon_port(11370)和hkp_port(11371),hkp_address还是要配下,后面要用Nginx代理下,不要冲突了(lo:11370和eth1:11370);

注意:disable_mailsync,在内网中这个因为网络问题会同步失败,所以要在配置中加上[2];

3. 试运行

在配置完sksconf(可选mailsync、membership)、systemd/init.d,就可以运行了。

cd /var/lib/sks后,sks db 和 sks recon,没有报错的话就ok了。

注意:不做切换目录的话,sks命令只在当前目录找文件,会找不到;

注意:文件权限要注意下,报的错不直接提示这个;

4. web

sks db运行后会监听127.0.0.1:11371,处理http请求/pks/lookup;

这个使用nginx或者httpd都可以,页面可以使用[4]中的index.html,将请求转发到http://127.0.0.1:11371/即可。

5. 使用

访问 //pgp.lzim.org,可以搜索和上传;

注意:上传的格式,对于Kleopatra 导出的公钥,在Comment后可能会多一个换行,导致上传失败,请规避;

 

执行 gpg –keyserver 127.0.0.1 –recv-key 0xAABBCCDD,无意外的话,可以导入成功;

8. 其他

  1. 本文部署中没做导入公共Keyserver的Keydump;

9. 之后做

  1. 客户端Kleopatra “在服务器上查找”功能

 

参考:

  1. https://dokuwiki.nausch.org/doku.php/centos:web_c7:sks
  2. https://wiki.mattrude.com/PGP/Keyserver/SKS
  3. https://keyserver.mattrude.com/guides/building-server/
  4. https://github.com/mattrude/pgpkeyserver-lite/

Docker 错误收集

收集使用过程中遇到的docker问题

[docker] iptables failed

dockerd[12882]: Error starting daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain: iptables failed
升级内核,重启

[docker] memory cgroup not supported

  • 现象
docker: Error response from daemon: cgroups: memory cgroup not supported on this system: unknown.
ERRO[0002] error waiting for container: context canceled
  • 解决方式
    • add to /boot/cmdline.txt
cgroup_enable=memory
  • 更多
    • cgroup_memory=1 swapaccount=1
    • > Future raspberrypi/linux (including Raspbian) kernel releases – anything dated today or later – will only require cgroup_enable=memory, not cgroup_memory=1. Keep both options for now, but cgroup_memory will be dropped in 4.14.
  • PS
    • docker info
    • /proc/cgroups
    • grep -i cgroup /proc/filesystems

Windows常见占用80、443端口的进程

部署过程中发现有莫名占用80端口的进程,直觉性地关掉IIS后仍不行,查询到占用进程PID是4,查询后发现是HTTP.SYS的问题,关掉后解决。

> netstat -nao | findstr 80
< TCP     0.0.0.0:80     0.0.0.0:0     LISTENING     4

> ps | findstr 4
< 4 System

之后搜了下,发现有一个不错的总结

https://www.devside.net/wamp-server/opening-up-port-80-for-apache-to-use-on-windows