Envoi de notifications Slack avec Ansible

On souhaite envoyer des notifications dans un canal Slack à la fin de l'exécution d'un déploiement Ansible en renvoyant des données sur sa configuration.

Publié le 25/11/2016

1 - Création d'un webhook dans l'admin de slack

A l'adresse : slack.com/apps

On va dans "Configure", puis dans l'onglet "Custom Integrations" on clique sur "Incoming WebHooks", puis "Add Configuration"'. On récupère l'url du webhook pour allez la coller dans la configuration du playbook.

2 - Configuration du playbook

On configure le fichier playbook.yml comme suit :


---
- hosts: all
  sudo: true
  vars:
    infra: infra name
    domain: domain.tld
    admin: mail@domain.tld
    directory: path/to/app
    app_name : appname
    db_name : dbname
    public_path: /path/to/public

  tasks:
    - name: Send Slack notification
      slack:
        token: "TOKEN"
        channel: "#channel"
        msg: "{{ app_name }} deploy OK"
        attachments:
          - text: "{{ infra }}"
            color: "#063da4"
            title: "Infrastructure"
            fields:
              - title: "URL"
                value: "{{ domain }}"
                short: "true"
              - title: "Public path"
                value: "{{ public_path }}"
                short: "true"

Source : http://docs.ansible.com/ansible/slack_module.html