【问题标题】:how to get custom environment variable in ansible?如何在ansible中获取自定义环境变量?
【发布时间】:2020-01-06 09:31:47
【问题描述】:

您好,我正在尝试了解如何在 Ansible 中获取自定义环境变量。

类似这样的简单 shell 命令:

我创建了一个自定义环境变量并分配了一个值

EXPORT SSH_STATUS=TRUE

谁可以访问 ansible 的结果

如何将 Ubuntu 环境变量值分配给 Ansible 变量

有什么线索吗?

【问题讨论】:

  • 正如@Ash所说的工作,你可以用ansible all -m debug -a "msg={{SSH_STATUS}}" --extra-vars "SSH_STATUS=TRUE" -i localhost,

标签: linux bash ansible environment-variables


【解决方案1】:

你可能想要set_fact

- set_fact:
    SSH_STATUS: TRUE

如果你需要的是$somevar 的值,如果它是由.bashrc 设置的,那么register 就是你的朋友。

- name: Expose `$somevar`
  shell: echo "$somevar" # must exist
  register: tmpvar

- set_fact:
    SSH_STATUS: "{{ tmpvar.stdout }}"

问题是您必须确保在访问之前设置变量。

【讨论】:

  • 感谢您的快速回复,实际上我需要分配一个自定义环境变量,如果自定义环境值分配给它,它的值可能会从 True 或 False 更改并从 ansible-playbook 读取该变量一个 ansible 变量,我们可以根据需要更新变量而无需触及 ansible 脚本,这就是我的最终目标
  • 那么你需要详细说明你的问题。
  • 详细阐述了这个问题。如何将 Ubuntu 环境变量值分配给 Ansible 变量
  • 这不是详细说明,哈哈。开始here...尤其是this。 ;)
【解决方案2】:

您可以将其定义为变量,也可以在运行 playbook 时将变量作为额外变量传递。

vars:
 SSH_STATUS=TRUE

--extra-vars "SSH_STATUS=TRUE"

要访问变量,请使用"{{SSH_STATUS}}"

环境变量使用如下

- name: Install cobbler
  command: < some command >    
  environment: "{{SSH_STATUS}}"

【讨论】:

  • 如果此答案对您有用,请标记为正确答案。
  • 感谢您的回复,我认为它对我有用,但我真正需要的是为 Ansible 变量分配一个 Ubuntu 环境变量值
【解决方案3】:

Ansible 有一个内置工具,称为 environment https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html

【讨论】:

    【解决方案4】:

    @Anish Varghese,据我了解,我编写了以下代码,可以在 ansible playbook 中提取自定义环境变量的值,甚至无需更新 ansible。

    - name: show env value
      debug:
            msg: "{{ lookup('env', 'XV') }}"
    

    下面是上述任务的验证,

    设置名为“XV”的自定义环境变量,

    export XV="TRUE"
    

    运行 Ansible 脚本,

    TASK [show env value] ***********************************************************************************************************************
    ok: [192.168.10.10] => {
        "msg": "TRUE"
    }
    

    现在,更新 env 变量的值并再次运行 ansible,

    export XV="FALSE"
    
    TASK [show env value] ***********************************************************************************************************************
    ok: [192.168.10.10] => {
        "msg": "FALSE"
    }
    

    这里是相关文档。 https://docs.ansible.com/ansible/latest/plugins/lookup/env.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 2019-04-13
      • 1970-01-01
      相关资源
      最近更新 更多