如何声明SERVICE_FACTS的变量 [英] How to declare a variable for service_facts

查看:32
本文介绍了如何声明SERVICE_FACTS的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我使用SERVICE_FACTS模块检查服务状态的示例Ansible攻略,它工作得很好。在这里,我需要支持将服务名称定义为变量,但是当我定义它时,会给出错误,变量未定义:

---
- name: Check service status
  hosts: all
  gather_facts: no
  tasks:
    - name: Service Facts
      service_facts:

    - debug:
        var: ansible_facts.services['firewalld.service']['status']
我需要在Tasks下面的vars部分下声明";Firewalld.service";,我尝试了各种选项,但没有提供预期的输出。我尝试了下面的选项,但不起作用。

---
- name: Check service status
  hosts: all
  gather_facts: no
  vars:
    - SERVICE: firewalld.service
  tasks:
    - name: Service Facts
      service_facts:

    - debug:
        var: ansible_facts.services[SERVICE]['status']

推荐答案

您可以使用conditionals运行一些任务,例如:

    - name: Get service_facts
    service_facts:

    - name: Open some port
    firewalld:
        port: "{{ some_port }}/tcp"
        permanent: yes
        immediate: yes
        offline: no
        state: enabled
    when: 
        - ansible_facts.services['firewalld.service'].state == 'running'
        - ansible_facts.services['firewalld.service'].status == 'enabled'

这篇关于如何声明SERVICE_FACTS的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