gpt4 book ai didi

ansible - 如何永久设置环境变量?

转载 作者:行者123 更新时间:2023-12-04 14:24:33 33 4
gpt4 key购买 nike

主机是 Ubuntu 16.04

我正在尝试为用户设置环境变量,使用:

- hosts: all
remote_user: user1
tasks:
- name: Adding the path in the bashrc files
lineinfile: dest=/home/user1/.bashrc line='export MY_VAR=TEST' insertafter='EOF' state=present

- name: Source the bashrc file
shell: . /home/user1/.bashrc

- debug: msg={{lookup('env','MY_VAR')}}

不幸的是它输出:
TASK [debug] *******************************************************************
ok: [xxxxx.xxx] => {
"msg": ""
}

如何导出变量以便下次我在这台机器上运行一些任务时可以使用 {{ lookup('env', 'MY_VAR') }}获取这个变量的值?

最佳答案

因为查找发生在本地,并且因为每个任务都在它自己的进程中运行,所以您需要做一些不同的事情。

- hosts: all
remote_user: user1
tasks:
- name: Adding the path in the bashrc files
lineinfile: dest=/home/user1/.bashrc line='export MY_VAR=TEST' insertafter='EOF' state=present

- shell: . /home/user1/.bashrc && echo $MY_VAR
args:
executable: /bin/bash
register: myvar

- debug: var=myvar.stdout

在这个例子中,我在同一个命令中获取 .bashrc 并检查 var,并用 register 存储值

关于ansible - 如何永久设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39749840/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com