从tasks / main.yml文件中动态填充defaults / main.yml变量。
默认内容main.yml -
username:
password:
tasks / main.yml的内容 -
- name: Get username and password
shell: python some_script.py
register: result
现在,结果包含我的用户名和密码。有没有简单的方法可以更新defaults / main.yml中的用户名和密码?
output should be
username: bob
password: getmein
目前我们正在这样做
- name: Retrieve username
shell: echo {{ item | regex_replace('^.*:(.*)$', 'username:\\1') }} >> playbooks/defaults/main.yml
with_items: result.stdout_lines[1]
除了使用lineinfile之外,只是想知道是否有一种简单的方法。
如果在defaults / main.yml中设置了变量,我们可以通过{{username}}直接使用它。但是如何动态地反向设置变量?
答案 0 :(得分:0)
我认为阅读用户输入的更好方法是使用Ansible Prompts(http://docs.ansible.com/ansible/playbooks_prompts.html)。这样,您就不需要调用脚本来读取用户输入。
---
- hosts: all
vars_prompt:
- name: username
prompt: "enter username"
private: no
- name: password
prompt: "enter password"
private: yes
tasks:
- name: print
debug:
msg: "username = {{ username }}, password = {{ password }}"