ansible - 如何使 Ansible Shell 任务具有幂等性?
问题描述
我正在接管一个用于部署和升级应用程序的 ansible playbook。
由于 shell 任务、sql、依赖项等原因,playbook 需要数小时才能运行,并且在多个地方不是幂等的。
我有标签来限制剧本的某些部分,但我希望有一种方法可以使每个任务都具有幂等性。
例如
- name: Add release application config
become: yes
shell: "./applicationConfig.sh"
tags: upgrade
- name: Add release database config
become: yes
shell: "./databaseConfig.sh"
tags: upgrade
是否可以在任务成功时执行诸如创建文件之类的操作,并且仅在文件不存在时才重新运行它/将其标记为已更改?
最重要的是,是否有可能在一个地方执行此操作,并将其应用于每个游戏中的所有任务,以减少每个任务中的重复和混乱?
解决方案
推荐阅读
- php - 如何将我的 React 应用程序连接到 PHP 文件?
- android - 如何从 attachBaseContext() 访问 ViewModel?
- bash - 天蓝色管道模板如何引用同一模板存储库中的文件?
- tensorflow - Tensorflow 非归一化日志概率
- c++ - 窗口过程和 CreateWindowEx 函数
- angular - 如何在 Angular 中将 Mat Table 网格扩展到第三级?
- kotlin-coroutines - MutableStateFlow 无法收集流上发出的值
- google-ads-api - 错误消息“用户无权访问客户”
- azure - 无法使用现有 VNET 和子网创建 Azure AKS 群集
- node.js - 使用 MongoDB 进行加权文本搜索