Amazon ec2 Ansible:模块故障\n有关确切错误,请参阅stdout/stderr

Amazon ec2 Ansible:模块故障\n有关确切错误,请参阅stdout/stderr,amazon-ec2,ansible,jenkins-pipeline,amazon-cloudwatch,Amazon Ec2,Ansible,Jenkins Pipeline,Amazon Cloudwatch,我正在尝试使用ansible playbook在EC2 Centos VM中安装AWS CloudWatch代理。它在沙箱中运行良好,但当我在生产中运行它时,它失败了(与Jenkins管道集成) 以下是我的任务片段: - name: setup temp directory for install file: path: /tmp/aws-cw-agent state: directory - name: down

我正在尝试使用ansible playbook在EC2 Centos VM中安装AWS CloudWatch代理。它在沙箱中运行良好,但当我在生产中运行它时,它失败了(与Jenkins管道集成)

以下是我的任务片段:

      - name: setup temp directory for install
        file:
          path: /tmp/aws-cw-agent
          state: directory

      - name: download installer
        get_url:
          url: "{{ aws_cw_agent_url }}"
          dest: /tmp/aws-cw-agent/amazon-cloudwatch-agent.rpm

      - name: install agent
        become: true
        shell: rpm -U /tmp/aws-cw-agent/amazon-cloudwatch-agent.rpm
在“下载安装程序”之前,它工作正常,我可以通过手动导航到该目录来找到rpm二进制文件。但是下一个任务安装代理失败。如果我也使用“yum”模块,而不是shell,它就会失败

错误显示:

17:16:07 task path: /home/jenkins/workspace/groupesiph-dsir/03227/03227_Cloudwatch_Agent_deploy_hprod/playbook/deployment/roles/aws_cw_agent/tasks/main.yml:22

>17:16:07 Tuesday 10 March 2020  17:16:07 +0100 (0:00:00.098)       0:00:05.352 ********* 
17:16:08 Using module file /usr/lib/python3.6/site-packages/ansible/modules/commands/command.py
17:16:08 Pipelining is enabled.
17:16:08 <10.45.1.136> ESTABLISH SSH CONNECTION FOR USER: ansible

>17:16:08 <10.45.1.136> SSH: EXEC sshpass -d10 ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o 'User="ansible"' -o ConnectTimeout=10 -o ServerAliveInterval=60 -o ServerAliveCountMax=10 -o ControlPath=/home/jenkins/.ansible/cp/84b84369b7 10.45.1.136 '/bin/sh -c '"'"'sudo -H -S -n  -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-syqwibhfpdecwpfqddhe ; /usr/bin/python'"'"'"'' && sleep 0'"'"''

>17:16:08 Escalation succeeded
17:16:08 <10.45.1.136> (1, b'', b'')
17:16:08 <10.45.1.136> Failed to connect to the host via ssh: 
17:16:08 fatal: [prod05]: FAILED! => {
17:16:08     "changed": false,
17:16:08     "module_stderr": "",
17:16:08     "module_stdout": "",
17:16:08     "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
17:16:08     "rc": 1
17:16:08 
17:16:07任务路径:/home/jenkins/workspace/groupesiph dsir/03227/03227\u Cloudwatch\u Agent\u deploy\u hprod/playbook/deployment/roles/aws\u cw\u Agent/tasks/main.yml:22
>2020年3月10日星期二17:16:07+0100(0:00:00.098)0:00:05.352*******
17:16:08使用模块文件/usr/lib/python3.6/site-packages/ansible/modules/commands/command.py
17:16:08管道已启用。
17:16:08为用户建立SSH连接:ansible
>17:16:08 SSH:EXEC sshpass-d10 SSH-C-o ControlMaster=auto-o ControlPersist=60s-o StrictHostKeyChecking=no-o'User=“ansible”-o ConnectTimeout=10-o ServerAliveInterval=60-o ServerAliveCountMax=10-o ControlPath=/home/jenkins/.ansible/cp/84b84b84369b7 10.45.1.136'/bin/sh-C''sudo-H-S-n-n-u-root/bin/sh-C''“echo成为成功的象征/usr/bin/python'''''''''''''和&sleep 0'''''''
>17:16:08升级成功
17:16:08(1,b'',b'')
17:16:08无法通过ssh连接到主机:
17:16:08致命:[prod05]:失败!=>{
17:16:08“已更改”:错误,
17:16:08“模块”:“,
17:16:08“模块”:“,
17:16:08“msg”:“模块故障\n有关确切错误,请参阅标准输出/标准输出”,
17:16:08“rc”:1
17:16:08 
但是,如果ssh确实存在问题,那么下载安装程序在上一个任务中是如何成功的

有什么问题吗


提前感谢。

我会再试一次,但改用yum模块。。 像这样的

- name: install nginx rpm from a local file
  yum:
   name: /tmp/aws-cw-agent/amazon-cloudwatch-agent.rpm
  state: present
  become: yes

问题是用户没有sudoers访问权限来安装二进制文件,而二进制文件使用yum来安装“/tmp/aws cw agent/amazon-cloudwatch-agent.rpm”“。通过调试消息,我发现了错误。

Hello仅作为信息,我传递了相同的错误,最后我发现问题是因为在
/etc/sudoers
文件中,用户被配置为
用户ALL-NOPASSWD:/bin/su

这两个任务(
获取url
shell
)不同的是,一个已经变成了,另一个没有,所以我猜你的
sshpass
配置错误;你可以在调试模式下运行ansible作为
env ansible\u debug=1 ansible-vvvv
,它会发出各种有用的调试消息,包括模块真正失败的原因回答你自己的问题,承认@mdaniel并解释你是如何修复它的。我在发布之前也尝试过一些东西,但没有奏效。