saltstack:如何将密钥从 salt-minion 重新推送到 salt-master?

saltstack:如何将密钥从 salt-minion 重新推送到 salt-master?

简洁版本: 添加密钥后如何开始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 上测试):

  1. 在主服务器上,删除当前密钥:sudo salt-key -d <minion_name>
  2. 在 minion 上,重新启动服务:(sudo systemctl restart salt-minion或者sudo service salt-minion restart在较旧的非 systemd 操作系统上)
  3. 回到 master,接受新密钥:sudo salt-key -a <minion_name>

答案2

虽然内部问题(删除密钥后如何恢复-D)仍未得到解答,但外部问题的答案自然是重新映像 SD 卡并从 Aptitude 存储库安装 Salt 版本“2014.1.10”。

相关内容