Is it possible to define host variables for all hosts using a dynamic inventory?
Currently I can produce an inventory which allows me to assign variables to specific hosts, but what I want to achieve is something like this:
{
"_meta": {
"hostvars": {
"all": {
"my_global_random_variable": "global_random_value"
}
}
},
"web_servers": {
"children": [],
"hosts": [
"web_server1",
"web_server2"
],
"vars": {}
},
"database_servers": {
"children": [],
"hosts": [
"database_server1"
],
"vars": {}
}
}
Which should allow me to access the "my_global_random_variable" from any context as if I would have defined that variable in a vars file.
Best Answer
Variables set by
dynamic inventory
areinventory variables
. When a variable is set in multiple places Ansible set the value following variable precedence:Variables set in inventory have a relativ low precendence. So there is no need to use
dynamic inventory
to achive this. Just set the variable for example on role level.