January 20, 2019

Menggunakan Ansible Untuk Kirim Pemberitahuan

Ansible Kirim Pemberitahuan? Emang bisa? Kirimnya pakai apa? Sepertinya menarik.

Melalui postingan beberapa hari yang lalu kita telah berkenalan secara kilat dengan ansible, saya kira postingan sebelumnya sudah cukup membantu dan mengantar kita untuk kepo kepo i si Ansible tersebut. Sesuai apa yang ada di web resminya, disana kita bisa lihat bahwa si Ansible mempunyai banyak module yang bisa digunakan bahkan dikembangkan.

Diantara banyak module yang disediakan berdasarkan apa yang saya ketahui setelah berkenalan dengan si Ansible, ada 2 module yang bisa digunakan untuk mengirim pemberitahuan yaitu module sendgrid dan telegram. Sendgrid adalah layanan yang menyediakan API untuk mengirim email yang biasa digunakan sebagai email marketing. Dengan sendgrid, kita bisa mengirim email menggunakan metode API atau SMTP, namun pada lab ini saya akan menggunakan metode API berdasarkan rekomendasi oleh sendgrid. Sedangkan Telegram adalah sebuah aplikasi pengirim pesan instan multiplatform berbasis cloud (awan) yang bersifat gratis.

Dari pengenalan diatas, saya kira itu sudah cukup mengantar kita untuk bermain lagi dengan si Ansible.

Pada lab ini saya asumsikan:

  • File playbook sendgrid= sendgrid.yml
  • File playbook telegram= telegram.yml
  • Nama API Key = Lab siBunglon
  • Nama pengirim = siBunglon
  • Email tujuan = [email protected]

Bermain dengan Ansible

Note: Pastikan ansible telah terinstall yah! Sesi permainan kali ini saya bagi menjadi 2, sesi 1 menggunakan metode API Sendgrid dan sesi 2 menggunakan metode API Telegram.

Sesi 1: Menggunakan API Sendgrid

1) Silahkan mendaftar terlebih dahulu ke Sendgrid. Ohiya disesi ini saya menggunakan paket Free Trial tapi gak usah takut, free trial disini tidak membatasi masa aktif akun melainkan membatasi pengiriman email jika masa percobaan telah habis.

2) Setelah berhasil mendaftar silahkan masuk ke bagian integrasi dan pilih Web API karena kita akan mengirim email mengguanakan API.siBunglonLabs3) Berikutnya untuk memudahkan verifikasi API yang didapat, saya menggunakan cURL untuk Lab ini namun kalian dapat memilih selain cURL.siBunglonLabs4) Kemudian masukkan nama API Key-nya lali klik Create Key, setelah itu silahkan kalian ikuti instruksi verifikasi API Key-nya.siBunglonLabsSampai tahap ini saya asumsikan kalian telah memverifikasi API Key-nya.siBunglonLabs5) Untuk menggunakan module sendgrid, pastikan paket sendgrid telah terinstall. Untuk menginstall-nya dapat menggunakan command pip install sendgrid==2.2.1.

6) Selanjutnya buat playbook yang akan bertugas mengirim email. Buat file dengan ekstensi .yml dan berisikan seperti ini:

---
 - hosts: localhost
   tasks:
     - sendgrid:
          api_key: "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"
          from_address: "siBunglon"
          to_addresses:
            - "[email protected]"
          subject: "Mail Sendgrid"
          body: "This email is sent using the sendgrid API key"

7) Setelah playbook dibuat, waktunya mengirim email dengan command ansible-playbook sendgrid.yml.

8) Sampai tahap ini, email telah berhasil dikirim sesuai tujuannya.siBunglonLabs

Sesi 2: Menggunakan API Telegram

1) Pastikan anda telah memiliki akun telegram.

2) Buat bot terlebih dahulu untuk mendapatkan token API telegram yang akan digunakan untuk mengirim notifikasi di telegram. Buat melalui BotFather, usernamenya @BotFather

