企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 设置环境变量 设置环境变量,可以使用lineinfile模块 ```bash - name: lineinfile: 指定环境变量 dest: ~/.bash_profile regexp: ^ENV_VAR= line: ENV_VAR=value - name: 环境变量生效 shell: 'source ~/.bash_profile' - name: 获取环境变量 #通过register将环境变量保存到自定义的变量中,以便后续任务使用 shell: 'echo $ENV_VAR' register: env_var - name: 打印环境变量 debug: msg: "{{env_var.stdout}}" ``` # 预定义环境变量 对于某一个play来说,我们可以使用`environment`指令来设置单独的环境变量 例如:我们要为一个下载任务设置http代理 ```bash - name: 使用指定的代理服务器下载文件 get_url: url: http://www.expmple.com/file.tar.gz dest: /tmp/ environment: http_proxy: http://example-proxy:80/ ``` ```bash --- - hosts: 172.18.113.82 gather_facts: false vars: tasks: - name: test shell: "echo $username" register: foo environment: username: wms - name: print debug: msg: "{{foo}}" ``` 我们可以将环境变量定义到vars指令中,或者外部的变量文件中 ```bash --- - hosts: 172.18.113.82 gather_facts: false vars: env_vars: username: woms tasks: - name: test shell: "echo $username" register: foo environment: "{{env_vars}}" - name: print debug: msg: "{{foo}}" ``` # playbook级别设置环境变量 ```bash - hosts: testhost roles: - php - nginx environment: http_proxy: http://proxy.example.com:8080 ```