ansible - 无法在 Ansible 中本地运行游戏的一部分
问题描述
这一切都在本地托管的 AWX 中运行。我正在尝试在 AWS 中管理一些 EC2 实例。我已经设置了堡垒跳跃,并且可以让我的所有其他游戏正常工作。
但是,我想向一些开发人员提供一个简单的工作模板。本质上,当他们对代码进行更改时,它会清除 opcache 并使 CloudFront 中的特定文件无效。
我希望 CloudFront API 调用(cloudfront_invalidations 模块)在本地运行 AWX,然后如果成功,则通知两个 Web 服务器实例重新启动它们的 PHP 和 Apache 进程。
---
- name: Restart httpd and php-fpm
remote_user: ec2-user
hosts: all
become: true
tasks:
- name: Invalidate paths in CloudFront
cloudfront_invalidation:
distribution_id: "{{ distribution_id }}"
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
target_paths: "{{ cloudfront_invalidations.split('\n') }}"
delegate_to: 127.0.0.1
notify:
- Restart service httpd
- Restart service php-fpm
handlers:
- name: Restart service httpd
service:
name: httpd
state: restarted
- name: Restart service php-fpm
service:
name: php-fpm
state: restarted
但是,在运行播放时,它似乎忽略了“delegate_to”操作,而是为每个主机运行了两次失效。我不确定它是否真的在本地运行。我试过添加 run_once 标志,但这只是在一台主机上重新启动 httpd + PHP。
有任何想法吗?
解决方案
推荐阅读
- javascript - 在同一页面的“全局”级别从命名空间访问 JavaScript 变量
- python - 使用 Python 提交文件更改
- kubernetes - Kubernetes 指标“/metrics/resource/v1alpha1”和“/metrics/cadvisor”端点之间的区别
- sqlite - 即使删除之前的项目,SQLite 对象是否保留其 ID?
- python - BeautifulSoup 不会正确删除包含“类似文本”标签的标签
- powershell - 如何使用 powershell 脚本从合流页面下载附件?
- javascript - 增加和缩小输入
- javascript - 将用户请求(标头等)传递给外部 URI
- robotframework - 什么是 testCase 和 testSuite?
- python - 将大约 100 个单选按钮分组