【发布时间】:2016-11-21 13:53:58
【问题描述】:
大家好,我制作了一个简单的 playbook 来练习 Ansible,但是当我尝试运行 playbook (ansible-playbook -i hosts.ini playbook.yml) 来配置实例 ec2 时遇到问题,输出返回:
> fatal: [XX.XXX.XXX.XXX]: FAILED! => {
> "changed": false,
> "failed": true,
> "invocation": {
> "module_name": "setup"
> },
> "module_stderr": "Shared connection to XXX.XXX.XXX.XXX closed.\r\n",
> "module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n",
> "msg": "MODULE FAILURE" } to retry, use: --limit @/home/douglas/Ansible/ansible_praticing/projeto2.retry
>
> PLAY RECAP
> *********************************************************************
> XX.XXX.XXX.XXX : ok=0 changed=0 unreachable=0 failed=1
当我尝试通过ssh -i ~/.ssh/key.pem ubuntu@public.ip 连接实例时,它运行良好,但配置却不行。
我的剧本:
- hosts: projeto
sudo: True
remote_user: ubuntu
vars_files:
- vars.yml
tasks:
- name: "Update"
apt: update_cache=yes
- name: "Install the Ansible"
apt: name=ansible state=latest
- name: "Installt the mysql"
apt:
args:
name: mysql-server
state: latest
- name: "Install the Nginx"
apt:
args:
name: nginx
state: latest
我的 hosts.ini 也可以(使用 aws ec2 实例的公共 ip),我将公钥(本地机器的 ~/.ssh/id_rsa.pem)放在实例内部的 ~/.ssh/authorized_keys 文件中。
在上周(星期五),这个剧本运行良好。
我做错了什么?
【问题讨论】:
-
从错误信息中很清楚,在目标节点上找不到
/usr/bin/python。您包含的所有其他信息都与问题无关。 -
Ubuntu 16.04 目标?默认情况下没有 Python 2.x...
-
@techraf 的评论是正确的。装饰性评论:您实际上可以在使用
apt时删除args:关键字:docs.ansible.com/ansible/apt_module.html。 -
@techraf 我理解,但 /usr/bin/python 它位于正确的本地。
-
@xeroqu 错误与args无关,我已经测试过了
标签: amazon-ec2 ansible virtual-machine