k1LoW / koma

Koma is an inventory monitoring tool that doesn’t require agent installation on the sever side.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Koma Gem Build Status

Koma is an inventory monitoring tool that doesn’t require agent installation on the sever side.

Installation

Add the following line to your application's Gemfile:

gem 'koma'

And then execute:

$ bundle

Or install it yourself as:

$ gem install koma

Usage

Gather remote host inventory

If you login remote server via ssh example.com, you can execute:

$ koma ssh example.com

And gather host inventory stdout like this.

Gather local host inventory

$ koma exec

Gather host inventory from multiple hosts

$ koma ssh example.com,example.jp
{
  "example.com": {
    ...
  },
  "example.jp": {
    ...
  }
}

Pro Tip: Gather host inventory from multiple hosts with ssh_config

$ cat <<EOF > ssh_config_tmp
Host example_com
  User k1low
  Hostname example.com
  PreferredAuthentications publickey
  IdentityFile /path/to/example_rsa

Host example_jp
  User someone
  Hostname example.jp
  PreferredAuthentications publickey
  IdentityFile /path/to/more/example_jp_rsa
EOF

$ cat ssh_config_tmp | koma ssh --key platform,platform_version

Use sconb to filter ~/.ssh/config.

$ sconb dump example_* | sconb restore | koma ssh --key platform,platform_version

Gather vagrant host inventory.

$ vagrant ssh-config | koma ssh --key cpu,kernel

Run command on remote hosts

$ koma run-command example.com,example.jp uptime
{
  "example.com": {
    "uptime": {
      "exit_signal": null,
      "exit_status": 0,
      "stderr": "",
      "stdout": " 00:18:10 up 337 days,  4:51,  1 user,  load average: 0.08, 0.02, 0.01\n"
    }
  },
  "example.jp": {
    "uptime": {
      "exit_signal": null,
      "exit_status": 0,
      "stderr": "",
      "stdout": " 00:10:09 up 182 days,  7:34,  1 user,  load average: 0.07, 0.03, 0.01\n"
    }
  }
}

Host inventory keys

$ koma keys
memory
ec2 (disabled)
hostname
domain
fqdn
platform
platform_version
filesystem
cpu
virtualization
kernel
block_device
package
user
group
service

Contribution

  1. Fork it ( https://github.com/k1LoW/koma/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

About

Koma is an inventory monitoring tool that doesn’t require agent installation on the sever side.

License:MIT License


Languages

Language:Ruby 99.6%Language:Shell 0.4%