【发布时间】:2019-11-07 15:32:32
【问题描述】:
这可能更像是一个设计问题而不是语法问题。我有一套 Ansible 剧本,负责设置各种 systemd 服务以特定方式配置服务器。我确信这是一个非常典型的用例。但是,我的问题是:在继续安装和配置之前关闭和禁用服务的最佳方法是什么?以下是我的要求:
- 应该能够在不运行安装的情况下关闭和禁用一组服务器中的服务
- 还应该能够关闭/禁用然后继续安装
- 如果我们在关闭后运行安装,则应清理所有非专用主机并选择专用主机组进行安装
例如,假设我有 3 个服务器:A、B、C,我有 2 个服务要安装和配置:httpd 和 nginx。我的主机文件如下所示:
[apache]
A
C
[nginx]
B
最终结果应该是 httpd 在服务器 A 和 C 上运行(并且在 B 上关闭/禁用),Nginx 在 B 上运行(并且在 A 和 C 上关闭/禁用)。
我对可能的解决方案的初步想法是:
- 为每次卸载创建单独的剧本(因为我已经有安装剧本)(这可能是正确的,但肯定有很多代码重复和更多工作)
- 在现有安装角色的 main.yml 文件旁边创建一些额外的任务(这可能吗?如果可以的话,感觉是对的。)
- 可以在运行任何安装 playbook 之前直接调用的主卸载 playbook。 (感觉不对)
【问题讨论】:
标签: ansible