Я тестирую модуль ansible k8s_info, и у меня возникла проблема с анализом результата в регистровой переменной.
Playbook получает модули из всех пространств имен. Моя цель - распечатать только информацию spec.containers из каждого модуля, возвращенного в зарегистрированной переменной.
---
- name: kubenetes demo
hosts: control
gather_facts: true
tasks:
- name: get a list of all pods
k8s_info:
kind: Pod
register: pod_list
- debug:
msg:
- "Containers in use {{ item.spec.containers }}"
loop: "{{ pod_list.resources }}"
Результат, который я получаю, будет (для краткости сокращен):
ok: [10.0.0.110] => (item={'metadata': {'name': 'coredns-66bff467f8-22f6v', 'generateName': 'coredns-66bff467f8-', 'namespace': 'kube-system', 'selfLink': '/api/v1/namespaces/kube-system/pods/coredns-66bff467f8-22f6v'
"msg": [
"Containers in use [{'name': 'coredns', 'image': 'k8s.gcr.io/coredns:1.6.7', 'args': ['-conf', '/etc/coredns/Corefile'], 'ports': [{'name': 'dns', 'containerPort': 53, 'protocol': 'UDP'}, {'name': 'dns-tcp', 'containerPort': 53, 'protocol': 'TCP'}, {'name': 'metrics', 'containerPort': 9153, 'protocol': 'TCP'}], 'resources': {'limits': {'memory': '170Mi'}, 'requests': {'cpu': '100m', 'memory': '70Mi'}}, 'volumeMounts': [{'name': 'config-volume', 'readOnly': True, 'mountPath': '/etc/coredns'}, {'name': 'coredns-token-hdddf', 'readOnly': True, 'mountPath': '/var/run/secrets/kubernetes.io/serviceaccount'}], 'livenessProbe': {'httpGet': {'path': '/health', 'port': 8080, 'scheme': 'HTTP'}, 'initialDelaySeconds': 60, 'timeoutSeconds': 5, 'periodSeconds': 10, 'successThreshold': 1, 'failureThreshold': 5}, 'readinessProbe': {'httpGet': {'path': '/ready', 'port': 8181, 'scheme': 'HTTP'}, 'timeoutSeconds': 1, 'periodSeconds': 10, 'successThreshold': 1, 'failureThreshold': 3}, 'terminationMessagePath': '/dev/termination-log', 'terminationMessagePolicy': 'File', 'imagePullPolicy': 'IfNotPresent', 'securityContext': {'capabilities': {'add': ['NET_BIND_SERVICE'], 'drop': ['all']}, 'readOnlyRootFilesystem': True, 'allowPrivilegeEscalation': False}}]"
Я только хочу, чтобы сообщение отображалось на терминале. Как мне структурировать эту книгу для отображения только сообщения? Нужен ли мне шаблон jinja2?