ansible - 使用 Ansible 关闭服务
问题描述
这可能更像是一个设计问题而不是语法问题。我有一套 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。(这感觉不对)
解决方案
我的第一个想法是“是的,应该因为低质量而关闭”。
尝试从您的情况中删除样板文件以使其更易于理解,并且您可能会找到答案。
提示:我没有看到任何定义您的托管服务器的组,我怀疑您是否想使用“全部”。
关键是使用子组成员资格来确定需要删除或安装的内容。一本剧本就可以解决问题。
推荐阅读
- excel - 如何将 xlsx 电子表格中的特定工作表提取为文本文件?
- javascript - 使用 Javascript 更改 Firefox 插件 DOM 元素
- python-3.x - lavalink.py 播放本地文件
- html - 例外:格式错误的 HTML 内容:
- python - txt 进入熊猫数据框,首先删除一些行
- source-insight - Source Insight:你能改变空白的颜色吗?
- javascript - 如何仅在 HTML/JQuery 中输入从 1 到 10 的输入?
- javascript - RegEx 可能的优化和速记技巧
- python - 何时在 Python compile() 中使用“eval”模式而不是“exec”模式
- python-3.x - ValueError:为 scipy.ndimage.map_coordinates 提供的无效调用