# 设置环境变量
设置环境变量,可以使用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
```