SaltStackとTelegramの統合

画像

この記事では、SaltStackを使用するときにTelegramチャットに通知を送信する方法について説明します。 バージョン2015.5.0から、SaltStackはすぐにSlackとの統合を提供しますが、Telegramも人気のメッセンジャーであり、ロシアのユーザーの間で積極的に使用されています。 したがって、この記事が読者に役立つことを願っています。







はじめに



一般的に、SaltStackはコンストラクターであり、他の多くのツールと同様に、カスタマイズと拡張のオプションを提供します。 特に、独自の実行可能モジュール







PythonでTelegramボットを作成する方法については、 ここで詳しく説明します 。 さらに、小さなPythonモジュールを使用して、このアプローチをSaltStackに結び付ける方法を説明します。







設定プロセス



次の後にモジュールの作成を開始します。







  1. ボットが作成されました
  2. チャットに追加されたボット
  3. chat_idを受信しました


ご注意 次のPythonスクリプトを使用してチャットIDを取得できます。







import requests URL = 'https://api.telegram.org/bot' TOKEN = <  > try: request = requests.post('{url}{token}/getUpdates'.format(url=URL, token=TOKEN)) print request.json()['result'][0]['message']['chat']['id'] except Exception,e: print str(e)
      
      





だから、私たちは主なものに渡します。 ドキュメントで説明されているように、SaltStackモジュールは_modules/



ディレクトリにあり、 _modules/



ようになっている必要があります。







 import requests URL='https://api.telegram.org/bot' def notify(message, token, chat_id): message_data = { 'chat_id': chat_id, 'text': message } try: request = requests.post('{url}{token}/sendMessage'.format(url=URL, token=token), data=message_data) except Exception,e: return False, str(e) if not request.status_code == 200: return False, "Return status is unsuccessful" #         . return True, "Message was successfully sent"
      
      





次に、モジュール同期コマンドを実行して、それらがミニオンに表示されるようにする必要があります。

salt '*' saltutil.sync_modules









すべてが正常に完了すると、結果は次のようになります。







画像







最後に、ステータスファイル(この例ではsend_telegram.sls



)を作成します







 send message about minion id: module.run: # telegram -  python-, notify -     - name: telegram.notify - kwargs: message: command executed on minion with id {{ grains['id'] }} token: <  > chat_id: <id   Telegram>
      
      





作成されたモジュールの機能を確認します。

salt '*' state.apply send_telegram









マスターの側で:







画像







チャットで:







画像







ソース



  1. リクエストのみを使用するPythonテレグラムボット
  2. 実行モジュールの作成
  3. 塩の状態はどのように使用しますか?






All Articles