【问题标题】:Ansible variable register task being skippedAnsible 变量寄存器任务被跳过
【发布时间】: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 的输出,等等。

标签: variables ansible


【解决方案1】:

check_mode: no 可用于在将--check 选项传递给ansible-playbook 时运行shell 任务。

更多信息请参见Enabling or disabling check mode for tasks

【讨论】:

    【解决方案2】:

    问题解决了。所以我作为检查运行并期望执行 shell 命令,默认情况下它会跳过。

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-08
      • 1970-01-01
      相关资源
      最近更新 更多