Read formulas from central file
- add formulas.yaml file containing list of all enabled formulas - read formulas from said file in role.salt.master and prepare_minion.py - add symlink for easier tracking of the file Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
This commit is contained in:
parent
68939f8054
commit
d627582075
@ -5,13 +5,17 @@ import roles
|
||||
import os
|
||||
import yaml
|
||||
import socket
|
||||
import yaml
|
||||
|
||||
roles = roles.get()
|
||||
grainsfile = '/etc/salt/grains'
|
||||
idfile = 'pillar/id/' + socket.gethostname() + '.sls'
|
||||
idfile = os.path.join('pillar/id/', socket.gethostname() + '.sls')
|
||||
configfile = '/etc/salt/minion.d/local.conf'
|
||||
mypwd = os.getcwd()
|
||||
formulasfile = 'formulas.yaml'
|
||||
formulasdir = '/srv/formulas'
|
||||
|
||||
configdata = {'file_roots': {'production': ['/srv/salt']}}
|
||||
grainsdata = {'roles': roles}
|
||||
|
||||
with open(grainsfile, mode='w') as grainsfh:
|
||||
@ -20,16 +24,16 @@ with open(grainsfile, mode='w') as grainsfh:
|
||||
with open(idfile, mode='w') as idfh:
|
||||
idfh.write('# empty')
|
||||
|
||||
# to-do: include formulas automatically, maybe from some YAML file?
|
||||
with open(formulasfile, mode='r') as formulasfh:
|
||||
formulas = yaml.load(formulasfh, Loader=yaml.FullLoader)
|
||||
|
||||
for formula in formulas:
|
||||
formula = os.path.join('/srv/formulas/', formula + '-formula')
|
||||
configdata['file_roots']['production'].append(formula)
|
||||
|
||||
with open(configfile, mode='w') as configfh:
|
||||
configfh.write('''# written by prepare_minion.py
|
||||
file_roots:
|
||||
production:
|
||||
- /srv/salt
|
||||
- /srv/formulas/salt-formula
|
||||
- /srv/formulas/users-formula
|
||||
- /srv/formulas/postfix-formula
|
||||
''')
|
||||
configfh.write('# written by prepare_minion.py\n')
|
||||
yaml.dump(configdata, configfh)
|
||||
|
||||
os.symlink(mypwd + '/salt', '/srv/salt')
|
||||
os.symlink(mypwd + '/pillar', '/srv/pillar')
|
||||
|
1
formulas.yaml
Symbolic link
1
formulas.yaml
Symbolic link
@ -0,0 +1 @@
|
||||
pillar/formulas.yaml
|
3
pillar/formulas.yaml
Normal file
3
pillar/formulas.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
- postfix
|
||||
- salt
|
||||
- users
|
@ -1,4 +1,4 @@
|
||||
{%- set formulas = ['salt', 'users', 'postfix'] -%}
|
||||
{%- import_yaml 'formulas.yaml' as formulas -%}
|
||||
|
||||
include:
|
||||
- role.salt.common
|
||||
|
Loading…
Reference in New Issue
Block a user