SLS 中的 ID 不是字典
ID in SLS is not a dictionary
我正在尝试使用 SaltStack 配置我的 Vagrant 驱动的 VM。我想安装和配置 PostgreSQL。这是我的状态:
postgresql-installation:
# adding repo, installing package, starting service here
postgresql-database-setup:
- postgres_user.present:
- name: {{ pillar['pg_db_user'] }}
- password: {{ pillar['pg_db_password'] }}
- require:
- service: postgresql
- postgres_database.present:
- name: {{ pillar['pg_db_name'] }}
- encoding: {{ pillar['pg_db_encoding'] }}
- lc_ctype: {{ pillar['pg_db_ctype'] }}
- lc_collate: {{ pillar['pg_db_collate'] }}
- template: {{ pillar['pg_db_template'] }}
- owner: {{ pillar['pg_db_user'] }}
- require:
- postgres_user: postgresql-database-setup
postgres-installation
完美无缺,但 postgres-database-setup
让我头疼。 运行 配置时,Salt 抛出此错误:
Data failed to compile:
----------
ID postgresql-database-setup in SLS postgresql is not a dictionary
YAMLlint.com 说它是有效的(当然除了 Jinja 标签)而且我不知道 Salt 不喜欢它的什么。
你们有想法吗?
找到了! postgres_user.present
和 postgres_database.present
前面的破折号导致解析错误。没有它们一切正常。
我正在尝试使用 SaltStack 配置我的 Vagrant 驱动的 VM。我想安装和配置 PostgreSQL。这是我的状态:
postgresql-installation:
# adding repo, installing package, starting service here
postgresql-database-setup:
- postgres_user.present:
- name: {{ pillar['pg_db_user'] }}
- password: {{ pillar['pg_db_password'] }}
- require:
- service: postgresql
- postgres_database.present:
- name: {{ pillar['pg_db_name'] }}
- encoding: {{ pillar['pg_db_encoding'] }}
- lc_ctype: {{ pillar['pg_db_ctype'] }}
- lc_collate: {{ pillar['pg_db_collate'] }}
- template: {{ pillar['pg_db_template'] }}
- owner: {{ pillar['pg_db_user'] }}
- require:
- postgres_user: postgresql-database-setup
postgres-installation
完美无缺,但 postgres-database-setup
让我头疼。 运行 配置时,Salt 抛出此错误:
Data failed to compile:
----------
ID postgresql-database-setup in SLS postgresql is not a dictionary
YAMLlint.com 说它是有效的(当然除了 Jinja 标签)而且我不知道 Salt 不喜欢它的什么。 你们有想法吗?
找到了! postgres_user.present
和 postgres_database.present
前面的破折号导致解析错误。没有它们一切正常。