Maia is a CLI and management tool inspired by pssh, which allows you to execute commands remotely on multiple machines. This is particularly useful if you manage a fleet of machines on-prem and in the cloud, but don't necessarily want to install additional dependencies.
If you would like to compile from source and generate the binaries yourself, first, clone the repository.
$ git clone https://github.com/anamake/maia.git
$ cd maia
$ make
Before running Maia, make sure to modify your config.json
to point to the specific machines. Afterwards, run Maia:
$ maia
You can also use make to generate a binary for your specific operating system:
$ make build-linux
$ make build-mac
$ make build-win
There are also precompiled binaries available in the Releases section.
Maia was developed due to the constant hassle of checking on particular software versions, machine updates and for executing commands on multiple machines. This is typically done manually by engineers, all of which takes up a lot of time. When adding up the mere lost minutes of tunneling into each machine just to check for a particular software version or execute a specific command, it's time poorly spent.
You can configure Maia to work with your machines by defining a config.json
in the project's root directory. Maia will read the host names, user names, passwords, as well as any SSH keys from this configuration file and executes your user-defined commands remotely on these machines for you.
[
{
"host": "10.0.0.1",
"port": "22",
"user": "user",
"password": "ssh-password",
"key": "",
"command": ["ls", "cat /etc/environment"]
},
{
"host": "10.0.0.2",
"port": "22",
"user": "admin",
"password": "",
"key": "/path/to/sshkey",
"command": ["echo $(cat /etc/environment | grep local | cut -d ':' -f1)"]
},
{
"host": "10.0.0.3",
"port": "22",
"user": "test",
"password": "test",
"key": "",
"command": ["netstat"]
}
]