Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用Ansible永久设置环境变量_Linux_Ansible - Fatal编程技术网

Linux 使用Ansible永久设置环境变量

Linux 使用Ansible永久设置环境变量,linux,ansible,Linux,Ansible,我试图建立一个集群,我需要在创建的虚拟机(Ubuntu/xenial)上设置永久环境变量 我正在使用vagrant和ansible,但我没有找到合适的自动化方法 故障排除: 我尝试使用以下工具手动执行此操作: 它有效,但不是永久性的 我还试图编辑~/.bashrc文件来添加上面的命令,我认为这是不对的 我在问是否有人能帮我 谢谢。我想您使用Ansible只是为了设置这些所需的变量 您可以附加到~/.bashrc或/etc/bash.bashrc export VAR="value" 当用户使用

我试图建立一个集群,我需要在创建的虚拟机(Ubuntu/xenial)上设置永久环境变量

我正在使用vagrant和ansible,但我没有找到合适的自动化方法

故障排除:

  • 我尝试使用以下工具手动执行此操作:
  • 它有效,但不是永久性的

  • 我还试图编辑~/.bashrc文件来添加上面的命令,我认为这是不对的
  • 我在问是否有人能帮我


    谢谢。

    我想您使用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