0

我正在测试一个 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 会话成功运行的最后一个命令。

4

1 回答 1

1

原来詹金斯的工作改变了我的 /root 目录的所有权和组。命令: chown root.root /root 修复一切。

于 2014-01-02T20:08:22.177 回答