Team, используя роли не напрямую playbook. Я пытаюсь подсчитать количество хостов в инвентаре по определенным группам и затем подтвердить это значение. но я получаю неопределенное значение ответа на выходе. Кроме того, есть ли лучший способ сделать это?
- name: "Ensure KUBECONFIG"
shell: echo $KUBECONFIG
register: kubeconfig_exists
failed_when: kubeconfig_exists.rc != 0
- debug:
var: kubeconfig_exists.stdout_lines
- name: "Find $PATH where Ansible looks for binaries on target system"
register: echo_path
shell: echo $PATH
- debug:
var: echo_path.stdout_lines
- debug:
vars:
gpu_count: "{{ groups['k8s_gpu_nodes'] | length }}"
cpu_count: "{{ groups['k8s_cpu_nodes'] | length }}"
- assert:
that:
- "gpu_count | int <= 1"
- "cpu_count | int >= 1"
msg: "Assure k8s_nodes are not empty"
вывод:
TASK [3_validations_on_ssh : Ensure KUBECONFIG] ************
changed: [localhost]
TASK [3_validations_on_ssh : debug] ******************
ok: [localhost] => {
"msg": "Hello world!"
}
TASK [3_validations_on_ssh : assert] ****************
fatal: [localhost]: FAILED! => {"msg": "The conditional check 'gpu_count | int <= 1' failed. The error was: error while evaluating conditional (gpu_count | int <= 1): 'gpu_count' is undefined"}
inventory.txt
target1 ansible_host='{{ target1_hostip }}' ansible_ssh_pass='{{ target1_pass }}'
[k8s_gpu_nodes]
host1
host2
[k8s_cpu_nodes]
host3
host4