Bash ansbile stdout_行到新字符串
我试图将bash工具的db输出转换成ansbisle字符串,但没有找到任何有效的解决方案Bash ansbile stdout_行到新字符串,bash,ansible,ansible-2.x,Bash,Ansible,Ansible 2.x,我试图将bash工具的db输出转换成ansbisle字符串,但没有找到任何有效的解决方案 - set_fact: db_data: "{{ db.stdout_lines }}" - debug: var=db_data 这里是调试输出 TASK [debug] ******************************************************************************************************
- set_fact:
db_data: "{{ db.stdout_lines }}"
- debug: var=db_data
这里是调试输出
TASK [debug] ***********************************************************************************************************************************************************************
ok: [localhost] => {
"db_data": [
"host: localhost",
"username: user",
"password: pass",
"database: db_name"
]
}
如何将主机、用户名、密码和数据库作为唯一字符串获取
- debug:
msg: "{{ item.split(':')[1] }}"
with_items: " {{ db_data }} "
问:“获取主机、用户名、密码和数据库作为唯一字符串。”
答:创建字典而不是列表。然后简单地引用属性。比如说
- set_fact:
db_data: "{{ db_data|default({})|combine(item|from_yaml) }}"
loop: "{{ db.stdout_lines }}"
- debug:
var: db_data
- debug:
var: db_data.username
给予
您好,欢迎来到stackoverflow,谢谢您的回答。虽然这段代码可能会回答这个问题,但是你能考虑为你解决的问题增加一些解释,以及你是如何解决的?这将帮助未来的读者更好地理解你的答案并从中学习。
"db_data": {
"database": "db_name",
"host": "localhost",
"password": "pass",
"username": "user"
}
"db_data.username": "user"