使用Ansible关闭服务
这可能更像是一个设计问题,而不是语法问题。我有一套Ansible剧本,负责设置各种systemd服务,以特定方式配置服务器。我相信这是一个非常典型的用例。但是,我的问题是:在继续安装和配置之前,关闭和禁用服务的最佳方法是什么?以下是我的要求:使用Ansible关闭服务,ansible,Ansible,这可能更像是一个设计问题,而不是语法问题。我有一套Ansible剧本,负责设置各种systemd服务,以特定方式配置服务器。我相信这是一个非常典型的用例。但是,我的问题是:在继续安装和配置之前,关闭和禁用服务的最佳方法是什么?以下是我的要求: 应该能够在不运行安装的情况下关闭和禁用一组服务器上的服务 还应能够关闭/禁用,然后继续安装 如果在安装之后运行关机,则应清理所有非专用主机,并选择专用主机组进行安装 例如,假设我有3台服务器:A、B、C,我有2个要安装和配置的服务:httpd和ngin
- 应该能够在不运行安装的情况下关闭和禁用一组服务器上的服务
- 还应能够关闭/禁用,然后继续安装
- 如果在安装之后运行关机,则应清理所有非专用主机,并选择专用主机组进行安装
[apache]
A
C
[nginx]
B
最终结果应该是httpd在服务器A和C上运行(在B上关闭/禁用),Nginx在B上运行(在A和C上关闭/禁用)
我对可能的解决方案的初步想法是:
我的第一个想法是“是的,应该关闭低质量” 试着从你的处境中删除样板文件,让它更容易理解,也许你会找到答案 提示:我没有看到任何定义托管服务器的组,我怀疑您是否希望使用“全部”
关键是使用子组成员身份来确定需要删除或安装的内容。一个playbook就可以做到这一点。肮脏的做法是创建两个安装角色,一个用于apache,一个用于nginx,并为每个web服务器多创建两个角色,一个用于启动服务,一个用于停止服务 创建一个剧本,首先以所有主机为目标并包括安装角色,然后以[apache]为目标设置apache开始和nginx停止角色,最后以[nginx]为目标设置nginx开始和apache停止角色 这是一个非常系统化的方法来做你想做的事情,但对我来说这似乎很简单