我试图通过ansible playbook设置环境变量来安装带有vbisam的gnucobol.但是在执行playbook时没有设置变量.
name: Setting variables for CPPFLAGS
shell: "echo $CPPFLAGS"
environment:
CPPFLAGS: -I/opt/vbisam-2.0/include
name: Setting variables for LDFLAGS
shell: "echo $LDFLAGS"
environment:
LDFLAGS: -L/opt/vbisam-2.0/lib
name: Setting variables for LD_LIBRARY_PATH
shell: "echo $LD_LIBRARY_PATH"
environment:
LD_LIBRARY_PATH: /opt/vbisam-2.0/lib:${LD_LIBRARY_PATH}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题.
您的环境变量肯定会被设置.您现有的任务不包含任何验证此操作的尝试,所以让我们添加一个.例如,如果我们运行此剧本:
- hosts: localhost
tasks:
- name: Setting variables for CPPFLAGS
shell: "echo $CPPFLAGS"
environment:
CPPFLAGS: -I/opt/vbisam-2.0/include
register: cppflags
- debug:
var: cppflags.stdout
Run Code Online (Sandbox Code Playgroud)
我们看作输出:
PLAY [localhost] *******************************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************************************
ok: [localhost]
TASK [Setting variables for CPPFLAGS] **********************************************************************************************************
changed: [localhost]
TASK [debug] ***********************************************************************************************************************************
ok: [localhost] => {
"cppflags.stdout": "-I/opt/vbisam-2.0/include"
}
PLAY RECAP *************************************************************************************************************************************
localhost : ok=3 changed=1 unreachable=0 failed=0
Run Code Online (Sandbox Code Playgroud)
正如@techraf在评论中暗示的那样,重要的是要理解使用environmenton a task 设置环境变量仅为该任务设置它们.也就是说,如果您想要 CPPFLAGS,LDFLAGS并且LD_LIBRARY_PATH所有设置都在同一时间,您需要执行以下操作:
- name: Setting variables for CPPFLAGS
shell: "echo $CPPFLAGS"
environment:
CPPFLAGS: -I/opt/vbisam-2.0/include
LDFLAGS: -L/opt/vbisam-2.0/lib
LD_LIBRARY_PATH: /opt/vbisam-2.0/include
register: cppflags
Run Code Online (Sandbox Code Playgroud)
如果您需要在多个任务上设置这些变量,则需要environment对每个任务应用相同的关键字,或者environment在播放而不是单个任务上设置.
| 归档时间: |
|
| 查看次数: |
10149 次 |
| 最近记录: |