为什么命令模块挂起为ansql for psql?

时间:2016-06-17 10:25:17

标签: postgresql ansible ansible-playbook psql

当我在我的剧本中发出这样的psql命令时:

- 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

需要永远完成,看起来好像挂起,但当我使用shell时,它可以通过:

- 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

有人可以告诉我为什么吗?

1 个答案:

答案 0 :(得分:2)

来自documentation

  

[给定的命令]不会通过shell处理,因此变量如$ HOME和&#34;&lt;&#34;,&#34;&gt;&#34;,&#34;等操作|&#34;和&#34;&amp;&#34;不起作用(如果你需要这些功能,请使用shell模块)。