2016-04-27 3 views
3

Что означает [] в Соль здесь?Соль: Что означает []?

httpd: 
    pkg.installed: [] 
    file.managed: 
    - name: /etc/httpd/conf/httpd.conf 
    - source: salt://httpd/httpd.conf 
    - require: 
     - pkg: httpd 

От https://docs.saltstack.com/en/latest/ref/states/ordering.html#requisite-statements

У меня есть достаточно фантазии, чтобы угадать смысл, но ... это документировано где-нибудь?

ответ

1

Это просто сокращение ни для чего. Yaml требует его, чтобы вы могли иметь file.managed прямо под ним. Вы также можете отформатировать его следующим образом:

httpd: 
    pkg: 
    - installed 
    file: 
    - managed: 
    - name: /etc/httpd/conf/httpd.conf 
    - source: salt://httpd/httpd.conf 
    - require: 
     - pkg: httpd 
3

Это просто пример не-координате девелоперских соли вредных привычек документации, которые берут на себя вы знаете слишком гибкую соль государственную структуру дерева.

Вам нужно понять, что в соляной раковине есть много ярлыков. Возьмите пример.

# you can write this "shorthand" to install httpd 
# http are ID and also package name 
httpd: 
    pkg.installed 

# this do similar works. I specify a more descriptive ID 
install-http-package: 
    pkg.installed: 
    - name: http 

# this install httpd package together with other package. Again I use descriptive ID 
install-web-app-pacakges: 
    pkg.installed: 
    - pkgs: 
     - httpd 
     - php5 
     - django 

Так что проблемы касаются первого идентификатора «уровня». Saltstack будет пересекать все дерево ямлов, чтобы определить, является ли оно описательным значением, или использовать его как имя пакета.

Однако разбор должен соответствовать некоторому формату, чтобы он не провалился. Если вы преувеличиваете стенографию, парсер будет запутан. Сокращение касается только двух значений.

Чтобы преодолеть проблему, передается пустое значение списка []. затем синтаксический анализатор увидит [] и соглашаюсь, что он передаст описательный идентификатор httpd как имя пакета и продолжит остаток другого действия.

Фактически «стенографическая группа» может быть написана как это.

# Use simple shorthand 
httpd: 
    pkg.installed 

copy-customise-httpd.conf-to-server: 
    file.managed: 
    - name: /etc/httpd/conf/httpd.conf 
    - source: salt://httpd/httpd.conf 
    - require: 
     - pkg: httpd 

Нет смысла пересматривать стенографию. Вы просто сохраните несколько строк ввода. стенография является одной из причин сложной кривой обучения yaml соляной стежки.

И еще один улов использования имени пакета как id: ID должен быть уникальным. Вы можете упасть на какую-то ошибку, если будете повторно использовать их из-за какой-то мелочи.

+0

Надеюсь, соль исчезнет и ничего не сделает, если у вас есть повторяющиеся идентификаторы. – guettli

+2

Не волнуйтесь, соль предупредит вас и остановится. – mootmoot