ansible - 在 Ansible Play 级别问题中运行环境变量
问题描述
我在主剧本文件中声明了以下命令:
---
- name: Install config
hosts: all
become: yes
become_method: sudo
become_user: root
roles:
- initial_config
environment:
http_proxy: http://{{ProxyHost}}:{{ProxyPort}}
https_proxy: http://{{ProxyHost}}:{{ProxyPort}}
ftp_proxy: http://{{ProxyHost}}:{{ProxyPort}}
在我的 group_vars/all: 我已经声明了这些参数:
ProxyHost: proxy.test.com
ProxyPort: 9999
no_proxy: 'test.com'
但是当我在本地运行主要剧本时收到错误消息:
ERROR! Syntax Error while loading YAML.
found unexpected end of stream
解决方案
下面的戏
shell> cat group_vars/all
ProxyHost: proxy.test.com
ProxyPort: 9999
no_proxy: test.com
shell> cat pb.yml
- hosts: test_01
environment:
http_proxy: "http://{{ ProxyHost }}:{{ ProxyPort }}"
https_proxy: "http://{{ ProxyHost }}:{{ ProxyPort }}"
ftp_proxy: "http://{{ ProxyHost }}:{{ ProxyPort }}"
tasks:
- shell: set | grep proxy
register: result
- debug:
var: result.stdout_lines
给
shell> ansible-playbook pb.yml
PLAY [test_01] **********
TASK [shell] ************
changed: [test_01]
TASK [debug] ************
ok: [test_01] => {
"result.stdout_lines": [
"SUDO_COMMAND='/bin/sh -c echo BECOME-SUCCESS-hhojceebldohrrfvivcndrtjtvtrzgfg ; http_proxy=http://proxy.test.com:9999 https_proxy=http://proxy.test.com:9999 ftp_proxy=http://proxy.test.com:9999 /usr/local/bin/python3.7 /home/admin/.ansible/tmp/ansible-tmp-1588775688.2160842-43227888427690/AnsiballZ_command.py'",
"ftp_proxy=http://proxy.test.com:9999",
"http_proxy=http://proxy.test.com:9999",
"https_proxy=http://proxy.test.com:9999"
]
}
PLAY RECAP **********
test_01: ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
推荐阅读
- sql - 从混合层级中查找多个子级的第一个共同父级
- apache-spark - 尝试将字符串转换为 pyspark 数据帧中的 unix_timestamp 数据类型时出现 SparkUpgrade 异常
- java - 如何计算构成多边形中每个三角形的顶点?
- python - Python Pandas:从一组数字中获取两个最大值,但确保它们相隔 x 数量
- shopify - Shopify 节点后端-前端通信
- syntax - Isset 函数的语法
- javascript - 在 cytoscape.js 中点击背景时如何禁用取消选择?
- c++ - 默认模板参数和参数包
- java - 如何在 quarkus 中停用特定配置文件中的 url?
- notepad++ - 删除 Notepad++ 中的所有值,方括号中的值除外