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问题非常麻烦。
好的,我正在尝试学习 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问题非常麻烦。