Activities, Android Developer, Ansible, Apache2, Atlassian, Ayo Belajar Linux, Bestpath Network, BLC Telkom Klaten, BSD, Caddy Server, Case Study, Cisco, Cisco Indonesia, Cloud Computing, Cockpit, Custom Weapons, Docker, E-Learning, Engenius, Error, FreeBSD, FreeBSD Indonesia, Komunitas Pengguna Linux Indonesia, KPLI Bulukumba, KPLI Klaten, Lets Encrypt, Linux, MacOS, Microsoft Azure, Microsoft SQL Server, MikroTik, MikroTik Indonesia, MySQL, Nginx, Open edX, OpenSID, Others, PHP, phpMyAdmin, PostgreSQL, Proxmox, Python, Redash, Sendy, SSH, Stories, Subnetting, TP-Link, Ubiquiti, Unix, Virtualization, Windows, X-Mosque, Faizar Septiawan, Icar, siBunglonGanteng, Orang Ganteng, siBunglonLabs, Programmer, SysAdmin, Site Reliability Engineer, Developer, Palugada, Makassar, Ganteng, Gila, Cyclist, Panglima, Setan, Panglima Setan, sibunglon, Ganteng

Sampai tahap ini saya asumsikan anda telah membuat bot melalui BotFather dan telah memiliki token API telegram-nya.

3) Setiap user telegram memiliki 1 chat id, dapatkan chat_id anda:

Kirim 1 pesan melalui bot yang baru saja dibuat, isinya terserah. Dikasus ini saya kirim chat dengan konten “/start”. Kemudian kunjungi https://api.telegram.org/bot[tokenApiKey]/getUpdates setelah itu akan browser akan menampilkan data pengirim ke bot dan disitu terdapat chat_id kalian.

Note: ganti [tokenApiKey] menjadi token yang didapat dari BotFather, contoh token yang saya dapat yaitu 642964376:AAGUAlTDqTei_bcvMue0g27hsRadYWadvok jadi urlnya seperti berikut:siBunglonLabs4) Selanjutnya buat playbook yang akan bertugas mengirim notifikasi ke telegram kalian. Buat file dengan ekstensi .yml dan berisikan seperti ini:

---
 - hosts: localhost
   tasks:
    - name: send a message to chat in playbook
      telegram:
        token: '642964376:AAGUAlTDqTei_bcvMue0g27hsRadYWadvok'
        chat_id: 98527700
        msg: "This notification is sent using the token API telegram"

5) Setelah playbook dibuat, waktunya mengirim email dengan command ansible-playbook telegram.yml.

6) Sampai tahap ini, notifikasi telah berhasil dikirim ke kalian melalui bot yang telah dibuat.

Activities, Android Developer, Ansible, Apache2, Atlassian, Ayo Belajar Linux, Bestpath Network, BLC Telkom Klaten, BSD, Caddy Server, Case Study, Cisco, Cisco Indonesia, Cloud Computing, Cockpit, Custom Weapons, Docker, E-Learning, Engenius, Error, FreeBSD, FreeBSD Indonesia, Komunitas Pengguna Linux Indonesia, KPLI Bulukumba, KPLI Klaten, Lets Encrypt, Linux, MacOS, Microsoft Azure, Microsoft SQL Server, MikroTik, MikroTik Indonesia, MySQL, Nginx, Open edX, OpenSID, Others, PHP, phpMyAdmin, PostgreSQL, Proxmox, Python, Redash, Sendy, SSH, Stories, Subnetting, TP-Link, Ubiquiti, Unix, Virtualization, Windows, X-Mosque, Faizar Septiawan, Icar, siBunglonGanteng, Orang Ganteng, siBunglonLabs, Programmer, SysAdmin, Site Reliability Engineer, Developer, Palugada, Makassar, Ganteng, Gila, Cyclist, Panglima, Setan, Panglima Setan, sibunglon, Ganteng