Spiceworks सुस्त एकीकरण - कैसे

Spiceworks सुस्त एकीकरण

यहां बताया गया है कि कैसे मैंने अपनी टीम के स्लैक चैनलों को पावरशेल का उपयोग करके पोस्ट करने के लिए स्पिकवर्क प्राप्त किया। यह सब हमारे समर्पित स्पिकवर्क सर्वर पर किया गया था। यदि आप किसी अन्य सर्वर पर चलने के लिए कदमों को मोड़ना चाहते हैं, तो मेरे अतिथि बनें। यह केवल तभी काम करता है जब आप स्पिकवर्क की अपनी स्थापना की मेजबानी करते हैं।

कुल 4 चरण

चरण 1: PSQLite सेट करें

डाउनलोड करें और अपने सर्वर पर PSQLite स्थापित करें जो स्पिकवर्क का उपयोग करने वाले SQLite DB तक पहुंचने में सक्षम हो। PSQLite https://psqlite.codeplex.com/ पर पाया जा सकता है

चरण 2: अपने चैनल के लिए एक सुस्त वेबबुक प्राप्त करें

आपको अपने पोस्ट को उपयोग करने के लिए स्लैक पर आने वाले वेबहूक को सेट करना होगा। "इनकमिंग वेबहुक इंटीग्रेशन सेटअप" शीर्षक वाले अनुभाग में एक सेट करने के लिए इस साइट पर बहुत निर्देश हैं।
http://www.programmableweb.com/news/how-to-integrate-webhooks-slack-api/how-to/2015/10/20

चरण 3: एक स्क्रिप्ट बनाएँ

