Ansible:从剧本打印警告

标签 ansible

我可以像 Ansible 那样从 Ansible 打印一个警告来处理内部警告,例如:

 [WARNING]: Ignoring invalid attribute: xx

目标用途是警告,不是错误,因此它们不应该结束 playbook 执行,但它们应该清晰可见(标准 Ansible 紫色)。

示例用法:
  • 我有一些最新版本的硬编码 URL。
  • 剧本下载最新的可用 URL。
  • 如果 URL 不同,则打印警告。
  • 由于来源不可信,所以下载的 URL 只能用于比较,不能直接使用。
  • 最佳答案

    这是一个简单的过滤器插件,它会发出警告消息:

    from ansible.utils.display import Display
    
    
    class FilterModule(object):
        def filters(self): return {'warn_me': self.warn_filter}
    
        def warn_filter(self, message, **kwargs):
            Display().warning(message)
            return message
    

    将上述内容放入文件中,例如 [playbook_dir]/filter_plugins/warn_me.py .

    调用此过滤器的人为示例剧本可能如下所示:

    ---
    - name: Demonstrate warn_me filter plugin
      gather_facts: no
      hosts: all
    
      tasks:
        - meta: end_play 
          when: ('file XYZ cannot be processed' | warn_me())
          delegate_to: localhost
          run_once: yes
    

    运行这个剧本可能会产生这个输出:

    $ ansible-playbook test_warnme.yml -l forwards
     __________________________________________ 
    < PLAY [Demonstrate warn_me filter plugin] >
     ------------------------------------------ 
            \   ^__^
             \  (oo)\_______
                (__)\       )\/\
                    ||----w |
                    ||     ||
    
     [WARNING]: file XYZ cannot be processed
    
     ____________ 
    < PLAY RECAP >
     ------------ 
            \   ^__^
             \  (oo)\_______
                (__)\       )\/\
                    ||----w |
                    ||     ||
    
    
    

    关于Ansible:从剧本打印警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48033923/

    相关文章:

    Ansible 剧本 - 什么是剧本?

    docker - Kubernetes 不显示节点

    docker - Ansible 不允许我通过 SSH 连接

    ansible - Ansible 中的角色和任务(和标签)有什么区别?

    ansible - 在ansible中显示vars_prompt值

    python - Ansible 动态 list - "([Errno 2] No such file or directory:"

    ansible - 如何在ansible中使用fetch模块

    wordpress - Ansible 取消归档可以写入静态文件夹修改时间吗?

    windows - 使用 Ansible 关闭 SMB 1.0/CIFS 文件共享支持?

    amazon-web-services - 如何在 docker 容器上运行 ansible-playbook 以在 AWS EC2 Ubuntu 实例上执行命令?