ansible-playbook 使用 `service` 模块,自动化管理远程主机上的传统 SysV 服务。在多个远程主机上同时启动或停止多个 SysV 服务。(node2、node3,使用条件判断主机) 启动已安装的 1 安装的剩余两个服务,使用循环
时间: 2024-02-17 20:59:48 浏览: 123
可以编写以下 Ansible Playbook 来启动已安装的剩余两个 SysV 服务:
```yaml
- hosts: node2:node3
become: true
vars:
services:
- service1
- service2
- service3
tasks:
- name: Start SysV services
service:
name: "{{ item }}"
state: started
loop: "{{ services }}"
when: "'{{ inventory_hostname }}' == 'node2' and item != 'service3' or '{{ inventory_hostname }}' == 'node3' and item != 'service1'"
```
这个 Playbook 首先指定了要在 `node2` 和 `node3` 主机上执行操作,并使用 `become` 来获取管理员权限。然后定义了一个名为 `services` 的变量,来指定要启动的服务名。
在任务列表中,我们使用 `service` 模块来启动 `services` 中定义的服务,并使用 `loop` 参数来遍历列表中的所有服务名。使用 `when` 参数来根据主机名和服务名进行条件判断,以便在每个主机上仅启动需要启动的服务。
阅读全文