我的目标节点中已经安装了apache2
处于非活动状态时,我必须启动apache2服务。
如何在ansible中实施这种解决方案
每当它处于非活动状态时,我必须启动apache2服务
命令:/ sbin / service apache2状态
如果输出显示为非活动状态,则只有我必须在命令
命令:/ sbin / service apache2 start
答案 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是关于描述任务中总是产生相同结果(幂等)的状态。然后您的问题归结为:
我们还可以添加一个单独的任务:
一个示例剧本是
---
- 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
参数更改为相关的组或计算机):
注意:在我的示例中,我使用了不可知模块package
和service
。如果您可以替换为它们的特定等效项(apt
,yum
...和systemd
,sysvinit
...)