【发布时间】:2017-02-19 07:00:01
【问题描述】:
当我在父 ansible 目录中有角色目录时,我能够使用 ansible 2.1 复制模块。然后我继续将角色目录移动到我的 playbooks 目录中(因为在 playbook 目录中调用 play 并将角色保留在主 ansible 目录中时,我收到一个错误,抱怨缺少角色)。现在,当我运行相同的任务时,复制命令似乎失败并出现下面复制的错误(远程计算机上没有任何更改)。
任务
- copy: src={{ debian_build.stdout }} dest=/home/ubuntu/ owner=ubuntu group=ubuntu mode=644 backup=yes
become: true
become_user: root
become_method: sudo
debian_build 是一个有效的路径。
错误
fatal: [testserver]: FAILED! => {"failed": true, "msg": "Failed to get information on remote file (/home/ubuntu/test-server_0.1.0-27686387a8b765f3dfb0bfea287737f97f223f14_all.deb): MODULE FAILURE"}
更新
site.yml
## move artifacts to remote servers
- include: playbooks/test.yml
playbooks/test.yml
---
- name: test deployment for xyz
hosts: testservers
strategy: debug ## turn off if not debugging
roles:
- test
测试/任务
main.yml
- 包括:copy.yml
copy.yml
我也尝试将 copy.yml 修改为以下内容,但均无效。
---
- name: transferring artifact to server
copy:
src: "{{ lookup('fileglob','/tmp/test/testproj/target/*.deb', wantlist=true) | first }}"
dest: /home/ubuntu/
owner: ubuntu
group: ubuntu
mode: 644
backup: yes
become: true
become_user: root
become_method: sudo
# local_action: shell ls -d /tmp/repos/latchapi-beta/target/*.deb
# register: debian_build
#- debug: msg={{ debian_build.stdout }}
#- copy: src={{ debian_build.stdout }} dest=/home/ubuntu/ owner=ubuntu group=ubuntu mode=644 backup=yes
# become: true
# become_user: root
# become_method: sudo
当我使用 -vvv 运行 playbook 时,我在错误消息之前得到以下输出:
ec2-abc.def.ghi.jkl.compute-1.amazonaws.com> ESTABLISH SSH CONNECTION FOR USER: None
<ec2-abc.def.ghi.jkl.compute-1.amazonaws.com> SSH: EXEC ssh -C -q -o ForwardAgent=yes -o Port=1212 -o 'IdentityFile="/home/testuser/.ssh/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 ec2-abc.def.ghi.jkl.compute-1.amazonaws.com '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1476129233.91-106561207229420 `" && echo ansible-tmp-1476129233.91-106561207229420="` echo $HOME/.ansible/tmp/ansible-tmp-1476129233.91-106561207229420 `" ) && sleep 0'"'"''
<ec2-abc.def.ghi.jkl.compute-1.amazonaws.com> PUT /tmp/tmpRHKTU1 TO /home/testuser/.ansible/tmp/ansible-tmp-1476129233.91-106561207229420/stat
<ec2-abc.def.ghi.jkl.compute-1.amazonaws.com> SSH: EXEC sftp -b - -C -o ForwardAgent=yes -o Port=1212 -o 'IdentityFile="/home/testuser/.ssh/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 '[ec2-abc.def.ghi.jkl.compute-1.amazonaws.com]'
<ec2-abc.def.ghi.jkl.compute-1.amazonaws.com> ESTABLISH SSH CONNECTION FOR USER: None
<ec2-abc.def.ghi.jkl.compute-1.amazonaws.com> SSH: EXEC ssh -C -q -o ForwardAgent=yes -o Port=1212 -o 'IdentityFile="/home/testuser/.ssh/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -tt ec2-abc.def.ghi.jkl.compute-1.amazonaws.com '/bin/sh -c '"'"'sudo -H -S -n -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-khhahbdoujszvmnsqqqoglhkeeihbcog; LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 /usr/bin/python /home/testuser/.ansible/tmp/ansible-tmp-1476129233.91-106561207229420/stat; rm -rf "/home/testuser/.ansible/tmp/ansible-tmp-1476129233.91-106561207229420/" > /dev/null 2>&1'"'"'"'"'"'"'"'"' && sleep 0'"'"''
【问题讨论】:
-
你能提供你的剧本文件吗?
-
@Avalon 刚刚更新 - 感谢一百万
-
我不是 100% 确定这个问题是什么。基于错误,我假设该文件不存在。我让其他人回答。
-
@Avalon - 我最终安装了 acl 工具 - 之后它工作了
标签: ansible ansible-playbook ansible-2.x