Ansible yum:所有提供...的软件包都是最新的

Ansible yum: All packages providing ... are up to date

好的,我正在尝试学习 ansible,但 运行 在执行非常基本的操作时遇到了问题。

剧本:

 ---
 - hosts: fedtest
   tasks:

    - name: Install httpd package
      yum: name=httpd state=latest
      sudo: yes

    - name: Starting http service
      service: name=http state=started
      sudo: yes

ansible.cfg:

 [defaults]
 hostfile = /home/abcd/proj/ans/hosts
 remote_user = abcd
 private_key_file = /home/abcd/proj/ans/.ssh/ans.priv

好的,我运行命令:

 $ ansible-playbook setup_apache.yml

 PLAY [fedtest]     
 ****************************************************************

 GATHERING FACTS 
 ***************************************************************
 ok: [fedtest]

 TASK: [Install httpd package]    
 ***********************************************
 failed: [fedtest] => {"failed": true, "parsed": false}
 BECOME-SUCCESS-ajlxizkspxrhyrqauuvywgrtojtutomb
 {"msg": "", "changed": false, "results": ["All packages providing httpd are up to date"], "rc": 0}
 6.719u 1.760s 0:11.33 74.7%     0+0k 0+592io 0pf+0w
 OpenSSH_6.6.1, OpenSSL 1.0.1k-fips 8 Jan 2015
 debug1: auto-mux: Trying existing master
 debug1: mux_client_request_session: master session id: 2
 Shared connection to fedserwizard closed.


 FATAL: all hosts have already failed -- aborting

 PLAY RECAP 
 ********************************************************************
       to retry, use: --limit @/home/abcd/setup_apache.retry

 fedtest                    : ok=1    changed=0    unreachable=0    failed=1

 Exit 2

我确实在 ansible-playbook 命令上执行了 -vvvv,看起来它无法执行 shell 命令来回显 BECOME-SUCCESS 字符串,以便 playbook 可以继续而不是出错。我已经在多个源系统和目标系统上尝试了这些操作,但仍然得到相同的结果。

我需要更正什么类型的问题。

经过大量试验,我注意到如果 ansible 的客户端(接收者)的 shell 显然必须是 /bin/bash 而不是 /bin/tcsh 这就是我有。

有趣的是,根据详细的输出,我发现 /bin/sh 被显式调用。并且导致ssh问题非常麻烦。