Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- class Vars(object):
- variables = {}
- def read_vars(self):
- print("Reading group_vars/%s" % self.__class__.__name__)
- subclasses = self.__class__.__subclasses__()
- for subclass in subclasses:
- if subclass.hosts is None:
- print(" - Merging with group_vars/%s" % subclass.__name__)
- class all(Vars):
- hosts = None
- # [ DEV ]
- class dev(all):
- hosts = ['host0']
- # [ PREPROD ]
- class preprod(all):
- hosts = None
- class preprod_app1(preprod):
- hosts = ['host1', 'host2', 'host3']
- # [ PROD ]
- class prod(all):
- hosts = None
- class prod_app1(prod):
- hosts = ['host4', 'host5', 'host6']
- # [ TEMPLATES ]
- class template_app1(preprod_app1, prod_app1):
- hosts = None
- def main():
- dv = dev()
- dv.read_vars()
- pp = preprod_app1()
- pp.read_vars()
- pr = preprod_app1()
- pr.read_vars()
- if __name__ == '__main__':
- main()
- """
- ### Output:
- Reading group_vars/dev
- Reading group_vars/preprod_app1
- - Merging with group_vars/template_app1
- Reading group_vars/preprod_app1
- - Merging with group_vars/template_app1
- ### That corresponds with this inventory file:
- [preprod:children]
- preprod_app1
- [preprod_app1]
- host1
- host2
- host3
- [preprod_app1:children]
- template_app1
- [prod:children]
- prod_app1_tmp
- [prod_app1]
- host4
- host5
- host6
- [prod_app1:children]
- template_app1
- [template_app1]
- # Is empty
- """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement