我正在写一本 Ansible-playbook ,以将一系列秘密对象插入Kubernetes。 我正在使用 k8s_raw 语法,我想从 group_vars 文件导入此列表。 我找不到正确的语法将机密列表导入我的数据字段。
- hosts: localhost
tasks:
- name: Create a Secret object
k8s_raw:
state: present
definition:
apiVersion: v1
kind: Secret
data:
"{{ secrets }}"
SKRT: "c2trcnIK"
metadata:
name: "test"
namespace: "namespace-test"
type: Opaqueroot
vars_files:
- "varfile.yml"
secrets:
TAMAGOTCHI_CODE: "MTIzNAo="
FRIDGE_PIN: "MTIzNAo="
答案 0 :(得分:0)
首先,当您尝试上述操作时,它实际上是怎么说?尝试的结果会有所帮助。
只是猜测,但尝试将var_files移至尝试使用变量的位置之前。另外,请确保在执行缩进时正确无误。
- hosts: localhost
vars_files:
- /varfile.yml
tasks:
- name: Create a Secret object
k8s_raw:
state: present
definition:
apiVersion: v1
kind: Secret
data:
"{{ secrets }}"
metadata:
name: "test"
namespace: "namespace-test"
type: Opaqueroot
旁注:我将立即调试此程序,而无需尝试执行此任务。删除您的主要任务,并在尝试使用vars_files之后,尝试使用debug
播放直接打印机密。这将使您可以微调语法并不断修改它,直到您正确使用它为止,而不必运行并等待随后的更复杂的播放。 Reference。
答案 1 :(得分:0)
要从group_vars文件导入此列表
将 localhost 放入一个组。例如,一组 test
> cat hosts
test:
hosts:
localhost:
将 varfile.yml 放入 group_vars / test 目录
$ tree group_vars
group_vars/
├── test
└── varfile.yml
然后在下面运行剧本
$ cat test.yml
- hosts: test
tasks:
- debug:
var: secrets.TAMAGOTCHI_COD
$ ansible-playbook -i hosts test.yml
给予:
PLAY [test] ***********************************
TASK [debug] **********************************
ok: [localhost] => {
"secrets.TAMAGOTCHI_CODE": "MTIzNAo="
}
PLAY RECAP *************************************
localhost: ok=1 changed=0 unreachable=0 failed=0
答案 2 :(得分:0)
问题出在 “ {{secrets}}” 下的 SKRT:“ c2trcnIK” 字段>行。我删除了它,现在可以使用了!谢谢大家。