相关疑难解决方法(0)

Ansible.覆盖单个字典键

我正在使用ansible来管理生产以及流浪盒的配置.我有默认值的文件:group_vars/all.

---
env: prod
wwwuser: www-data

db:
    root_pwd: root_pwd
    pdo_driver: pdo_mysql
    host: localhost
    name: test
    user: test
    pwd: test
    charset: utf8

domain: somedomain
projectdir: /var/www/application
webrootdir: "{{ projectdir }}/web"
Run Code Online (Sandbox Code Playgroud)

host_vars/vagrantbox中我希望有类似的东西:

db:
    root_pwd: super_easy_password
Run Code Online (Sandbox Code Playgroud)

但是这个完全超越db dictrionary,而我想覆盖单键.怎么实现呢?

更新1 刚用ansible.cfg检查:

[defaults]
host_key_checking=false
hash_behaviour=merge
Run Code Online (Sandbox Code Playgroud)

groups_vars /所有

db:
    root_pwd: some_strong_pwd
    pdo_driver: pdo_mysql
    host: localhost
    name: dbname
    user: dbuser
    pwd: some password
    charset: utf8
Run Code Online (Sandbox Code Playgroud)

host_vars/vagrantbox

db:
    root_pwd: root
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

One or more undefined variables: 'dict object' has no attribute 'name'
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

python yaml ansible

26
推荐指数
3
解决办法
2万
查看次数


标签 统计

ansible ×2

dictionary ×1

jinja2 ×1

python ×1

template-engine ×1

yaml ×1