我遇到了一個我從未見過的錯誤。下面是一個命令和錯誤:Ansible以/ bin/sh失敗:1:/ usr/bin/python:找不到
$ ansible-playbook create_api.yml
PLAY [straw] ******************************************************************
GATHERING FACTS ***************************************************************
failed: [104.55.47.224] => {"failed": true, "parsed": false}
/bin/sh: 1: /usr/bin/python: not found
TASK: [typical | install required system packages] *****************************
FATAL: no hosts matched or all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
to retry, use: --limit @/Users/john/create_api.retry
104.55.47.224 : ok=0 changed=0 unreachable=0 failed=1
這裏是create_api.yml文件:
---
- hosts: api
remote_user: root
roles:
- api
,這裏是主機文件:
[api]
104.55.47.224
我可以刪除角色部分它不會使它成爲第一個任務,它將使它只會變成行/bin/sh: 1: /usr/bin/python: not found
。這裏會發生什麼?
注:如果有人在強制IP地址,並未能得到迴應,你應該知道,因爲粘貼代碼我已經改變了IP地址。
編輯 蟒蛇是本地安裝的,問題是,這是不是在遠程機器,這是運行Ubuntu 15.04
爲了確保這一點會對自己的角色任務之前調用,並且之前在元文件的任何相關性,這樣把它添加到您的劇本: '''pre_tasks: - 原料:sudo易於得到安裝python- simplejson ''' –
請注意,在劇本中,您必須*也*禁用gather_facts,否則在運行raw命令之前將失敗。 (gather_facts:no) – rcreswick
@rcreswick這是我的問題,你的解決方案爲我工作。非常感謝。 我在我的主要.yml文件(setup-ansible.yml)中放入了「gather_facts:no」行,並使用以下命令執行了劇本:「ansible-playbook -i hosts setup-ansible.yml --flush-cache -vvvvvv - KK」。 因爲默認的ubuntu安裝需要密碼才能執行「sudo」,所以我使用了「-kK」選項。 –