मैंने अपने सभी स्क्रिप्ट चरणों को Powershell script (https://community.spiceworks.com/scripts/show/3645-spiceworks-slack-script) पर डाउनलोड किया। यदि आप चाहते हैं तो इसे तोड़ने के लिए स्वतंत्र महसूस करें। यहाँ मैं (स्वच्छता) के साथ आया हूँ। यह पिछले 15 मिनट में खोला और बंद किया गया है (जैसा कि स्क्रिप्ट की टिप्पणी शीर्ष लेख में दिखाया गया है)। आपको चरण 2 (जहाँ यह कहता है और) में उत्पन्न सुस्त वेबहूक जानकारी के साथ शीर्ष पर चर को अद्यतन करने की आवश्यकता होगी।

यदि आप यह जानना चाहते हैं कि यह वास्तव में क्या कर रहा है, तो यह सब पढ़े बिना, मैंने स्क्रिप्ट को उनके डिफ़ॉल्ट स्थान से रिपोर्ट डेटाबेस में कॉपी करने के लिए सेट किया है, जिसे मैंने प्रोडक्शन डेटाबेस के समान फ़ोल्डर में रखा था। मैं तब रिपोर्ट डेटाबेस को ड्राइव 'क्यू' के रूप में माउंट करने के लिए PSQLite का उपयोग करता हूं और इसे टिकट की जानकारी के लिए क्वेरी करता हूं जिसे बाद में चरण 2 में स्थापित स्लैक वेबहुक पर पाइप किया जाता है।

# सुस्त चर
$ स्लैकवेबहुक =
$ सुस्ताना =
$ slackIcon = 'http://www.spiceworks.com/images/icons/swoosh.png'

# स्पिकवर्क डीबी स्थान
$ production_db = 'c: Program Files (x86) Spiceworks db spiceworks_prod.db'
$ production_wal = 'c: Program Files (x86) Spiceworks db spiceworks_prod.db-wal'
$ production_shm = 'c: Program Files (x86) Spiceworks db spiceworks_prod.db-shm'
$ spiceworks_rpt_db = 'c: Program Files (x86) Spiceworks db spiceworks_rpt.db'
$ spiceworks_rpt_wal = 'c: Program Files (x86) Spiceworks db spiceworks_rpt.db-wal'
$ spiceworks_rpt_shm = 'c: Program Files (x86) Spiceworks db spiceworks_rpt.db-shm'

फंक्शन पोस्ट-स्लैक
{
परम (
[स्ट्रिंग] $ SlackWebHook,
[स्ट्रिंग] $ SlackChannel,
[स्ट्रिंग] $ प्रेषक,
[स्ट्रिंग] $ आइकन,
[स्ट्रिंग] $ संदेश
)

$ समय = Get-Date -Format g

$ पोस्टस्लैकमेसेज = @ {
चैनल = $ SlackChannel;
unfurl_links = "सच";
उपयोगकर्ता नाम = $ प्रेषक;
icon_url = $ आइकन;
पाठ = "$ ($ समय)
`` `` `` $ ($ संदेश) `` `` `` ";
} | ConvertTo-Json

Invoke-RestMethod -Method पोस्ट -ContentType 'आवेदन / json' -Uri $ SlackWebHook -Body $ postSlackMessage | बाहर अशक्त

}

# अंतिम रन से आगे
यदि ((परीक्षण-पथ -पथ $ spiceworks_rpt_db) -eq $ true) {
निकालें-आइटम $ spiceworks_rpt_db -force
}
यदि ((परीक्षण-पथ -पथ $ spiceworks_rpt_wal) -eq $ true) {
निकालें-आइटम $ spiceworks_rpt_wal -force
}
अगर ((परीक्षण-पथ -पथ $ spiceworks_rpt_shm) -eq $ true) {
निकालें-आइटम $ spiceworks_rpt_shm -force
}

# कॉपी प्रोडक्शन डीबी को एक रिपोर्ट डीबी
कॉपी-आइटम $ production_db $ spiceworks_rpt_db | बाहर अशक्त
कॉपी-आइटम $ production_wal $ spiceworks_rpt_wal | बाहर अशक्त
कॉपी-आइटम $ production_shm $ spiceworks_rpt_shm | बाहर अशक्त

# कॉपी-आइटम को खत्म करने का समय दें
शुरू-नींद -१५

# DB के साथ बातचीत करने के लिए उपकरण प्राप्त करें
आयात-मॉड्यूल SQLite

# डीबी का नक्शा
new-psdrive -name "q" -psprovider "SQLite" -root "डेटा स्रोत = $ spiceworks_rpt_db" | बाहर अशक्त

# अंतिम 15 मिनट में टिकट बनाने और बंद करने की क्वेरी
$ new_closed_ticket_query = invoke-item q: -sql "SELECT t.id, u.first_name, u.last_name टिकटों से लेफ्टिनेंट ज्वाइन करें यू पर t.assigned-to = u.id WHERE t.status = 'बंद' और t.created_at > आजीवन ('अब', '-15 मिनट', 'स्थानीय समय') और t.closed_at <DATETIME (t.created_at, '15 मिनट ') "

# क्वेरी को निष्पादित करें
$ new_closed_ticket = $ new_closed_ticket_query | Select-Object -Property id, first_name, last_name

# प्रत्येक टिकट के साथ कुछ करें
foreach ($ new_closed_ticket में $ टिकट) {

$ टिकट_द = $ टिकट।आईडी
$ टिकट_फर्स्ट_नाम = $ टिकट.फर्स्ट_नाम
$ टिकट_लॉस्ट_नाम = $ टिकट.लॉस्ट_नाम

$ टिकट_मेसज = "$ टिकट_ड बना और बंद कर दिया गया। टेक $ टिकट_फर्स्ट_नाम $ टिकट_ब्लास्ट / नाम था।"
पोस्ट-स्लैक -SlackWebHook $ slackWebHook -SlackChannel $ slackChannel -Sender 'Spiceworks' -Icon $ slackIcon -Message $ टिकट_चेक
$ host_message को होस्ट-होस्ट करें
}

# नए खुले टिकट
$ new_closed_ticket_query = invoke-item q: -sql "SELECT t.id, u.first_name, u.last_name टिकटों से लेफ्टिनेंट ज्वाइन करें यू पर t.assigned-to = u.id WHERE t.status = 'open' और t.created_at > आजीवन ('अब', '-15 मिनट', 'स्थानीय समय') "

# क्वेरी को निष्पादित करें
$ new_closed_ticket = $ new_closed_ticket_query | Select-Object -Property id, first_name, last_name

# प्रत्येक टिकट के साथ कुछ करें
foreach ($ new_closed_ticket में $ टिकट) {

$ टिकट_द = $ टिकट।आईडी
$ टिकट_फर्स्ट_नाम = $ टिकट.फर्स्ट_नाम
$ टिकट_लॉस्ट_नाम = $ टिकट.लॉस्ट_नाम

$ टिकट_समाज = "$ टिकट_आईडी खोला गया था। $ टिकट_फर्स्ट_नाम को सौंपा गया $ टिकट_का_नाम:
पोस्ट-स्लैक -SlackWebHook $ slackWebHook -SlackChannel $ slackChannel -Sender 'Spiceworks' -Icon $ slackIcon -Message $ टिकट_चेक
}

# पुराने टिकट बंद
$ new_closed_ticket_query = invoke-item q: -sql "SELECT t.id, u.first_name, u.last_name टिकटों से लेफ्टिनेंट ज्वाइन करें यू पर t.assigned-to = u.id WHERE t.status = 'बंद' और t.created_at <डेटाटाइम ('अभी', '-15 मिनट', 'स्थानीय समय') और t.closed_at> DATETIME ('अब', '- 15 मिनट', 'स्थानीय समय') "

# क्वेरी को निष्पादित करें
$ new_closed_ticket = $ new_closed_ticket_query | Select-Object -Property id, first_name, last_name

# प्रत्येक टिकट के साथ कुछ करें
foreach ($ new_closed_ticket में $ टिकट) {

$ टिकट_द = $ टिकट।आईडी
$ टिकट_फर्स्ट_नाम = $ टिकट.फर्स्ट_नाम
$ टिकट_लॉस्ट_नाम = $ टिकट.लॉस्ट_नाम

$ टिकट_मेसाज = "$ टिकट_ड बंद हो गया था। टेक $ टिकट_फर्स्ट_नाम $ टिकट_ब्लास्ट_नाम था।"
पोस्ट-स्लैक -SlackWebHook $ slackWebHook -SlackChannel $ slackChannel -Sender 'Spiceworks' -Icon $ slackIcon -Message $ टिकट_चेक
}

# साफ - सफाई
Remove-PSDrive -name "q"

चरण 4: चलाने के लिए स्क्रिप्ट को शेड्यूल करें

जब मैंने इसे सेट किया, तो यह हमारे स्पिकवर्क डीबी को हर 15 मिनट में जांचना था, इसलिए मैंने हर 15 मिनट में पॉवरशेल स्क्रिप्ट को चलाने के लिए कार्य शेड्यूलर सेट किया। आपको जो भी चाहिए, उस समय को समायोजित करें, लेकिन सुनिश्चित करें कि आप स्क्रिप्ट को एक अलग अंतराल के लिए खाते में अपडेट करें।

यह एक त्वरित और गंदा काम था, लेकिन इससे आपको अपने स्पिकवर्क इंस्टॉलेशन के अतिरिक्त प्रश्नों को लिखने और अपनी टीम के लाभ के लिए अपने स्लैक चैनल पर पोस्ट करने के लिए एक प्रारंभिक बिंदु देना चाहिए।