2013-08-22 36 views
9

mam zainstalowane ansibl 1.2.3 na Ubuntu Precise 64.Błąd podczas uruchamiania ansibl-PlayBook

Running ansible-playbook -i ansible_hosts playbook.yml dać mi ten błąd:

ERROR: problem running ansible_hosts --list ([Errno 8] Exec format error) 

Oto treść ansible_hosts:

[development] 
localhost ansible_connection=local 

i playbook.yml:

--- 
- hosts: development 
    sudo: yes 
    tasks: 
    - name: install curl 
     apt: pkg=curl update_cache=yes 

Jak mogę to ułatwić?

Odpowiedz

0

Uczę się tylko ansibla. Z mojej najlepszej wiedzy wynika, że ​​moduł apt nie ma klucza o nazwie "pkg". Prawdopodobnie to, co szukasz jest 'nazwa' [1]

myślę, zmieniając następujący wiersz

apt: pkg=curl update_cache=yes 

z

apt: name=curl update_cache=yes 

powinno rozwiązać ten problem.

Ref: http://docs.ansible.com/apt_module.html

19

Dla mnie problem został rozwiązany poprzez usunięcie "execute" pozwolenie na ansibl plików (playbook, zapasy itp):

find . -type f -exec chmod -x {} \; 
+1

To zadziałało dla mnie. Dlaczego nie byłoby dobrze mieć uprawnienia do wykonywania tych plików? – user231118

+0

Dobre pytanie. Unsure –

+3

Wykonaj pozwolenie mówi, że próbujesz, aby plik zasobów był dynamiczny: http://stackoverflow.com/questions/26859360/cant-use-ansible-inventory-file-because-it-is-executable/26863968?noredirect = 1 # comment42326480_26863968 –

2

uprawnienia wykonywania są używane do dynamicznego inwentaryzacji skrypty takie jak na przykład rax.py. Ten w szczególności tworzy inwentarz, pobierając go z RackSpace. Jeśli utrzymujesz swój zapas ręcznie, plik zasobów nie powinien być wykonywalny.

4

trzeba usunąć prawa wykonywania na ansible_hosts

chmod a-x ansible_hosts 

jeśli to nie zadziała. spróbuj z sudo

sudo chmod a-x ansible_hosts 
+2

Pamiętaj też, że w sieci, jeśli te pliki są zamontowane w systemie Windows (config.vm.synced_folder), to chmod nie działa . Zakończyłem kopiowanie całego folderu, dzięki czemu mogłem uruchomić chmod w plikach inwentaryzacyjnych. – Philippe

+0

Dobrze, jeśli korzystasz z systemu vagrant z systemu Windows, nie będziesz mógł uruchomić chmod bezpośrednio w folderze współdzielonym/vagrant. W takim przypadku będziesz musiał skopiować/przenieść pliki z katalogu/vagrant. –

1

wpadłem na to i rozwiązać go za pomocą shell zamiast command.

8

mam podobny problem:

$ ansible --version 

ansible 1.5.4

$ ansible-playbook -i hosts main.yml 

ERROR: problem running /mnt/d/Works/ansible-zipkin/hosts --list ([Errno 8] Exec format error)

Moje kroki Debian/Ubuntu:

$ sudo apt-get purge ansible 
$ sudo apt-get install software-properties-common 
$ sudo apt-add-repository ppa:ansible/ansible 
$ sudo apt-get update 
$ sudo apt-get install ansible 
$ ansible --version 

ansible 2.2.1.0

$ ansible-playbook -i hosts main.yml 

Teraz działa !!!

Powiązane problemy