是否可以在角色中设置“发布任务”?即在角色中定义的任务,将在戏剧结束时运行?
例如,我有一个common角色,大多数其他角色都依赖于该角色。该common角色提供了一些避免重复的基本内容,例如对 yum 配置的调整等。
我注意到剧本有post_tasks. 我想知道是否可以在角色本身中定义发布任务?
更新: 引用Ansible 文档:
处理程序:在更改时运行操作
...
这些“通知”操作在剧本中每个任务块的末尾触发,即使被多个不同的任务通知也只会触发一次。
...
稍后描述角色。值得指出的是,处理程序会在“pre_tasks”、“roles”、“tasks”和“post_tasks”部分之间自动处理。
...
显然,文档的这一部分要么是误导,要么是说谎(=其中有错误)。似乎在每次 play 结束时触发处理程序,在tasks和之间post_tasks,如下面的简单测试所示:
- name: Handlers test
hosts: all
gather_facts: no
roles:
- some-role
# some-role depends on common
tasks:
- name: This a task
shell: /bin/true
post_tasks:
- name: This is a post task
shell: /bin/true
Run Code Online (Sandbox Code Playgroud)
以及共同作用:
# tasks/main.yml
- name: Registering handler
shell: /bin/true
notify: this is a …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的 Macbook 连接到 Azure VPN。每次我尝试连接时,顶部栏上的 VPN 图标的连接动画(
)持续了几秒钟然后停止,没有任何关于出了什么问题的解释。
我严格按照所有说明进行操作,对所有内容进行了双重、三重和四重检查。删除所有证书并重新开始,但仍然没有成功。
当用 WireShark 嗅探时,我得到的只是一段简短的对话,我找不到任何可能出错的提示:
拖尾/var/log/system.log我可以看到这个:
DATE Macbook nesessionmanager[16073]: NESMIKEv2VPNSession[PreProd:39C837FA-09F7-42BD-AD8D-F85994AB9470]: Received a start command from SystemUIServer[282]
DATE Macbook nesessionmanager[16073]: NESMIKEv2VPNSession[PreProd:39C837FA-09F7-42BD-AD8D-F85994AB9470]: status changed to connecting
DATE Macbook nesessionmanager[16073]: Failed to find the VPN app for plugin type com.apple.neplugin.IKEv2
DATE Macbook neagent[24535]: IKEv2 Plugin: ikev2_dns_callback: Error -65554
DATE Macbook kernel[0]: ipsec_ctl_connect: creating interface ipsec0
DATE Macbook configd[55]: network changed
DATE Macbook kernel[0]: hfs: mounted Recovery HD on device disk0s3
DATE Macbook mds[66]: (Volume.Normal:2464) …Run Code Online (Sandbox Code Playgroud)