我试图想出一个剧本来确定要在远程服务器上安装的相应OSSEC发布代理程序包 . 该剧本首先运行一个shell命令来确定要安装的匹配版本RPM,但是当我在检查模式下运行该剧本时,正在跳过变量注册任务 .
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
2 回答
问题解决了 . 所以我作为一个检查运行并期望执行shell命令,它默认会跳过 .
当
--check
选项传递给ansible-playbook
时,可以使用check_mode: no
来运行shell任务 .有关更多信息,请参阅Enabling or disabling check mode for tasks .