向 Ansible 的远程任务交付代理环境
复用 inventory 中的代理变量,并将其显式应用到需要它们的远程操作上。
在合适的 group_vars 文件中保存一份可复用的代理映射:
proxy_env:
http_proxy: http://gateway.example:8080
https_proxy: http://gateway.example:8080将其应用到远程操作:
- name: Download the managed artifact
ansible.builtin.get_url:
url: https://downloads.example/artifact.txt
dest: /tmp/artifact.txt
mode: '0644'
environment: "{{ proxy_env }}"对于允许未认证公共中间人的路由上的公共产物示例,从 HTTP 代理列表中获取候选 HTTP 代理 URL,并单独设置产物 URL。模块在其实际执行上下文中接收环境;get_url 文档中记载的 use_proxy 可以为有意直连的任务禁用由环境派生的代理。交互式 .bashrc 中的导出并不能保证相同的输入。如果任务看到空映射,请检查是否有 play 变量覆盖了 inventory 中的值。
当同一策略需要以同一用户身份覆盖更多操作时,使用 block/play 环境。该范围不会重新配置控制器的查找、过滤器插件或 Ansible 自身的连接。
单独管理持久的登录或服务偏好。任务环境随其操作结束;之后的服务从其自身的启动配置获取环境。