Koma gather host inventory without agent.
Ruby Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
exe
lib
spec
.gitignore
.rspec
.rubocop.yml
.travis.yml
Gemfile
LICENSE.txt
README.md
Rakefile
koma.gemspec
stdout_sample.json

README.md

Koma Gem Build Status

Koma gather host inventory without agent.

Installation

Add this 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

Contributing

  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