2016-06-17 7 views
0

Wenn ich den psql Befehl wie dies in meinem Textbuch Ausgabe:Warum hängt das Befehlsmodul für psql auf?

- name: Run psql to pull in initial config data 
    become_method: sudo 
    become: yes 
    become_user: postgres 
    command: psql -U postgres -w eclaim < /opt/eclaim_revamp/sql_scripts/initial_config.sql 

Es immer, schaut, als wenn Hang in Anspruch nimmt, aber wenn ich shell verwenden, kann es durchkommen:

- name: Run psql to pull in initial data 
    become_method: sudo 
    become: yes 
    become_user: postgres 
    shell: psql -U postgres -w eclaim < /opt/eclaim_revamp/sql_scripts/initial_sql_script.sql 

Kann mir jemand sagen warum?

Antwort

2

Vom documentation:

[Der gegebenen Befehl] wird nicht durch die Schale verarbeitet werden, so Variablen wie $ HOME und Operationen wie "<", ">", "|" und "& "funktioniert nicht (verwenden Sie das Shell-Modul, wenn Sie diese Funktionen benötigen).

+0

Um hinzuzufügen, warum dies zu dem beobachteten Verhalten führt, werden die Befehle nicht über die Eingabedatei eingegeben, und so wartet Postgres nur auf Eingabe. –