ansible的service模块
ansible的service模块的state字段
service模块的state 值 | 作用 | 行为说明 | 典型场景 |
|---|---|---|---|
started | 确保服务正在运行 | - 若未运行 → 启动 - 若已在运行 → 不操作 | 应用部署后启动服务 |
stopped | 确保服务已停止 | - 若正在运行 → 停止 - 若已停止 → 不操作 | 临时停用服务、安全加固 |
restarted | 强制重启服务 | - 无论当前状态如何,先停止再启动 | 配置变更后重启 |
reloaded | 重载配置(不中断服务) | - 发送 SIGHUP 或调用 reload 脚本 - 仅重新加载配置,不终止进程 | Nginx/Apache 重载配置 |
确保服务启动
service模块name参数不支持列表方式传参,可以使用loop循环来完成
# 启动httpd,fiewalld,mariadb服务
---
- name: start_httpd_service
hosts: serverb.lab.example.com
become: yes
tasks:
- name: 启动httpd服务
service:
name: "{{ item }}" # 服务名
state: started # 确保服务启动
loop: [firewalld,httpd] # 要循环的列表
服务开机启动
- name: 启动并开机自启trojan务
service:
name: trojan
# 是否开机自启
enabled: yes
state: started
确保服务停止
---
- name: stop_httpd_service
hosts: serverb.lab.example.com
become: yes
tasks:
- name: 停止httpd服务
service:
name: "{{ item }}" # 服务名
enabled: no # 是否开机自启
state: stopped # 停止
loop: [firewalld,httpd] # 要循环的列表
重启服务
- name: Restart service httpd, in all cases
service:
name: httpd
state: restarted
本文介绍了如何使用Ansible的service模块来管理Linux服务,包括启动服务、设置开机启动、停止服务以及重启服务。示例中展示了针对多个服务如httpd、firewalld和mariadb的操作,并通过loop循环实现批量操作。
1130

被折叠的 条评论
为什么被折叠?



