无法参与在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

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)