amazon-ec2 – Ansible:关闭xxx的共享连接

你好我们制作一个简单的剧本来练习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文件中.

在上周(星期五),这本剧本运作良好.

我究竟做错了什么?

最佳答案 也许我的答案为时已晚,但我今天遇到了同样的问题.我在我的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

点赞