variável ansible como variável de ambiente

0

Eu tento isso

- name: Install required packages
 shell: "apt-get instal linux-headers-{{ ansible_kernel }}"

No entanto, recebendo isso em vez

{"msg": "The task includes an option with an undefined variable. The error was: 'ansible_kernel' is undefined\

Eu posso ver essa variável via

ansible -i myinventoryfile myhost -m setup | grep kernel

e também

ansible -i myinventoryfile myhost -m shell -a "uname -r"

como posso fazer isso funcionar?

    
por hakkican 28.03.2018 / 14:37

1 resposta

0

Funciona para mim.

% cat facts.yml
#!/usr/bin/env ansible-playbook
- name: test
  hosts: somehost.example.edu
  tasks:
  - debug: var=ansible_kernel

  - shell: "echo {{ ansible_kernel }} > /tmp/thisisverybaddonotuse"
% ./facts.yml

PLAY [test] ***

TASK [Gathering Facts] ***
ok: [somehost.example.edu]

TASK [debug] ***
ok: [somehost.example.edu] => {
    "ansible_kernel": "3.10.0-693.21.1.el7.x86_64"
}

TASK [command] ***
changed: [somehost.example.edu]

PLAY RECAP ***
somehost.example.edu  : ok=3    changed=1    unreachable=0    failed=0

% ssh somehost.example.edu "cat /tmp/thisisverybaddonotuse"
3.10.0-693.21.1.el7.x86_64

Possivelmente você não esteja reunindo fatos ou esteja, de outra forma, fazendo algo que não é claro a partir das informações limitadas em sua postagem.

    
por 28.03.2018 / 18:03

Tags