Я хотел бы знать, какова польза от объявления сред в /etc/salt/master?
Пример :
file_roots:
base:
- /srv/salt
env1:
- /srv/salt/env1
Это дерево /srv/salt:
.
├── base
├── env1
│ └── domain1
│ ├── init.sls
│ └── nginx.conf
└── top.sls
И топ.sls:
env1:
'*':
- env1.domain1
Это init.sls внутри env1/domain1/
/etc/nginx/nginx.conf:
file.managed:
- source: salt://env1/domain1/nginx.conf
При выполнении:
salt '*' state.sls env1.domain1
все работает нормально.
Но с высоким состоянием:
# salt '*' state.highstate
myHost:
Data failed to compile:
----------
No matching sls found for 'env1.domain1' in env 'env1'
Учитывая, что среда «env1» объявлена в основной конфигурации. Я изменил свою конфигурацию и поставил:
- source: salt://domain1/nginx.conf
вместо:
- source: salt://env1/domain1/nginx.conf
У меня была эта ошибка:
Comment: Source file salt://domain1/nginx.conf not found
Где-то неправильная конфигурация? Какая польза от объявления окружения в master conf, если мы не можем вызвать его напрямую, используя salt://subfolder
вместо salt://environment/subfolder
напрямую?
Я не могу найти хорошую документацию о создании сред и их использовании!
===Изменить===
Это новая конфигурация:
Мастер:
file_roots:
base:
- /srv/salt/base
env1:
- /srv/salt/env1
Древо /srv/salt
.
├── base
│ └── init.sls
├── conf_template
├── env1
│ └── domain1
│ ├── init.sls
│ └── nginx.conf
└── top.sls
top.sls:
base:
'*':
- init
env1:
'*':
- domain1
И env1/domain1/init.sls:
/etc/nginx/nginx.conf:
file.managed:
- source: salt://domain1/nginx.conf
и результат выполнения:
salt '*' state.sls env1.domain1
myHost:
Data failed to compile:
----------
No matching sls found for 'env1.domain1' in env 'base'