Meet COACH

Think about all of the processes involving your IT infrastructure.
Can everyone on your team perform all of the steps?
Are the steps documented to give your junior employees confidence in executing each step in the process?
How much of the process is automated?

Coach is a tool that makes "programming in the small" for business processes involving IT infrastructure easier to implement. Developers can write scripts to automate process steps in the language they prefer while keeping tags and documentation attached and readily available to every script.

A gRPC server is coming soon, enabling easy integration with your existing business process management solution.

Here's a simple example to give you a taste of what's possible with coach.

coach will prompt you to do the right thing (save and document repeated commands).

[email protected]:~/$ svcName=$(journalctl --since today | grep error \
    | jq .service.name); systemctl restart $svcName
'users-api' restarted
[email protected]:~/$ ...
...
[email protected]:~/$ svcName=$(journalctl --since today | grep error \
    | jq .service.name); systemctl restart $svcName
'widget-svc' restarted
[email protected]:~/$ ...
...
[email protected]:~/$ svcName=$(journalctl --since today | grep error \
    | jq .service.name); systemctl restart $svcName
'webhooks' restarted

---
This command has been used 3+ times.
`coach lib [alias] [tags] [comment...]` to save and document this command.
`coach ignore` to silence this output for this command.
[email protected]:~/$ coach lib prod.findAndFix prod,services,restart Finds \
    any services logging errors and restarts them.

coach can help when you aren’t sure what to do.

[email protected]:~/$ coach lib --query restart
        Script: svcName=$(journalctl --since today | grep error...
         Alias: prod.findAndFix
          Tags: prod,services,restart
 Documentation: Finds any services logging errors and restarts them.
              ---
[email protected]:~/$ coach run prod.findAndFix
Command 'prod.findAndFix' found:
###
Finds any services logging errors and restarts them.
###
$ svcName=$(journalctl --since today | grep error...

Run now? [y/n] y
'users-api' restarted

If adjustments need to be made, coach is ready to help.

[email protected]:~/$ coach lib --edit prod.findAndFix # opens script in $EDITOR

===========================================================================
  GNU nano 2.5.3                    File: /tmp/coachbdmopo8rl24phitbsja0.sh
#-ALIAS- = prod.findAndFix
# -TAGS- = prod,services,restart,fix
#-SHELL- = bash
#
#-DOCUMENTATION- !DO NOT EDIT THIS LINE!
# Finds any services logging exceptions and restarts them.
#
#-SCRIPT- !DO NOT EDIT THIS LINE!
svcName=$(journalctl --since today | grep exception | jq .service.name); \
    systemctl restart $svcName

# edit: add health check
check-svc-health $svcName


                        [ Read 9 lines ]
^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos...
^X Exit ^R Read File ^\ Replace ^U Uncut Text ^T To Linter...
=========================================================================

[email protected]:~/$ coach lib --query fix
        Script: svcName=$(journalctl --since today | grep except...
         Alias: prod.findAndFix
          Tags: prod,services,restart,fix
 Documentation: Finds any services logging exceptions and restarts them.
              ---
[email protected]:~/$ coach run --confirm prod.findAndFix
'users-api' restarted
Checking 'users-api'... HEALTHY
[email protected]:~/$

Download

Want to try it out yourself?
You can find the source at https://github.com/alittlebrighter/coach
or download the right build for your OS with the links below.

coach_darwin_amd64.zip

coach_windows_amd64.zip

coach_linux_amd64.zip

coach_linux_arm.zip

===

After trying Coach, please fill out the contact form below to let me know what is good, bad, and/or missing from the tool. I would love to hear from you.


Contact

Do you want to learn more about how coach can help your team?
Fill out the contact form below for a demo.