ansible - 如何启动apache2服务,当它处于非活动状态时使用ansible(当它处于非活动状态时
问题描述
apache2 已经安装在我的目标节点
中,当它处于非活动状态时,我必须启动 apache2 服务。
如何在ansible中实现这种解决方案
我必须在apache2服务处于非活动状态时启动它
命令:/sbin/service apache2 status
如果输出显示不活动,那么只有我必须在命令下运行
命令:/sbin/service apache2 启动
解决方案
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”。
注意:在我的示例中,我使用了不可知模块package
和service
. 如果您可以将其替换为特定的等价物(apt
, yum
... 和systemd
, sysvinit
...)
推荐阅读
- performance - 在 vue.js 中重复导入是否有任何效率问题
- python - 无法使用 isdigit() 方法从 python 中的用户输入中排除数字“0”
- java - 你通常如何过滤json xss?
- php - PHP 或 mysqli 可以捕获等效的 mysql 控制台响应吗?
- java - Cassandra 占用大量 CPU
- python - 为非互斥范围添加求解器约束
- javascript - PHP 代码执行成功后执行 Javascript Fetch() 请求
- django - Django 频道 Daphne uvicorn
- python - pyodbc 无法连接到 MSSQL
- ubuntu - 以低延迟将屏幕截图直播到前端网站