I have been trying to find a pattern (bcm2708_wdog) in the /etc/modules file and if it isnt there add it to the bottom. Every time I try this I get the "ID dog in SLS dog is not a dictionary". I have no idea what this means. Here is the file:
dog:
- file.replace:
- name: /etc/modules
- pattern: 'bcm2708_wdog'
- append_if_not_found: True
It should probably look like this:
dog:
file.replace: # <--------this line was your problem.
- name: /etc/modules
- pattern: 'bcm2708_wdog'
- append_if_not_found: True
Lines beginning with "-" denote items in a list. In your version, you've defined the top-level "dog" element as a list containing a dictionary. Salt expects it to be a straight dictionary instead, hence the error.
Depending on your version, in 2018
You will get that message if wrote the state with just 'file.replace' without the "dog" on top.
file.replace: - name: /etc/modules - pattern: 'bcm2708_wdog' - append_if_not_found: True
来源:https://stackoverflow.com/questions/31414095/saltstack-id-dog-in-sls-dog-is-not-a-dictionary