【问题标题】:Ansible: Shared connection to xxx closedAnsible:与 xxx 的共享连接已关闭
【发布时间】: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


【解决方案1】:

也许我的回答为时已晚,但我今天遇到了同样的问题。我的 EC2 上运行了一个 Ubuntu 16.04 实例。我认为,因为它具有 Python 3 (Python 3.5) 作为其默认的 Python 安装。因此,ansible 无法找到所需的 Python 目录 (/usr/bin/python)。我通过将 ansible Python 解释器更改为 Python 3 解决了这个问题。

我将ansible_python_interpreter=/usr/bin/python3 添加到我的库存文件中,并且不必更改剧本。

参考 - http://docs.ansible.com/ansible/latest/python_3_support.html

【讨论】:

  • 太棒了,就像一个魅力。任何阅读的人请注意:ansible_python_interpreter 是服务器上可执行文件的路径,而不是您本地的路径。我花了一分钟才意识到这一点。
猜你喜欢
  • 2022-08-18
  • 2019-08-24
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
相关资源
最近更新 更多