问题描述
所有这些都在本地托管的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。
有什么想法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)