![saltstack:如何将密钥从 salt-minion 重新推送到 salt-master?](https://linux22.com/image/643084/saltstack%EF%BC%9A%E5%A6%82%E4%BD%95%E5%B0%86%E5%AF%86%E9%92%A5%E4%BB%8E%20salt-minion%20%E9%87%8D%E6%96%B0%E6%8E%A8%E9%80%81%E5%88%B0%20salt-master%EF%BC%9F.png)
这简洁版本: 添加密钥后如何开始test.ping
工作?如果从主服务器中删除了密钥,-A
如何重新推送该密钥?-D
这长版本: 重现步骤:
- 两个零售物价指数
- 使用 2014-09-09-wheezy-raspbian 镜像在 RPI 上安装最新的 Raspbian
aptitude upgrade
aptitude install build-essential python-dev javascript-common libjs-jquery msgpack-python python-async python-crypto python-git python-gitdb python-jinja2 python-m2crypto python-mako python-markupsafe python-pkg-resources python-smmap python-yaml wwwconfig-common
- 添加
deb http://debian.saltstack.com/debian wheezy-saltstack main
/etc/apt/sources.list
- 安装 salt 2014.7.0 或类似版本
- 不起作用
- 卸载它
git clone --depth=1 https://github.com/saltstack/salt.git
sudo pip install -e ./salt
- 在 minion RPI 上,编辑
/etc/salt/minion
并更改master: salt
为 master 的 IP。 salt-master -l debug
在一个 RPI 上,并且salt-minion -l debug
salt-key -L
显示 minion 密钥。salt-key -A
接受它salt --verbose '*' test.ping
。 什么也没做salt-key -D
在主人身上。/etc/salt/pki/minion/...
从minion 上删除密钥- 重启 minion 来生成新密钥
当我拥有工厂编译的盐时,test.ping 什么也没做,SuperUser(和较少的网站)上的流量暗示我应该获得最新版本。像往常一样。所以当我这样做时,我决定尝试回收密钥。
现在我无法让 minion 的新钥匙出现在 中salt-key -L
。
来自 minion 的调试跟踪只说了一些像这样的快乐的事情[DEBUG ] Attempting to authenticate with the Salt Master at 192.168.0.19 / [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
。
来自服务器的调试跟踪只显示类似的快乐的事情generating master keys
。
然后小兵说SaltReqTimeoutError: after 60 seconds.
在有关该错误的在线帖子中,人们只回答“CPU 是否已打开?”之类的问题。是的,两个 RPI 之间没有防火墙。是的,我可以通过 telnet 连接到正确的 IP 和端口。是的,每个人都以 root 身份运行,处于调试模式。
那么,我对这种情况的心理模型遗漏了什么?如果我让密钥工作,test.ping 将无法工作。整个项目被搁置,等待这个愚蠢的配置细节......
inb4 有人要求salt --versions-report
:
Salt: 2014.7.0-n/a-43c01ef
Python: 2.7.3 (default, Mar 18 2014, 05:13:23)
Jinja2: 2.6
M2Crypto: 0.21.1
msgpack-python: 0.4.2
msgpack-pure: Not Installed
pycrypto: 2.6
libnacl: Not Installed
PyYAML: 3.10
ioflo: Not Installed
PyZMQ: 14.3.1
RAET: Not Installed
ZMQ: 4.0.4
Mako: 0.7.0
答案1
按照以下步骤重置 minion 的密钥对我有用(在 salt 2015.5.2 至 2017.7.2 上测试):
- 在主服务器上,删除当前密钥:
sudo salt-key -d <minion_name>
- 在 minion 上,重新启动服务:(
sudo systemctl restart salt-minion
或者sudo service salt-minion restart
在较旧的非 systemd 操作系统上) - 回到 master,接受新密钥:
sudo salt-key -a <minion_name>
答案2
虽然内部问题(删除密钥后如何恢复-D
)仍未得到解答,但外部问题的答案自然是重新映像 SD 卡并从 Aptitude 存储库安装 Salt 版本“2014.1.10”。