Состояние в файле SLS не формируется в виде списка

У меня есть файл sls; содержание которого следует:

apache:
 pkg.installed:
    -name: apache2
 service.running:
   -enable: True
   - require:
     - pkg: apache

И я получаю сообщение об ошибке при попытке подготовить коробку Ubuntu Vagrant с солью с помощью мастера соли:

State 'apache' in SLS 'webserver' is not formed as a list

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

Мастер соли работает на коробке Ubuntu, и ключ принят. Я новичок в соли!

Я только что прогнал его через онлайн-анализатор YAML, и, кажется, все в порядке. Чего мне не хватает?


person David Boshton    schedule 18.12.2014    source источник


Ответы (3)


Я не думаю, что вам нужен отступ с двойным пробелом, мой работает с одинарным, но вам нужен пробел после тире.

apache:
  pkg.installed:
    - name: apache2
  service.running:
    - enable: True
    - require:
      - pkg: apache
person Johnathan Herndon    schedule 09.03.2016

Похоже, что интервал неправильный. Вам нужно двойное «белое пространство», а не одно. Попробуй это.

apache:
  pkg.installed:
    -name: apache2
  service.running:
    -enable: True
    - require:
      - pkg: apache
person user257986    schedule 24.01.2015

Вы можете использовать следующее: https://yamlvalidator.com/.

Или с этим одним лайнером python:

python -c 'import yaml,sys;yaml.safe_load(sys.stdin)' < /srv/salt/state.sls
person Juan Medina    schedule 31.01.2018
comment
Это жалуется на % в моем Bash. python3 -c 'import yaml, sys; yaml.safe_load("/salt/state.jinja")' работает. - person Cees Timmerman; 05.05.2021