Mattermost et Powershell - une puissance énorme ou une petite automatisation à la maison

Je ferai une réservation tout de suite - je travaille pour une entreprise qui n'est pas directement connectée à l'informatique, donc notre budget pour l'informatique est petit. En conséquence, de nombreux programmes et commodités connexes ne sont pas disponibles pour nous, nous devons donc faire ce que nous pouvons. Et lorsque, en plus du service informatique, l'entreprise compte plusieurs centaines d'utilisateurs qui peuvent à peine distinguer le moniteur de la souris, le travail devient une quête distincte.

Par conséquent, ce que j'ai écrit sera plus susceptible d'être utile aux administrateurs des petites entreprises .

Beaucoup (ou pas beaucoup) ont entendu parler d'un outil aussi génial que Mattermost .
Pour ceux qui ne l'ont pas entendu - c'est un tel Slack, mais uniquement auto-hébergé. Au sein de l'entreprise, le chat général est généralement la chose la plus utile.

C'est élémentaire, si vous voulez, il est très facile de fixer le bot (par exemple, j'utilise Hubot), sur lequel vous pouvez encapsuler toutes sortes d'alertes sur les tâches de la redmine ou de la surveillance, et même automatiser certains processus métier qui peuvent être enveloppés dans un script de questions-réponses coûte cher .

Tout le monde est à l'aise avec ce chat, mais il y a une chose mais. En fait pas un, mais le manque d'une liste structurée normale d'utilisateurs ne fait que tuer. Vous pouvez bien sûr utiliser Openfire + Miranda, mais la disponibilité d'un client Mattermost pour les téléphones avec la possibilité d'envoyer des notifications l'emporte sur tous ces inconvénients. Étant donné que le nombre d'utilisateurs n'est pas d'une douzaine, le nombre de départements n'est pas non plus de deux, la question se pose parfois - qui travaille aujourd'hui à la réception de l'agence distante? Lequel est en ligne? Combien il est beau et abordable de transmettre à l'utilisateur moyen ces informations en un seul endroit est une autre question. Dessiner un arbre feuillu d'options de demande et de réponse pour un chatbot est un autre divertissement, donc je présente un article à genoux spécialement pour un tel cas.

Service pour Mattermost, écrit pour exécuter divers scripts PowerShell à partir de commandes slash / personnalisées. En fait, vous pouvez l'utiliser pour différents besoins, en vous y référant par URL, mais je l'ai écrit afin de dessiner des boutons dans le chat. Tout le monde aime les boutons, même les chats et les tantes de la comptabilité. Eh bien, tout administrateur Windows doit pouvoir écrire dans PowerShell, si utile!

Un travail approximatif ressemble à ceci:



Le service est conçu pour fonctionner sur les systèmes Windows, avec Powershell v3 +. Pour l'exécuter, vous devez disposer des droits pour exécuter des scripts PowerShell et ouvrir le socket. Il n'y a pas d'authentification dans le script, donc je ne recommande pas de prescrire quoi que ce soit de destructeur dans les configs et d'exposer un butin nu sur Internet. D'un autre côté, vous pouvez prescrire des moyens plus authentiques, mais ce n'est pas pour tout le monde.

Le service se compose du script lui-même et du fichier de configuration, qui indique les scripts à exécuter et les données transmises à l'entrée ( décrites dans la documentation, paragraphe 8 ).

Entrées de configuration

[script] Script=.\Dummy-Script.ps1 IncomingVariables=text,team_domain,user_name 

signifie que lors de l'accès à l'url / script, le script Dummy-Script.ps1 sera lancé, situé dans le même répertoire que ButtonCommander, avec le texte des variables entrantes, team_domain, user_name.

Le service reçoit les données des scripts et les envoie au canal d'où provient la demande. Si les données se présentent sous la forme de JSON, la conversion en un simple message ne se produit pas et le JSON d'origine est envoyé à Mattermost - c'est ainsi que les boutons sont créés.

Le script peut également être arrêté ou relu le fichier de configuration, en accédant à une URL spéciale. Mais dans d'autres domaines, la description et l'installation sont décrites directement dans le référentiel, donc je ne vais pas copier-coller. Le script était rodé et déjà présenté dans la version de travail. Il fonctionne sans échec depuis assez longtemps.

Lien vers le référentiel.

PS: Afftar n'est pas un écrivain et pas un programmeur, mais un obstétricien-menuisier de profil large, il écrit donc du mieux qu'il peut.
PPS: Partout où nous parlons de Team Edition, qui (oh douleur, douleur!) N'a pas d'autorisation LDAP. Je ne suis pas en mesure de remplacer la page de connexion par la mienne (nginx + python), mais ce métier est tellement monstrueux que c'est un crime de le télécharger.

Source: https://habr.com/ru/post/fr419415/


All Articles