Я пишу 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="
Во-первых, что он на самом деле говорит, когда вы пытаетесь сделать это выше? Было бы полезно иметь результат ваших попыток.
Просто предположил, но попробуйте переместить 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
play. Это позволит вам точно настроить синтаксис и продолжать возиться с ним, пока вы не сделаете все правильно, без необходимости бежать и ждать более сложной игры, которая последует. Ссылка.
To import this list from a group_vars file
Поместите локальный хост в группу. Например группа тестовое задание
> cat hosts
test:
hosts:
localhost:
Поместите varfile.yml в каталог group_vars/тест
$ 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
Проблема была в поле СКРТ: "c2trcnIK" сразу под строкой "{{секреты}}". Я удалил его, и теперь он работает! Спасибо вам всем.
Рад, что смог помочь.