需求
有時(shí)候重啟 vps,需要登錄在網(wǎng)頁(yè)上操作,很麻煩,查了下有相關(guān)的 api 做這個(gè)事,最好是我在 slack 里發(fā)條消息(重啟 xx 主機(jī)),然后自動(dòng)重啟.
重點(diǎn)
實(shí)現(xiàn)的重點(diǎn)是 怎么讓 Huginn 收到 slack 的消息,huginn 上的 slack agent 是發(fā)送消息到 slack, 而不能反過(guò)來(lái),查了下 slack 文檔,能實(shí)現(xiàn)的是 bot 和 app,決定采用 app
實(shí)現(xiàn)
首先在 huginn 創(chuàng)建 WebhookAgent,options 如下:
{
"secret": "123456",//這里隨便填
"expected_receive_period_in_days": 1,
"payload_path": ".",
"code": "200",
"response": "{{challenge}}"
}
response 必須是{{challenge}},然后創(chuàng)建,可以看到 webhook api url ,一般是這種形式 http://1.2.3.4/users/1/web_requests/1/123456, 記下來(lái),下一步會(huì)用.
然后在 slack 創(chuàng)建 app, 然后創(chuàng)建 Event Subscriptions,

image.png
然后填上上一步的 url, 添加 event, 填寫 url 后會(huì)檢查,如果失敗,請(qǐng)檢查上一步創(chuàng)建的 agent.

image.png
install APP, 然后授權(quán)下

image.png
以上步驟就 ok 了,然后你在公共 channel 里發(fā)條消息,檢查下 agent events 有沒(méi)有相關(guān) event,類似這樣:

image.png
然后寫一個(gè)
trigger agent 過(guò)濾出重啟 的消息,然后傳遞給一個(gè) Post agent去調(diào)用 vps 的 API,測(cè)試下就 ok 了.