Назад | Перейти на главную страницу

Использовать имя задачи Ansible как переменную

У меня есть задача в сборнике пьес. Мне нужно отправлять сообщения для каждой задачи.

- 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

Я использую модуль уведомлений Slack.

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

Я имею в виду использовать один обработчик («Отправить уведомление через Slack»). Я не знаю, как передать имя задачи как переменную обработчику.

¿Как передать имя задачи в виде переменной?

Вы, вероятно, не захотите использовать для этого обработчики. Обработчики предназначены для таких вещей, как управление услугами, когда вы не хотите, чтобы они работали до конца вашей игры. Они не предназначены для приема параметров.

В вашем случае я предполагаю, что вы хотите отправить уведомление через slack, как только задача будет запущена, для этого вы можете добавить задачу уведомления slack под своей задачей «загрузить в конфигурацию kerbenetes» или вы можете использовать задача включает с параметром.

Пример:

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 }}"