Parse ohai output with jq

Ohai is a tool which is used  by chef-client to obtain information about  the node’s platform detail, networking usage, memory usage, processor usage , kernel data , host names, fully qualified domain names and other configuration. It also has command line tool which displays the data in Json.

ohai  | head -4

{

"languages": {

"ruby": {

"platform": "x86_64-darwin12.2.0",

As you can see it shows system information in json format. But it’s a challenge to extract this information from Json in command line. I found this cool tool  jq, you can download it from this site; it’s written in C and there is no runtime dependency.  It allows you parse Json easily, for example:

ohai -l error | jq '.ipaddress'

"192.168.1.8"

ohai -l error | jq '.uptime_seconds'

80222

Note: you should  use ohai -l error when you are piping the output to jq, because sometimes ohai throws warnings, and that will make json parsing fail because of unformatted json.

I find this very useful rather then trying to use awk to parse the IP address or any other node information you can easily use ohai and jq to get that information.

Subscribe to Our Newsletter

Join our community of DevOps enthusiast - Get free tips, advice, and insights from our industry leading team of AWS experts.