我正在尝试使用ansible-playbook在EC2 Centos VM中安装AWS CloudWatch代理。它在沙箱中运行良好,但是当我在生产环境中运行时却失败了(与Jenkins管道集成)
这是我的任务片段:
char *malloc()
直到“下载安装程序”运行正常,我可以通过手动导航到目录找到rpm二进制文件。但是下一个任务安装代理失败。如果我也使用“ yum”模块而不是外壳,它将失败。
错误提示:
- 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
但是,如果ssh确实存在问题,那么在上一个任务中如何成功下载安装程序。
可能是什么问题?
先谢谢了。
答案 0 :(得分:1)
问题是用户没有sudoers权限来安装二进制文件,而使用yum来安装二进制文件“ /tmp/aws-cw-agent/amazon-cloudwatch-agent.rpm”。通过调试消息,我发现了错误。
答案 1 :(得分:0)
我会再试一次,但是请使用yum模块。 像这样的东西。
- name: install nginx rpm from a local file
yum:
name: /tmp/aws-cw-agent/amazon-cloudwatch-agent.rpm
state: present
become: yes
答案 2 :(得分:0)
您好,只是作为提供信息,我通过了同样的错误,最后我发现问题是因为在 /etc/sudoers
文件中,用户被配置为 user ALL-NOPASSWD:/bin/su