How to get environment variables of remote host

后端 未结 2 1163
北荒
北荒 2021-01-17 12:44

I am having problems working with the environment variables of a remote host. For example, when I try {{ lookup(\'env\', \'PATH\') }} this returns the path of my guest machi

相关标签:
2条回答
  • 2021-01-17 12:57

    The behavior of the lookup function is documented explicitly:

    plugins allow access of data in Ansible from outside sources. These plugins are evaluated on the Ansible control machine...

    There is a FAQ regarding access to remote environment variables:

    Ansible 1.4 will also make remote environment variables available via facts in the ‘ansible_env’ variable:

    {{ ansible_env.SOME_VARIABLE }}
    

    Note that remote facts (like ansible_env are only available if fact gathering is enabled (which is the default behavior of ansible, but can be disabled in the config file or in your playbooks).

    If you want to modify the environment of the remote host, you again look to the documentation which describes the environment directive:

    Ansible makes it easy for you to configure your environment by using the ‘environment’ keyword. Here is an example:

    - hosts: all
      remote_user: root
    
      tasks:
    
        - apt: name=cobbler state=installed
          environment:
            http_proxy: http://proxy.example.com:8080
    

    These sets an environment variable for this specific task. It is not a persistent modification.

    0 讨论(0)
  • 2021-01-17 12:57

    According to the documentation here, you can't use lookup for remote machines, that keyword only works for the local machine.

    Instead, you want to use {{ ansible_env.PATH}}.

    0 讨论(0)
提交回复
热议问题