【问题标题】:How to start apache2 service , when it is in inactive state using ansible( When it is inactive state如何启动apache2服务,当它处于非活动状态时使用ansible(当它处于非活动状态时
【发布时间】:2019-11-20 01:14:39
【问题描述】:

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

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

命令:/sbin/service apache2 start

【问题讨论】:

    标签: ansible


    【解决方案1】:

    使用 adhoc ansible 命令,您应该能够运行:

    ansible <host_name_or_ip> -a "service httpd start"
    

    或作为角色的一部分:

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

    【讨论】:

    • 为什么不在 ad-hoc 命令中使用正确的模块呢?
    • 假设 apache2 已经处于运行状态,那么上面的命令会起作用吗?
    • @Zeitounator 你能详细说明一下吗?只是出于好奇,我根本不使用临时命令,所以如果我的示例有误,请纠正我:)
    • @MaheshReddy 如果 httpd 已经在运行,那么什么都不会改变,它仍然会继续运行 :)
    • @DSHolds 当然!您可以从 ad-hoc 命令运行模块,如下所示(而不是使用 shell 触发命令...)ansible [-i path/to/inventory] &lt;name_or_ip&gt; -m service -a "name=httpd state=started"
    【解决方案2】:

    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。如果您可以将其替换为特定的等效项(aptyum ... 和 systemdsysvinit ...)

    【讨论】:

      猜你喜欢
      • 2016-08-19
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多