Use o nome da tarefa Ansible como variável

2

Eu tenho alguma tarefa em um playbook. Preciso enviar uma mensagem para cada tarefa.

- name: Upload kubernetes config
  template:
    src=kubernetes-config.j2
    dest=/etc/kubernetes/config backup=yes
    group=root
    owner=root
    mode="u=rw,g=r,o=r"
  notify: Send notification message via Slack

Eu uso o módulo de notificação do slack.

- name: Send notification message via Slack
  local_action:
    module: slack
    domain: hsap.slack.com
    token: yourtoken
    msg: "{{ansible_nodename}} - {{ansible_distribution}}"

Eu tenho em mente usar um manipulador ("Enviar mensagem de notificação via Slack"). Eu não sei como passar o nome da tarefa como variável para o manipulador.

¿Como posso passar o nome da tarefa como variável?

    
por Andrés Sánchez García 12.05.2015 / 14:56

1 resposta

2

Você provavelmente não deseja usar manipuladores para isso. Manipuladores são para coisas como gerenciamento de serviços onde você não quer que eles sejam executados até o final do seu jogo. Eles não são destinados a aceitar parâmetros.

No seu caso, suponho que você queira enviar uma notificação via folga assim que a tarefa for executada. Para fazer isso, você pode adicionar sua tarefa de notificação de folga abaixo da tarefa "fazer upload para kerbenetes config" ou usar uma tarefa inclui com um parâmetro.

Exemplo:

main.yml:

- name: Upload kubernetes config
  template:
    src=kubernetes-config.j2
    dest=/etc/kubernetes/config backup=yes
    group=root
    owner=root
    mode="u=rw,g=r,o=r"
- include: send_slack.yml msg="kurbenetes updated!"

send_slack.yml:

- name: Send notification message via Slack
  local_action:
    module: slack
    domain: hsap.slack.com
    token: yourtoken
    msg: "{{ansible_nodename}} - {{ansible_distribution}} - {{ msg }}"

    
por 12.05.2015 / 17:25

Tags