我正在测试一个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会话成功运行的最后一个命令。
答案 0 :(得分:1)
原来Jenkins作业更改了我/ root目录的所有权和组。命令:chown root.root / root修复了所有内容。