我正在测试一个 jenkins 构建作业,其中我使用 ansible 将 tarball scp 到多个服务器。下面是 ansible yaml 文件:
- hosts: websocket_host
user: root
vars:
tarball: /data/websocket/jenkins/deployment/websocket_host/websocket.tgz
deploydir: /root
tasks:
- name: copy build to websocket server
action: copy src=$tarball dest=$deploydir/websocket.tgz
- name: untar build on websocket server
action: command tar xvfz $deploydir/websocket.tgz -C $deploydir
- name: restart websocket server
action: command /root/websocket/bin/websocket restart
前两个命令成功运行,命令 /root/websocket/bin/websocket restart 失败。从那以后,我就能够(无需密码)登录到我的 ansible 主机文件中为 websocket_host 定义的任何服务器。我已经验证我的所有权限设置在主机和客户端机器上都是正确的。我已经从几台客户端机器上对此进行了测试,它们现在都要求我输入 ssh 密码。昨天我能够 ssh(通过我的公钥)没问题。我在主机上使用 root 用户,想知道将文件复制到 /root 目录是否会导致此问题,因为这是我能够通过无密码 ssh 会话成功运行的最后一个命令。