我需要在ansible剧本中实现安全退出功能。最初将某些主机添加到iptables进行ssh访问时,我想确保当用户输入错误时,还原了iptables配置的先前版本。我已经使用“ at”模块实现了此功能,其方式是在5分钟的窗口中安排了还原命令以回滚更改,但是我需要检查一下是否建立了新的连接以及是否删除了计划的任务。现在,我需要在第二个终端上登录(感谢RELATED,ESTABLISHED),以进行安全回滚以防万一。我尝试了在网络上找到的这种方法,但似乎不起作用:
- name: kill cached ssh connection
local_action: >
shell ssh -O stop {{ hostvars[item].ansible_ssh_host|default(inventory_hostname) }}
-o ControlPath=~/.ansible/cp/{{ hostvars[item].ansible_host|default(inventory_hostname) }}-{{ hostvars[item].ansible_user }}
run_once: yes
register: socket_removal
failed_when: >
socket_removal|failed
and "No such file or directory" not in socket_removal.stderr
with_items: "{{ play_hosts }}"