Linux 使用Ansible永久设置环境变量
我试图建立一个集群,我需要在创建的虚拟机(Ubuntu/xenial)上设置永久环境变量 我正在使用vagrant和ansible,但我没有找到合适的自动化方法 故障排除:Linux 使用Ansible永久设置环境变量,linux,ansible,Linux,Ansible,我试图建立一个集群,我需要在创建的虚拟机(Ubuntu/xenial)上设置永久环境变量 我正在使用vagrant和ansible,但我没有找到合适的自动化方法 故障排除: 我尝试使用以下工具手动执行此操作: 它有效,但不是永久性的 我还试图编辑~/.bashrc文件来添加上面的命令,我认为这是不对的 我在问是否有人能帮我 谢谢。我想您使用Ansible只是为了设置这些所需的变量 您可以附加到~/.bashrc或/etc/bash.bashrc export VAR="value" 当用户使用
谢谢。我想您使用Ansible只是为了设置这些所需的变量 您可以附加到
~/.bashrc
或/etc/bash.bashrc
export VAR="value"
当用户使用shell=/bin/bash登录时,它将可用。如果shell=/bin/sh或其他..谢谢
我写了这本ansible剧本,它正在发挥作用
- hosts: localhost
become_user: root
tasks:
- name: Adding KUBECONFIG variable
delegate_to: localhost
copy:
content: export KUBECONFIG="/etc/config/admin.conf/admin.conf"
dest: /etc/profile.d/kubeconfig.sh
您需要永久的BASH变量吗?可用于不可转换的可用性?或者,您需要的变量是永久的,仅用于Ansible?我需要它们用于非Ansible可用性。我尝试了使用ansible的blockinfle在.bashrc文件末尾添加export命令。但我不认为这是最好的方法。像“永久环境变量”这样的东西是不存在的。流程始终可以更改其环境,也可以在其控制子流程环境的位置运行
execvpe
。您可以向bashrc添加readonly VAR
。将export VAR
添加到bashrc将使变量对来自bash进程(源于bashrc)的子进程可见。如果将export VAR=“value”
附加到.bashrc
,然后重新登录服务器,如果执行env
或echo$VAR
操作,您是否没有获得值?重新登录后,我没有获得$VAR,我询问.bashrc
是否是要编辑的正确文件。在/etc/profile
或/etc/profile.d
中添加新文件是执行此操作的一般方法;只需注意export VAR=“value”
是特定于bash的;POSIX方式需要它们是两个独立的语句VAR=“value”;export VAR
非常感谢,我会试试这个。
- hosts: localhost
become_user: root
tasks:
- name: Adding KUBECONFIG variable
delegate_to: localhost
copy:
content: export KUBECONFIG="/etc/config/admin.conf/admin.conf"
dest: /etc/profile.d/kubeconfig.sh