playbook - ansible tower
Verificación de múltiples condiciones usando "cuándo" en una sola tarea en ansible (2)
El problema con su condicional está en esta parte sshkey_result.rc == 1
, porque sshkey_result
no contiene el atributo rc
y el condicional completo falla.
Si desea comprobar si el archivo existe, compruebe el atributo.
Aquí puedes leer más sobre el módulo de estadísticas y cómo usarlo .
Quiero evaluar varias condiciones en ansible utilizando cuándo, aquí está mi libro de jugadas:
- name: Check that the SSH Key exists
local_action:
module: stat
path: "/home/{{ login_user.stdout }}/{{ ssh_key_location }}"
register: sshkey_result
- name: Generating a new SSH key for the current user it''s not exists already
local_action:
module: user
name: "{{ login_user.stdout }}"
generate_ssh_key: yes
ssh_key_bits: 2048
when: sshkey_result.rc == 1 and ( github_username is undefined or github_username |lower == ''none'' )
Aquí está mi archivo var para referencia:
---
vpc_region: eu-west-1
key_name: my_github_key
ssh_key_location: .ssh/id_rsa.pub
Cuando intento ejecutar este libro de jugadas, aparece este error:
TASK: [test | Check that the SSH Key exists] **********************************
ok: [localhost -> 127.0.0.1]
TASK: [test | Generating a new SSH key for the current user it''s not exists already] ***
fatal: [localhost] => error while evaluating conditional: sshkey_result.rc == 1 and ( github_username is undefined or github_username |lower == ''none'' )
FATAL: all hosts have already failed -- aborting
Alguien puede señalarme cómo podemos usar múltiples condiciones con ansible en una sola tarea.
Gracias
Puedes usarlo así.
when: condition1 == "condition1" or condition2 == "condition2"
Enlace a documentos oficiales: La Declaración de Cuándo .
También por favor refiérase. gist url https://gist.github.com/marcusphi/6791404