【发布时间】:2015-06-02 19:28:18
【问题描述】:
我正在尝试制定一个剧本来确定要安装在远程服务器上的相应 OSSEC 发布代理包。 playbook 首先运行一个 shell 命令来确定要安装的匹配版本 RPM,但是当我在检查模式下运行 playbook 时,变量注册任务被跳过。
tasks:
- name: Determine lateast OSSEC release RPM for CentOS version
shell: curl -s https://www.atomicorp.com/channels/ossec/centos/$(cat /etc/redhat-release | awk '{print $3}' | cut -c1)/x86_64/RPMS/ | grep ossec-release | sed "s/'/ /g" | awk '{print $6}' | tail -1
ignore_errors: yes
register: ossec_release_rpm
- name: Install latest CentOS 6 OSSEC release RPM
yum: name=https://www.atomicorp.com/channels/ossec/centos/6/x86_64/RPMS/{{ item }}
state=present
with_items: ossec_release_rpm.stdout
- name: Install ossec-hids-client
yum: pkg=ossec-hids-client
state=present
我得到的输出如下。具体来说,正在跳过注册任务,我似乎无法弄清楚原因。检查已完成,但我相当肯定它不会按原样工作。
PLAY [Install OSSEC client/server on Linux servers] ***************************
GATHERING FACTS ***************************************************************
ok: [dev-php1]
TASK: [Determine lateast OSSEC release RPM for CentOS version] ****************
skipping: [dev-php1]
TASK: [Install latest CentOS 6 OSSEC release RPM] *****************************
changed: [dev-php1] => (item=ossec_release_rpm.stdout)
TASK: [Install ossec-hids-client] *********************************************
ok: [dev-php1]
TASK: [Check if client.keys exists] *******************************************
ok: [dev-php1]
TASK: [register client] *******************************************************
skipping: [dev-php1]
TASK: [Installing the ossec-agent.conf] ***************************************
changed: [dev-php1]
NOTIFIED: [restart ossec-agent] ***********************************************
changed: [dev-php1]
PLAY RECAP ********************************************************************
dev-php1 : ok=6 changed=3 unreachable=0 failed=0
【问题讨论】:
-
用
-vvvv(详细输出)重新运行并分享。它可能会提供一些线索。 -
这是 -vvvv TASK 的唯一输出:[确定 CentOS 版本的最新 OSSEC 发布 RPM] ****************
ESTABLISH用户连接:端口 22 上的 root 到 dev-php1 跳过:[dev-php1] -
嗯。我无法在本地复制它 - 它为我运行。您必须将命令分开并单独调试。这还不错——你可以在 redhat-release 中阅读并使用 jinja 过滤器来截断字符串,你可以保存 grep 的输出,等等。