首页 > 解决方案 > 如何启动apache2服务,当它处于非活动状态时使用ansible(当它处于非活动状态时

问题描述

apache2 已经安装在我的目标节点
中,当它处于非活动状态时,我必须启动 apache2 服务。
如何在ansible中实现这种解决方案
我必须在apache2服务处于非活动状态时启动它

命令:/sbin/service apache2 status
如果输出显示不活动,那么只有我必须在命令下运行

命令:/sbin/service apache2 启动

标签: ansible

解决方案


Ansible 是关于描述任务中总是产生相同结果(幂等性)的状态。然后你的问题归结为:

  • apache 必须在启动时处于活动状态
  • apache 必须启动

我们还可以添加一个先前的单独任务:

  • apache包必须安装在系统上

一个示例剧本是

---
- name: Install and enable apache
  hosts: my_web_servers

  vars:
    package_name: apache2  # adapt to your distribution

  tasks:

    - name: Make sure apache is installed
      package:
        name: "{{ package_name }}"
        state: present

    - name: Make sure apache is active on boot and started
      service:
        name: "{{ package_name }}"
        enabled: true
        state: started

针对您的目标主机运行此 playbook 将(确保将hosts参数更改为相关组或机器):

  • 对于安装任务:
    • 如果尚未安装 apache,请安装并报告“已更改”
    • 如果已安装 apache,则报告“Ok”
  • 对于服务任务:
    • 如果需要,启用和/或启动 apache 并报告“已更改”
    • 如果 apache 已启用并启动,请报告“Ok”。

注意:在我的示例中,我使用了不可知模块packageservice. 如果您可以将其替换为特定的等价物(apt, yum... 和systemd, sysvinit...)


推荐阅读