概要
ohai は chef の内部で使われているライブラリです
実行中のマシンの情報を取得することができます
今回は ohai 単体で実行してみました
環境
- macOS 10.15.6
- Ruby 2.7.1p83
- ohai 16.4.12
インストール
bundle init
vim Gemfile
gem "ohai"
bundle config path vendor
bundle install
システム全体の情報を取得
とりあえず ohai で取得できる情報をすべて取得してみます
かなり長い JSON が表示されるのが確認できると思います
require 'ohai'
system_info = Ohai::System.new
system_info.all_plugins
puts system_info.json_pretty_print
特定のプラグインの情報だけ取得
ohai はプラグインを読み込みそのプラグインによって取得するシステムの情報を決定します
先程紹介した all_plugins
はすべてのプラグインを読み込むので結構重たい処理になります
必要なプラグインの情報だけ取得したい場合はプラグイン名を引数に指定することで処理も軽くなります
データ取得後は data からハッシュとして参照することができます
system_info = Ohai::System.new
system_info.all_plugins(['cpu', 'os'])
puts system_info.json_pretty_print
puts system_info.data['os']
プラグインの一覧を表示
ではプラグインの一覧はどうやって参照するかというと一度すべてのプラグインを読み込んだあとはで provides_map
を参照します
ここで表示されたプラグイン名を指定することで必要なプラグインだけを使用することができます
require 'ohai'
system_info = Ohai::System.new
system_info.all_plugins
system_info.provides_map.all_plugins.each do |plugin|
puts plugin.name
end
実行中の OS の表示
特定の情報はプラグインを使用しないでも取得することができます
OS の情報を取得したいだけであれば以下のようにして取得することができます
require 'ohai'
puts Ohai::Mixin::OS.collect_os
最後に
ohai を単体で使ってみました
リソースの使用量も取得できるので簡単な監視ツールとして使うことができると思います
chef だけを使っているとあまり ohai のことを気にすることはありませんが ohai の仕組みを知ることで chef も更に使えるようになると思います
0 件のコメント:
コメントを投稿