你好,我一直在试图用盐设置码头群,但我有点卡住了...
我在申请时遇到以下错误:
Data failed to compile:
----------
Rendering SLS 'base:docker.manager.first' failed: Jinja variable list object has no element 0
这是我的第一个.sls:
{% set manager_ip = salt['mine.get']('*', 'manager_ip').items()[0][1][0] %}
include:
- docker.base
init new swarm cluster:
cmd.run:
- name: 'docker swarm init --advertise-addr {{ manager_ip }}'
- require:
- pkg: docker-ce
这是我的/srv/pillar/swarm.sls提供mine_functions:
mine_functions:
network.ip_addrs: [ens32]
manager_token:
- mine_function: cmd.run
- "docker swarm join-token manager -q"
manager_ip:
- mine_function: network.ip_addrs
- ens32
worker_token:
- mine_function: cmd.run
- "docker swarm join-token worker -q"
运行盐'*'支柱时:
----------
mine_functions:
----------
manager_ip:
|_
----------
mine_function:
network.ip_addrs
- ens32
manager_token:
|_
----------
mine_function:
cmd.run
- docker swarm join-token manager -q
network.ip_addrs:
- ens32
worker_token:
|_
----------
mine_function:
cmd.run
- docker swarm join-token worker -q
我该如何修复此问题,或者有任何已知的方法可以使用盐设置Docker群?
更改了变量名称:
旧:
{% set manager_ip = salt['mine.get']('*', 'manager_ip').items()[0][1][0] %}
include:
- docker.base
init new swarm cluster:
cmd.run:
- name: 'docker swarm init --advertise-addr {{ manager_ip }}'
- require:
- pkg: docker-ce
新:
{% set join_ip = salt['mine.get']('*', 'manager_ip').items()[0][1][0] %}
include:
- docker.base
init cluster:
cmd.run:
- name: 'docker swarm init --advertise-addr {{ join_ip }}'
- require:
- pkg: docker-ce