如何使用ansible启动apache2服务(处于非活动状态时)(处于非活动状态时)

时间:2019-11-19 15:22:21

标签: ansible

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

命令:/ sbin / service apache2状态
如果输出显示为非活动状态,则只有我必须在命令

下运行

命令:/ sbin / service apache2 start

2 个答案:

答案 0 :(得分:0)

使用特殊命令,您应该可以运行:

ansible <host_name_or_ip> -a "service httpd start"

或作为角色的一部分:

- name: Ensure that apache2 is started
  become: true
  service: name=httpd state=started

答案 1 :(得分:0)

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

在目标主机上运行此剧本将(确保将hosts参数更改为相关的组或计算机):

  • 对于安装任务:
    • 安装apache(如果尚未安装)并报告“已更改”
    • 如果已安装apache,请报告“确定”
  • 对于服务任务:
    • 根据需要启用和/或启动Apache并报告“已更改”
    • 如果已启用并启动apache,请报告“确定”。

注意:在我的示例中,我使用了不可知模块packageservice。如果您可以替换为它们的特定等效项(aptyum ...和systemdsysvinit ...)