在通过跳转主机推送的ansible剧本运行中获取文件。
可运行的剧本在主机上运行。主机是安全的(第2层),并且不能访问公共域,要访问公共域,需要有跳转主机。
剧本在受保护的主机上执行一组操作,需要将文件拉到公共url中。在Playbook运行中,需要切换跳转主机下载文件,将其委托给目标运行服务器,然后再切换回目标服务器以继续。
但是由于目标主机是由跳转主机访问的,并且通过目标主机无法访问跳转主机。
# .........
# .......setup code
# ..............
- name: Get file
block:
- name: transfer file to dest
get_url:
url: "{{ public url}"
dest: "{{ home_dir }}"
validate_certs: no
- name: Move the file jump host to target host
synchronize:
src: "{{ home_dir }}"
dest: "{{ home_dir }}"
delegate_to: "{{ jump_host}}"
when: tier == 't2'
# ....................
# .............continue actions in target host
如果上述步骤是手动完成的 1)登录跳转主机 2)从公共网址下载文件 3)从主机跳转到目标服务器 4)从跳转主机使用ssh登录到目标服务器 5)继续操作。
由于目标主机防火墙未打开,因此可以通过跳转主机进行访问。上面的代码从目标主机访问跳转主机,这是反向操作。
因此要执行手动流程中提到的上述步骤