在Ansible中设置和读取环境变量不起作用

时间:2018-05-31 10:56:30

标签: ansible environment-variables

使用Ubuntu 16.04中的Ansible 2.0.0.2

在我的剧本中,我根据提示输入设置了以下环境变量:

---

- hosts: all
  gather_facts: no

  vars_prompt:
    - name: "username"
      prompt: "Specify user"
    - name: "password"
      prompt: "Specify password"

  roles:
    - { role: 'connection' }

  environment:
      OS_HOST: "https://os.host"
      OS_USERNAME: "{{ username }}"
      OS_PASSWORD: "{{ password }}"

在角色连接中,我尝试阅读并使用这些env变种:

- name: "connect"
  shell: "client connect {{ lookup('env','OS_USERNAME') }} -p {{ lookup('env','OS_PASSWORD') }} {{ lookup('env','OS_HOST') }}"

但它给出了错误:

"Username: -p", "Password: Login failed (401 Unauthorized)"], "warnings": []}

所以似乎OS_USERNAMEOS_PASSWORD从未设置或未被查找读取(当我使用相同的信用卡手动登录时工作正常)。

所以不能使用提示来设置环境。 vars并从ansible读取它们?

0 个答案:

没有答案