data driven cookbooks 

TOPICS

  • Code vs data
  • Attributes
  • Node Object
  • Ohai
  • Precedence
  • Files vs Templates
  • ERB Syntax

Code          DATA

vs

  • one cookbook

dev

stage

prod

  • different 
    envionments
  • different 
    platforms

centos

ubuntu

bsd

Code          DATA

vs

  • Create generic cookbooks which can be

shared

reused

  • save tonnes of time

Code             |               DATA

Recipes

templates

system defined

user defined

attributes

attribute files
recipes
environments
roles
ohai

attributes

attributes

Node Object

node1

node2

noden

node1.json

node2.json

noden.json

attr

run_list

attr

run_list

attr

run_list

Chef Server

{
  "name": "ws.codespaces.io",
  "normal": {
    "tags": [

    ]
  },
  "automatic": {
    "languages": {
      "python": {
        "version": "2.7.6",
        "builddate": "Oct 26 2016, 20:30:19"
      },
      "nodejs": {
        "version": "0.10.48"
      },
      "perl": {
        "version": "5.18.2",
        "archname": "x86_64-linux-gnu-thread-multi"
      },
      "ruby": {
        "platform": "x86_64-linux",
        "version": "2.3.1",
        "release_date": "2016-04-26",
        "target": "x86_64-pc-linux-gnu",
        "target_cpu": "x86_64",
        "target_vendor": "pc",
        "target_os": "linux",
        "host": "x86_64-pc-linux-gnu",
        "host_cpu": "x86_64",
        "host_os": "linux-gnu",
        "host_vendor": "pc",
        "bin_dir": "/opt/chefdk/embedded/bin",
        "ruby_bin": "/opt/chefdk/embedded/bin/ruby",
        "gems_dir": "/opt/chefdk/embedded/lib/ruby/gems/2.3.0",
        "gem_bin": "/opt/chefdk/embedded/bin/gem"
      },
      "c": {
        "gcc": {
          "version": "4.8.4",
          "description": "gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) "
        }
      }
    },
    "network": {
      "interfaces": {
        "lo": {
          "mtu": "65536",
          "flags": [
            "LOOPBACK",
            "UP",
            "LOWER_UP"
          ],
          "encapsulation": "Loopback",
          "addresses": {
            "127.0.0.1": {
              "family": "inet",
              "prefixlen": "8",
              "netmask": "255.0.0.0",
              "scope": "Node"
            },
            "::1": {
              "family": "inet6",
              "prefixlen": "128",
              "scope": "Node",
              "tags": [

              ]
            }
          },
          "state": "unknown"
        },
        "eth0": {
          "type": "eth",
          "number": "0",
          "mtu": "1500",
          "flags": [
            "BROADCAST",
            "MULTICAST",
            "UP",
            "LOWER_UP"
          ],
          "encapsulation": "Ethernet",
          "addresses": {
            "22:0B:67:D7:23:84": {
              "family": "lladdr"
            },
            "138.197.106.113": {
              "family": "inet",
              "prefixlen": "20",
              "netmask": "255.255.240.0",
              "broadcast": "138.197.111.255",
              "scope": "Global"
            },
            "10.17.0.7": {
              "family": "inet",
              "prefixlen": "16",
              "netmask": "255.255.0.0",
              "scope": "Global"
            },
            "fe80::200b:67ff:fed7:2384": {
              "family": "inet6",
              "prefixlen": "64",
              "scope": "Link",
              "tags": [

              ]
            }
          },
          "state": "up",
          "arp": {
            "138.197.96.1": "00:00:5e:00:01:6e"
          },
          "routes": [
            {
              "destination": "default",
              "family": "inet",
              "via": "138.197.96.1"
            },
            {
              "destination": "10.17.0.0/16",
              "family": "inet",
              "scope": "link",
              "proto": "kernel",
              "src": "10.17.0.7"
            },
            {
              "destination": "138.197.96.0/20",
              "family": "inet",
              "scope": "link",
              "proto": "kernel",
              "src": "138.197.106.113"
            },
            {
              "destination": "fe80::/64",
              "family": "inet6",
              "metric": "256",
              "proto": "kernel"
            }
          ]
        },
        "eth1": {
          "type": "eth",
          "number": "1",
          "mtu": "1500",
          "flags": [
            "BROADCAST",
            "MULTICAST"
          ],
          "encapsulation": "Ethernet",
          "addresses": {
            "1A:2A:A2:A3:09:16": {
              "family": "lladdr"
            }
          },
          "state": "down"
        },
        "docker0": {
          "type": "docker",
          "number": "0",
          "mtu": "1500",
          "flags": [
            "BROADCAST",
            "MULTICAST",
            "UP",
            "LOWER_UP"
          ],
          "encapsulation": "Ethernet",
          "addresses": {
            "02:42:7A:D4:95:25": {
              "family": "lladdr"
            },
            "172.17.0.1": {
              "family": "inet",
              "prefixlen": "16",
              "netmask": "255.255.0.0",
              "scope": "Global"
            },
            "fe80::42:7aff:fed4:9525": {
              "family": "inet6",
              "prefixlen": "64",
              "scope": "Link",
              "tags": [

              ]
            }
          },
          "state": "up",
          "arp": {
            "172.17.0.2": "02:42:ac:11:00:02"
          },
          "routes": [
            {
              "destination": "172.17.0.0/16",
              "family": "inet",
              "scope": "link",
              "proto": "kernel",
              "src": "172.17.0.1"
            },
            {
              "destination": "fe80::/64",
              "family": "inet6",
              "metric": "256",
              "proto": "kernel"
            }
          ]
        },
        "docker_gwbridge": {
          "mtu": "1500",
          "flags": [
            "BROADCAST",
            "MULTICAST",
            "UP"
          ],
          "encapsulation": "Ethernet",
          "addresses": {
            "02:42:B4:16:BD:4B": {
              "family": "lladdr"
            },
            "172.18.0.1": {
              "family": "inet",
              "prefixlen": "16",
              "netmask": "255.255.0.0",
              "scope": "Global"
            }
          },
          "state": "down",
          "routes": [
            {
              "destination": "172.18.0.0/16",
              "family": "inet",
              "scope": "link",
              "proto": "kernel",
              "src": "172.18.0.1"
            }
          ]
        },
        "br-8c3ec6669e18": {
          "mtu": "1500",
          "flags": [
            "BROADCAST",
            "MULTICAST",
            "UP",
            "LOWER_UP"
          ],
          "encapsulation": "Ethernet",
          "addresses": {
            "02:42:C8:51:F8:98": {
              "family": "lladdr"
            },
            "172.0.101.1": {
              "family": "inet",
              "prefixlen": "24",
              "netmask": "255.255.255.0",
              "scope": "Global"
            },
            "fe80::42:c8ff:fe51:f898": {
              "family": "inet6",
              "prefixlen": "64",
              "scope": "Link",
              "tags": [

              ]
            }
          },
          "state": "up",
          "arp": {
            "172.0.101.12": "02:42:ac:00:65:0c",
            "172.0.101.11": "02:42:ac:00:65:0b",
            "172.0.101.10": "02:42:ac:00:65:0a",
            "172.0.101.13": "02:42:ac:00:65:0d"
          },
          "routes": [
            {
              "destination": "172.0.101.0/24",
              "family": "inet",
              "scope": "link",
              "proto": "kernel",
              "src": "172.0.101.1"
            },
            {
              "destination": "fe80::/64",
              "family": "inet6",
              "metric": "256",
              "proto": "kernel"
            }
          ]
        },
        "veth71e7a64": {
          "type": "veth71e7a6",
          "number": "4",
          "mtu": "1500",
          "flags": [
            "BROADCAST",
            "MULTICAST",
            "UP",
            "LOWER_UP"
          ],
          "encapsulation": "Ethernet",
          "addresses": {
            "6A:13:04:5D:AA:6E": {
              "family": "lladdr"
            },
            "fe80::6813:4ff:fe5d:aa6e": {
              "family": "inet6",
              "prefixlen": "64",
              "scope": "Link",
              "tags": [

              ]
            }
          },
          "state": "up",
          "routes": [
            {
              "destination": "fe80::/64",
              "family": "inet6",
              "metric": "256",
              "proto": "kernel"
            }
          ]
        },
        "vethc311335": {
          "type": "vethc31133",
          "number": "5",
          "mtu": "1500",
          "flags": [
            "BROADCAST",
            "MULTICAST",
            "UP",
            "LOWER_UP"
          ],
          "encapsulation": "Ethernet",
          "addresses": {
            "32:29:DD:1D:F5:E0": {
              "family": "lladdr"
            },
            "fe80::3029:ddff:fe1d:f5e0": {
              "family": "inet6",
              "prefixlen": "64",
              "scope": "Link",
              "tags": [

              ]
            }
          },
          "state": "up",
          "routes": [
            {
              "destination": "fe80::/64",
              "family": "inet6",
              "metric": "256",
              "proto": "kernel"
            }
          ]
        },
        "vethfc718df": {
          "type": "vethfc71",
          "number": "8df",
          "mtu": "1500",
          "flags": [
            "BROADCAST",
            "MULTICAST",
            "UP",
            "LOWER_UP"
          ],
          "encapsulation": "Ethernet",
          "addresses": {
            "6A:3C:4B:2E:BD:F8": {
              "family": "lladdr"
            },
            "fe80::683c:4bff:fe2e:bdf8": {
              "family": "inet6",
              "prefixlen": "64",
              "scope": "Link",
              "tags": [

              ]
            }
          },
          "state": "up",
          "routes": [
            {
              "destination": "fe80::/64",
              "family": "inet6",
              "metric": "256",
              "proto": "kernel"
            }
          ]
        },
        "vethb0d962e": {
          "type": "vethb0d96",
          "number": "2e",
          "mtu": "1500",
          "flags": [
            "BROADCAST",
            "MULTICAST",
            "UP",
            "LOWER_UP"
          ],
          "encapsulation": "Ethernet",
          "addresses": {
            "CE:DC:5A:2A:BA:1F": {
              "family": "lladdr"
            },
            "fe80::ccdc:5aff:fe2a:ba1f": {
              "family": "inet6",
              "prefixlen": "64",
              "scope": "Link",
              "tags": [

              ]
            }
          },
          "state": "up",
          "routes": [
            {
              "destination": "fe80::/64",
              "family": "inet6",
              "metric": "256",
              "proto": "kernel"
            }
          ]
        },
        "vetha536a6a": {
          "type": "vetha536a",
          "number": "6a",
          "mtu": "1500",
          "flags": [
            "BROADCAST",
            "MULTICAST",
            "UP",
            "LOWER_UP"
          ],
          "encapsulation": "Ethernet",
          "addresses": {
            "B6:0B:FB:F8:2D:B7": {
              "family": "lladdr"
            },
            "fe80::b40b:fbff:fef8:2db7": {
              "family": "inet6",
              "prefixlen": "64",
              "scope": "Link",
              "tags": [

              ]
            }
          },
          "state": "up",
          "routes": [
            {
              "destination": "fe80::/64",
              "family": "inet6",
              "metric": "256",
              "proto": "kernel"
            }
          ]
        }
      },
      "default_interface": "eth0",
      "default_gateway": "138.197.96.1"
    },
    "counters": {
      "network": {
        "interfaces": {
          "lo": {
            "tx": {
              "queuelen": "1",
              "bytes": "28772530",
              "packets": "322178",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            },
            "rx": {
              "bytes": "28772530",
              "packets": "322178",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            }
          },
          "eth0": {
            "tx": {
              "queuelen": "1000",
              "bytes": "225046503",
              "packets": "1017203",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            },
            "rx": {
              "bytes": "1383396988",
              "packets": "1321753",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            }
          },
          "eth1": {
            "tx": {
              "queuelen": "1000",
              "bytes": "0",
              "packets": "0",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            },
            "rx": {
              "bytes": "0",
              "packets": "0",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            }
          },
          "docker0": {
            "rx": {
              "bytes": "1731106",
              "packets": "25544",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            },
            "tx": {
              "bytes": "359918745",
              "packets": "56188",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            }
          },
          "docker_gwbridge": {
            "rx": {
              "bytes": "0",
              "packets": "0",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            },
            "tx": {
              "bytes": "0",
              "packets": "0",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            }
          },
          "br-8c3ec6669e18": {
            "rx": {
              "bytes": "33866402",
              "packets": "198607",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            },
            "tx": {
              "bytes": "484955076",
              "packets": "231778",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            }
          },
          "veth71e7a64": {
            "rx": {
              "bytes": "7540838",
              "packets": "102082",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            },
            "tx": {
              "bytes": "175916416",
              "packets": "194888",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            }
          },
          "vethc311335": {
            "rx": {
              "bytes": "23646779",
              "packets": "333002",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            },
            "tx": {
              "bytes": "19271339",
              "packets": "173867",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            }
          },
          "vethfc718df": {
            "rx": {
              "bytes": "7862",
              "packets": "61",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            },
            "tx": {
              "bytes": "16453",
              "packets": "163",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            }
          },
          "vethb0d962e": {
            "rx": {
              "bytes": "40795342",
              "packets": "262975",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            },
            "tx": {
              "bytes": "325122287",
              "packets": "362752",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            }
          },
          "vetha536a6a": {
            "rx": {
              "bytes": "962736",
              "packets": "12462",
              "errors": "0",
              "drop": "0",
              "overrun": "0"
            },
            "tx": {
              "bytes": "165530721",
              "packets": "26974",
              "errors": "0",
              "drop": "0",
              "carrier": "0",
              "collisions": "0"
            }
          }
        }
      }
    },
    "ipaddress": "138.197.106.113",
    "macaddress": "22:0B:67:D7:23:84",
    "lsb": {
      "id": "Ubuntu",
      "release": "14.04",
      "codename": "trusty",
      "description": "Ubuntu 14.04.5 LTS"
    },
    "kernel": {
      "name": "Linux",
      "release": "4.4.0-47-generic",
      "version": "#68~14.04.1-Ubuntu SMP Wed Oct 26 19:42:11 UTC 2016",
      "machine": "x86_64",
      "processor": "x86_64",
      "os": "GNU/Linux",
      "modules": {
        "xt_nat": {
          "size": "16384",
          "refcount": "23"
        },
        "xt_tcpudp": {
          "size": "16384",
          "refcount": "37"
        },
        "veth": {
          "size": "16384",
          "refcount": "0"
        },
        "ipt_MASQUERADE": {
          "size": "16384",
          "refcount": "10"
        },
        "nf_nat_masquerade_ipv4": {
          "size": "16384",
          "refcount": "1"
        },
        "xfrm_user": {
          "size": "32768",
          "refcount": "1"
        },
        "xfrm_algo": {
          "size": "16384",
          "refcount": "1"
        },
        "iptable_nat": {
          "size": "16384",
          "refcount": "5"
        },
        "nf_conntrack_ipv4": {
          "size": "16384",
          "refcount": "4"
        },
        "nf_defrag_ipv4": {
          "size": "16384",
          "refcount": "1"
        },
        "nf_nat_ipv4": {
          "size": "16384",
          "refcount": "1"
        },
        "xt_addrtype": {
          "size": "16384",
          "refcount": "2"
        },
        "iptable_filter": {
          "size": "16384",
          "refcount": "1"
        },
        "ip_tables": {
          "size": "24576",
          "refcount": "2"
        },
        "xt_conntrack": {
          "size": "16384",
          "refcount": "3"
        },
        "x_tables": {
          "size": "36864",
          "refcount": "7"
        },
        "nf_nat": {
          "size": "24576",
          "refcount": "3"
        },
        "nf_conntrack": {
          "size": "102400",
          "refcount": "5"
        },
        "br_netfilter": {
          "size": "24576",
          "refcount": "0"
        },
        "bridge": {
          "size": "126976",
          "refcount": "1",
          "version": "2.3"
        },
        "stp": {
          "size": "16384",
          "refcount": "1"
        },
        "llc": {
          "size": "16384",
          "refcount": "2"
        },
        "aufs": {
          "size": "212992",
          "refcount": "755",
          "version": "4.x-rcN-20160111"
        },
        "dm_crypt": {
          "size": "28672",
          "refcount": "0"
        },
        "ppdev": {
          "size": "20480",
          "refcount": "0"
        },
        "kvm_intel": {
          "size": "167936",
          "refcount": "0"
        },
        "kvm": {
          "size": "536576",
          "refcount": "1"
        },
        "irqbypass": {
          "size": "16384",
          "refcount": "1"
        },
        "joydev": {
          "size": "20480",
          "refcount": "0"
        },
        "input_leds": {
          "size": "16384",
          "refcount": "0"
        },
        "pvpanic": {
          "size": "16384",
          "refcount": "0"
        },
        "parport_pc": {
          "size": "36864",
          "refcount": "0"
        },
        "8250_fintek": {
          "size": "16384",
          "refcount": "0"
        },
        "i2c_piix4": {
          "size": "24576",
          "refcount": "0"
        },
        "serio_raw": {
          "size": "16384",
          "refcount": "0"
        },
        "mac_hid": {
          "size": "16384",
          "refcount": "0"
        },
        "lp": {
          "size": "20480",
          "refcount": "0"
        },
        "parport": {
          "size": "49152",
          "refcount": "3"
        },
        "crct10dif_pclmul": {
          "size": "16384",
          "refcount": "0"
        },
        "crc32_pclmul": {
          "size": "16384",
          "refcount": "0"
        },
        "aesni_intel": {
          "size": "167936",
          "refcount": "0"
        },
        "aes_x86_64": {
          "size": "20480",
          "refcount": "1"
        },
        "lrw": {
          "size": "16384",
          "refcount": "1"
        },
        "gf128mul": {
          "size": "16384",
          "refcount": "1"
        },
        "glue_helper": {
          "size": "16384",
          "refcount": "1"
        },
        "ablk_helper": {
          "size": "16384",
          "refcount": "1"
        },
        "cryptd": {
          "size": "20480",
          "refcount": "2"
        },
        "psmouse": {
          "size": "122880",
          "refcount": "0"
        },
        "qxl": {
          "size": "69632",
          "refcount": "1"
        },
        "ttm": {
          "size": "94208",
          "refcount": "1"
        },
        "virtio_scsi": {
          "size": "20480",
          "refcount": "0"
        },
        "drm_kms_helper": {
          "size": "151552",
          "refcount": "1"
        },
        "syscopyarea": {
          "size": "16384",
          "refcount": "1"
        },
        "sysfillrect": {
          "size": "16384",
          "refcount": "1"
        },
        "floppy": {
          "size": "73728",
          "refcount": "0"
        },
        "sysimgblt": {
          "size": "16384",
          "refcount": "1"
        },
        "fb_sys_fops": {
          "size": "16384",
          "refcount": "1"
        },
        "drm": {
          "size": "360448",
          "refcount": "4"
        },
        "pata_acpi": {
          "size": "16384",
          "refcount": "0",
          "version": "0.2.3"
        }
      }
    },
    "os": "linux",
    "os_version": "4.4.0-47-generic",
    "platform": "ubuntu",
    "platform_version": "14.04",
    "platform_family": "debian",
    "uptime_seconds": 423044,
    "uptime": "4 days 21 hours 30 minutes 44 seconds",
    "idletime_seconds": 833929,
    "idletime": "9 days 15 hours 38 minutes 49 seconds",
    "virtualization": {
      "systems": {
        "kvm": "guest",
        "docker": "guest"
      },
      "system": "docker",
      "role": "guest"
    },
    "ohai_time": 1492057543.65496,
    "hostname": "ws",
    "machinename": "ws.codespaces.io",
    "domain": null,
    "dmi": {

    },
    "etc": {
      "passwd": {
        "root": {
          "dir": "/root",
          "gid": 0,
          "uid": 0,
          "shell": "/bin/bash",
          "gecos": "root"
        },
        "daemon": {
          "dir": "/usr/sbin",
          "gid": 1,
          "uid": 1,
          "shell": "/usr/sbin/nologin",
          "gecos": "daemon"
        },
        "bin": {
          "dir": "/bin",
          "gid": 2,
          "uid": 2,
          "shell": "/usr/sbin/nologin",
          "gecos": "bin"
        },
        "sys": {
          "dir": "/dev",
          "gid": 3,
          "uid": 3,
          "shell": "/usr/sbin/nologin",
          "gecos": "sys"
        },
        "sync": {
          "dir": "/bin",
          "gid": 65534,
          "uid": 4,
          "shell": "/bin/sync",
          "gecos": "sync"
        },
        "games": {
          "dir": "/usr/games",
          "gid": 60,
          "uid": 5,
          "shell": "/usr/sbin/nologin",
          "gecos": "games"
        },
        "man": {
          "dir": "/var/cache/man",
          "gid": 12,
          "uid": 6,
          "shell": "/usr/sbin/nologin",
          "gecos": "man"
        },
        "lp": {
          "dir": "/var/spool/lpd",
          "gid": 7,
          "uid": 7,
          "shell": "/usr/sbin/nologin",
          "gecos": "lp"
        },
        "mail": {
          "dir": "/var/mail",
          "gid": 8,
          "uid": 8,
          "shell": "/usr/sbin/nologin",
          "gecos": "mail"
        },
        "news": {
          "dir": "/var/spool/news",
          "gid": 9,
          "uid": 9,
          "shell": "/usr/sbin/nologin",
          "gecos": "news"
        },
        "uucp": {
          "dir": "/var/spool/uucp",
          "gid": 10,
          "uid": 10,
          "shell": "/usr/sbin/nologin",
          "gecos": "uucp"
        },
        "proxy": {
          "dir": "/bin",
          "gid": 13,
          "uid": 13,
          "shell": "/usr/sbin/nologin",
          "gecos": "proxy"
        },
        "www-data": {
          "dir": "/var/www",
          "gid": 33,
          "uid": 33,
          "shell": "/usr/sbin/nologin",
          "gecos": "www-data"
        },
        "backup": {
          "dir": "/var/backups",
          "gid": 34,
          "uid": 34,
          "shell": "/usr/sbin/nologin",
          "gecos": "backup"
        },
        "list": {
          "dir": "/var/list",
          "gid": 38,
          "uid": 38,
          "shell": "/usr/sbin/nologin",
          "gecos": "Mailing List Manager"
        },
        "irc": {
          "dir": "/var/run/ircd",
          "gid": 39,
          "uid": 39,
          "shell": "/usr/sbin/nologin",
          "gecos": "ircd"
        },
        "gnats": {
          "dir": "/var/lib/gnats",
          "gid": 41,
          "uid": 41,
          "shell": "/usr/sbin/nologin",
          "gecos": "Gnats Bug-Reporting System (admin)"
        },
        "nobody": {
          "dir": "/nonexistent",
          "gid": 65534,
          "uid": 65534,
          "shell": "/usr/sbin/nologin",
          "gecos": "nobody"
        },
        "libuuid": {
          "dir": "/var/lib/libuuid",
          "gid": 101,
          "uid": 100,
          "shell": "",
          "gecos": ""
        },
        "syslog": {
          "dir": "/home/syslog",
          "gid": 104,
          "uid": 101,
          "shell": "/bin/false",
          "gecos": ""
        },
        "sshd": {
          "dir": "/var/run/sshd",
          "gid": 65534,
          "uid": 102,
          "shell": "/usr/sbin/nologin",
          "gecos": ""
        },
        "devops": {
          "dir": "/home/devops",
          "gid": 1000,
          "uid": 1000,
          "shell": "/bin/bash",
          "gecos": ""
        },
        "ntp": {
          "dir": "/home/ntp",
          "gid": 106,
          "uid": 103,
          "shell": "/bin/false",
          "gecos": ""
        },
        "deploy": {
          "dir": "/home/deploy",
          "gid": 5001,
          "uid": 5001,
          "shell": "",
          "gecos": ""
        }
      },
      "group": {
        "root": {
          "gid": 0,
          "members": [

          ]
        },
        "daemon": {
          "gid": 1,
          "members": [

          ]
        },
        "bin": {
          "gid": 2,
          "members": [

          ]
        },
        "sys": {
          "gid": 3,
          "members": [

          ]
        },
        "adm": {
          "gid": 4,
          "members": [
            "syslog"
          ]
        },
        "tty": {
          "gid": 5,
          "members": [

          ]
        },
        "disk": {
          "gid": 6,
          "members": [

          ]
        },
        "lp": {
          "gid": 7,
          "members": [

          ]
        },
        "mail": {
          "gid": 8,
          "members": [

          ]
        },
        "news": {
          "gid": 9,
          "members": [

          ]
        },
        "uucp": {
          "gid": 10,
          "members": [

          ]
        },
        "man": {
          "gid": 12,
          "members": [

          ]
        },
        "proxy": {
          "gid": 13,
          "members": [

          ]
        },
        "kmem": {
          "gid": 15,
          "members": [

          ]
        },
        "dialout": {
          "gid": 20,
          "members": [

          ]
        },
        "fax": {
          "gid": 21,
          "members": [

          ]
        },
        "voice": {
          "gid": 22,
          "members": [

          ]
        },
        "cdrom": {
          "gid": 24,
          "members": [

          ]
        },
        "floppy": {
          "gid": 25,
          "members": [

          ]
        },
        "tape": {
          "gid": 26,
          "members": [

          ]
        },
        "sudo": {
          "gid": 27,
          "members": [
            "devops"
          ]
        },
        "audio": {
          "gid": 29,
          "members": [

          ]
        },
        "dip": {
          "gid": 30,
          "members": [

          ]
        },
        "www-data": {
          "gid": 33,
          "members": [

          ]
        },
        "backup": {
          "gid": 34,
          "members": [

          ]
        },
        "operator": {
          "gid": 37,
          "members": [

          ]
        },
        "list": {
          "gid": 38,
          "members": [

          ]
        },
        "irc": {
          "gid": 39,
          "members": [

          ]
        },
        "src": {
          "gid": 40,
          "members": [

          ]
        },
        "gnats": {
          "gid": 41,
          "members": [

          ]
        },
        "shadow": {
          "gid": 42,
          "members": [

          ]
        },
        "utmp": {
          "gid": 43,
          "members": [

          ]
        },
        "video": {
          "gid": 44,
          "members": [

          ]
        },
        "sasl": {
          "gid": 45,
          "members": [

          ]
        },
        "plugdev": {
          "gid": 46,
          "members": [

          ]
        },
        "staff": {
          "gid": 50,
          "members": [

          ]
        },
        "games": {
          "gid": 60,
          "members": [

          ]
        },
        "users": {
          "gid": 100,
          "members": [

          ]
        },
        "nogroup": {
          "gid": 65534,
          "members": [

          ]
        },
        "libuuid": {
          "gid": 101,
          "members": [

          ]
        },
        "netdev": {
          "gid": 102,
          "members": [

          ]
        },
        "crontab": {
          "gid": 103,
          "members": [

          ]
        },
        "syslog": {
          "gid": 104,
          "members": [

          ]
        },
        "ssh": {
          "gid": 105,
          "members": [

          ]
        },
        "devops": {
          "gid": 1000,
          "members": [

          ]
        },
        "docker": {
          "gid": 999,
          "members": [

          ]
        },
        "ntp": {
          "gid": 106,
          "members": [

          ]
        },
        "deploy": {
          "gid": 5001,
          "members": [

          ]
        }
      }
    },
    "current_user": "root",
    "cloud_v2": null,
    "memory": {
      "swap": {
        "cached": "0kB",
        "total": "0kB",
        "free": "0kB"
      },
      "hugepages": {
        "total": "0",
        "free": "0",
        "reserved": "0",
        "surplus": "0"
      },
      "total": "2048536kB",
      "free": "79316kB",
      "buffers": "143756kB",
      "cached": "588216kB",
      "active": "1279364kB",
      "inactive": "315076kB",
      "dirty": "108kB",
      "writeback": "0kB",
      "anon_pages": "862476kB",
      "mapped": "59976kB",
      "slab": "340668kB",
      "slab_reclaimable": "262168kB",
      "slab_unreclaim": "78500kB",
      "page_tables": "8576kB",
      "nfs_unstable": "0kB",
      "bounce": "0kB",
      "commit_limit": "1024268kB",
      "committed_as": "2377568kB",
      "vmalloc_total": "34359738367kB",
      "vmalloc_used": "0kB",
      "vmalloc_chunk": "0kB",
      "hugepage_size": "2048kB"
    },
    "cpu": {
      "0": {
        "vendor_id": "GenuineIntel",
        "family": "6",
        "model": "63",
        "model_name": "Intel(R) Xeon(R) CPU E5-2650L v3 @ 1.80GHz",
        "stepping": "2",
        "mhz": "1799.998",
        "cache_size": "30720 KB",
        "physical_id": "0",
        "core_id": "0",
        "cores": "1",
        "flags": [
          "fpu",
          "vme",
          "de",
          "pse",
          "tsc",
          "msr",
          "pae",
          "mce",
          "cx8",
          "apic",
          "sep",
          "mtrr",
          "pge",
          "mca",
          "cmov",
          "pat",
          "pse36",
          "clflush",
          "mmx",
          "fxsr",
          "sse",
          "sse2",
          "ss",
          "syscall",
          "nx",
          "pdpe1gb",
          "rdtscp",
          "lm",
          "constant_tsc",
          "arch_perfmon",
          "rep_good",
          "nopl",
          "eagerfpu",
          "pni",
          "pclmulqdq",
          "vmx",
          "ssse3",
          "fma",
          "cx16",
          "pcid",
          "sse4_1",
          "sse4_2",
          "x2apic",
          "movbe",
          "popcnt",
          "tsc_deadline_timer",
          "aes",
          "xsave",
          "avx",
          "f16c",
          "rdrand",
          "hypervisor",
          "lahf_lm",
          "abm",
          "vnmi",
          "ept",
          "fsgsbase",
          "tsc_adjust",
          "bmi1",
          "avx2",
          "smep",
          "bmi2",
          "erms",
          "invpcid",
          "xsaveopt",
          "arat"
        ]
      },
      "1": {
        "vendor_id": "GenuineIntel",
        "family": "6",
        "model": "63",
        "model_name": "Intel(R) Xeon(R) CPU E5-2650L v3 @ 1.80GHz",
        "stepping": "2",
        "mhz": "1799.998",
        "cache_size": "30720 KB",
        "physical_id": "1",
        "core_id": "0",
        "cores": "1",
        "flags": [
          "fpu",
          "vme",
          "de",
          "pse",
          "tsc",
          "msr",
          "pae",
          "mce",
          "cx8",
          "apic",
          "sep",
          "mtrr",
          "pge",
          "mca",
          "cmov",
          "pat",
          "pse36",
          "clflush",
          "mmx",
          "fxsr",
          "sse",
          "sse2",
          "ss",
          "syscall",
          "nx",
          "pdpe1gb",
          "rdtscp",
          "lm",
          "constant_tsc",
          "arch_perfmon",
          "rep_good",
          "nopl",
          "eagerfpu",
          "pni",
          "pclmulqdq",
          "vmx",
          "ssse3",
          "fma",
          "cx16",
          "pcid",
          "sse4_1",
          "sse4_2",
          "x2apic",
          "movbe",
          "popcnt",
          "tsc_deadline_timer",
          "aes",
          "xsave",
          "avx",
          "f16c",
          "rdrand",
          "hypervisor",
          "lahf_lm",
          "abm",
          "vnmi",
          "ept",
          "fsgsbase",
          "tsc_adjust",
          "bmi1",
          "avx2",
          "smep",
          "bmi2",
          "erms",
          "invpcid",
          "xsaveopt",
          "arat"
        ]
      },
      "total": 2,
      "real": 2,
      "cores": 2
    },
    "ip6address": "fe80::42:7aff:fed4:9525",
    "chef_packages": {
      "chef": {
        "version": "12.16.42",
        "chef_root": "/opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/chef-12.16.42/lib"
      },
      "ohai": {
        "version": "8.21.0",
        "ohai_root": "/opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/ohai-8.21.0/lib/ohai"
      }
    },
    "shells": [
      "/bin/sh",
      "/bin/dash",
      "/bin/bash",
      "/bin/rbash"
    ],
    "hostnamectl": {

    },
    "block_device": {
      "vda": {
        "size": "83886080",
        "removable": "0",
        "vendor": "0x1af4",
        "rotational": "1",
        "physical_block_size": "512",
        "logical_block_size": "512"
      },
      "ram0": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram1": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram2": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram3": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram4": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram5": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram6": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram7": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram8": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram9": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "loop0": {
        "size": "0",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "512",
        "logical_block_size": "512"
      },
      "loop1": {
        "size": "0",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "512",
        "logical_block_size": "512"
      },
      "loop2": {
        "size": "0",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "512",
        "logical_block_size": "512"
      },
      "loop3": {
        "size": "0",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "512",
        "logical_block_size": "512"
      },
      "loop4": {
        "size": "0",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "512",
        "logical_block_size": "512"
      },
      "loop5": {
        "size": "0",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "512",
        "logical_block_size": "512"
      },
      "loop6": {
        "size": "0",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "512",
        "logical_block_size": "512"
      },
      "loop7": {
        "size": "0",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "512",
        "logical_block_size": "512"
      },
      "ram10": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram11": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram12": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram13": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram14": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      },
      "ram15": {
        "size": "131072",
        "removable": "0",
        "rotational": "1",
        "physical_block_size": "4096",
        "logical_block_size": "512"
      }
    },
    "fips": {
      "kernel": {
        "enabled": false
      }
    },
    "filesystem2": {
      "by_device": {
        "none": {
          "kb_size": "41154348",
          "kb_used": "7347740",
          "kb_available": "31911896",
          "percent_used": "19%",
          "total_inodes": "2611200",
          "inodes_used": "295875",
          "inodes_available": "2315325",
          "inodes_percent_used": "12%",
          "fs_type": "aufs",
          "mount_options": [
            "rw",
            "relatime",
            "si=afaf28d6628087a4",
            "dio",
            "dirperm1"
          ],
          "mounts": [
            "/"
          ]
        },
        "tmpfs": {
          "kb_size": "1024268",
          "kb_used": "0",
          "kb_available": "1024268",
          "percent_used": "0%",
          "total_inodes": "256067",
          "inodes_used": "1",
          "inodes_available": "256066",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ],
          "mounts": [
            "/dev",
            "/sys/fs/cgroup",
            "/run/docker.sock",
            "/sys/firmware",
            "/proc/kcore",
            "/proc/timer_list",
            "/proc/timer_stats",
            "/proc/sched_debug"
          ]
        },
        "/dev/vda1": {
          "kb_size": "41154348",
          "kb_used": "7347740",
          "kb_available": "31911896",
          "percent_used": "19%",
          "total_inodes": "2611200",
          "inodes_used": "295875",
          "inodes_available": "2315325",
          "inodes_percent_used": "12%",
          "fs_type": "ext4",
          "mount_options": [
            "rw",
            "noatime",
            "errors=remount-ro",
            "data=ordered"
          ],
          "mounts": [
            "/workspace",
            "/etc/resolv.conf",
            "/etc/hostname",
            "/etc/hosts"
          ]
        },
        "shm": {
          "kb_size": "65536",
          "kb_used": "0",
          "kb_available": "65536",
          "percent_used": "0%",
          "total_inodes": "256067",
          "inodes_used": "1",
          "inodes_available": "256066",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "size=65536k"
          ],
          "mounts": [
            "/dev/shm"
          ]
        },
        "proc": {
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "mounts": [
            "/proc",
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger"
          ]
        },
        "devpts": {
          "fs_type": "devpts",
          "mount_options": [
            "rw",
            "nosuid",
            "noexec",
            "relatime",
            "gid=5",
            "mode=620",
            "ptmxmode=666"
          ],
          "mounts": [
            "/dev/pts"
          ]
        },
        "sysfs": {
          "fs_type": "sysfs",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "mounts": [
            "/sys"
          ]
        },
        "cgroup": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "pids"
          ],
          "mounts": [
            "/sys/fs/cgroup/cpuset",
            "/sys/fs/cgroup/cpu",
            "/sys/fs/cgroup/cpuacct",
            "/sys/fs/cgroup/blkio",
            "/sys/fs/cgroup/memory",
            "/sys/fs/cgroup/devices",
            "/sys/fs/cgroup/freezer",
            "/sys/fs/cgroup/net_cls",
            "/sys/fs/cgroup/perf_event",
            "/sys/fs/cgroup/net_prio",
            "/sys/fs/cgroup/hugetlb",
            "/sys/fs/cgroup/pids"
          ]
        },
        "systemd": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "name=systemd"
          ],
          "mounts": [
            "/sys/fs/cgroup/systemd"
          ]
        },
        "mqueue": {
          "fs_type": "mqueue",
          "mount_options": [
            "rw",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "mounts": [
            "/dev/mqueue"
          ]
        },
        "vda": {

        },
        "vda1": {

        },
        "vda15": {

        }
      },
      "by_mountpoint": {
        "/": {
          "kb_size": "41154348",
          "kb_used": "7347740",
          "kb_available": "31911896",
          "percent_used": "19%",
          "total_inodes": "2611200",
          "inodes_used": "295875",
          "inodes_available": "2315325",
          "inodes_percent_used": "12%",
          "fs_type": "aufs",
          "mount_options": [
            "rw",
            "relatime",
            "si=afaf28d6628087a4",
            "dio",
            "dirperm1"
          ],
          "devices": [
            "none"
          ]
        },
        "/dev": {
          "kb_size": "1024268",
          "kb_used": "0",
          "kb_available": "1024268",
          "percent_used": "0%",
          "total_inodes": "256067",
          "inodes_used": "16",
          "inodes_available": "256051",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ],
          "devices": [
            "tmpfs"
          ]
        },
        "/sys/fs/cgroup": {
          "kb_size": "1024268",
          "kb_used": "0",
          "kb_available": "1024268",
          "percent_used": "0%",
          "total_inodes": "256067",
          "inodes_used": "14",
          "inodes_available": "256053",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "mode=755"
          ],
          "devices": [
            "tmpfs"
          ]
        },
        "/workspace": {
          "kb_size": "41154348",
          "kb_used": "7347740",
          "kb_available": "31911896",
          "percent_used": "19%",
          "total_inodes": "2611200",
          "inodes_used": "295875",
          "inodes_available": "2315325",
          "inodes_percent_used": "12%",
          "fs_type": "ext4",
          "mount_options": [
            "rw",
            "noatime",
            "errors=remount-ro",
            "data=ordered"
          ],
          "devices": [
            "/dev/vda1"
          ]
        },
        "/dev/shm": {
          "kb_size": "65536",
          "kb_used": "0",
          "kb_available": "65536",
          "percent_used": "0%",
          "total_inodes": "256067",
          "inodes_used": "1",
          "inodes_available": "256066",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "size=65536k"
          ],
          "devices": [
            "shm"
          ]
        },
        "/run/docker.sock": {
          "kb_size": "204856",
          "kb_used": "620",
          "kb_available": "204236",
          "percent_used": "1%",
          "total_inodes": "256067",
          "inodes_used": "519",
          "inodes_available": "255548",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "noexec",
            "relatime",
            "size=204856k",
            "mode=755"
          ],
          "devices": [
            "tmpfs"
          ]
        },
        "/sys/firmware": {
          "kb_size": "1024268",
          "kb_used": "0",
          "kb_available": "1024268",
          "percent_used": "0%",
          "total_inodes": "256067",
          "inodes_used": "1",
          "inodes_available": "256066",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "ro",
            "relatime"
          ],
          "devices": [
            "tmpfs"
          ]
        },
        "/proc": {
          "fs_type": "proc",
          "mount_options": [
            "rw",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "devices": [
            "proc"
          ]
        },
        "/dev/pts": {
          "fs_type": "devpts",
          "mount_options": [
            "rw",
            "nosuid",
            "noexec",
            "relatime",
            "gid=5",
            "mode=620",
            "ptmxmode=666"
          ],
          "devices": [
            "devpts"
          ]
        },
        "/sys": {
          "fs_type": "sysfs",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "devices": [
            "sysfs"
          ]
        },
        "/sys/fs/cgroup/cpuset": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "cpuset"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/cpu": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "cpu"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/cpuacct": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "cpuacct"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/blkio": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "blkio"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/memory": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "memory"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/devices": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "devices"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/freezer": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "freezer"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/net_cls": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "net_cls"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/perf_event": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "perf_event"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/net_prio": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "net_prio"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/hugetlb": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "hugetlb"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/pids": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "pids"
          ],
          "devices": [
            "cgroup"
          ]
        },
        "/sys/fs/cgroup/systemd": {
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "name=systemd"
          ],
          "devices": [
            "systemd"
          ]
        },
        "/dev/mqueue": {
          "fs_type": "mqueue",
          "mount_options": [
            "rw",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "devices": [
            "mqueue"
          ]
        },
        "/etc/resolv.conf": {
          "fs_type": "ext4",
          "mount_options": [
            "rw",
            "noatime",
            "errors=remount-ro",
            "data=ordered"
          ],
          "devices": [
            "/dev/vda1"
          ]
        },
        "/etc/hostname": {
          "fs_type": "ext4",
          "mount_options": [
            "rw",
            "noatime",
            "errors=remount-ro",
            "data=ordered"
          ],
          "devices": [
            "/dev/vda1"
          ]
        },
        "/etc/hosts": {
          "fs_type": "ext4",
          "mount_options": [
            "rw",
            "noatime",
            "errors=remount-ro",
            "data=ordered"
          ],
          "devices": [
            "/dev/vda1"
          ]
        },
        "/proc/bus": {
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "devices": [
            "proc"
          ]
        },
        "/proc/fs": {
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "devices": [
            "proc"
          ]
        },
        "/proc/irq": {
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "devices": [
            "proc"
          ]
        },
        "/proc/sys": {
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "devices": [
            "proc"
          ]
        },
        "/proc/sysrq-trigger": {
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ],
          "devices": [
            "proc"
          ]
        },
        "/proc/kcore": {
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ],
          "devices": [
            "tmpfs"
          ]
        },
        "/proc/timer_list": {
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ],
          "devices": [
            "tmpfs"
          ]
        },
        "/proc/timer_stats": {
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ],
          "devices": [
            "tmpfs"
          ]
        },
        "/proc/sched_debug": {
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ],
          "devices": [
            "tmpfs"
          ]
        }
      },
      "by_pair": {
        "none,/": {
          "device": "none",
          "kb_size": "41154348",
          "kb_used": "7347740",
          "kb_available": "31911896",
          "percent_used": "19%",
          "mount": "/",
          "total_inodes": "2611200",
          "inodes_used": "295875",
          "inodes_available": "2315325",
          "inodes_percent_used": "12%",
          "fs_type": "aufs",
          "mount_options": [
            "rw",
            "relatime",
            "si=afaf28d6628087a4",
            "dio",
            "dirperm1"
          ]
        },
        "tmpfs,/dev": {
          "device": "tmpfs",
          "kb_size": "1024268",
          "kb_used": "0",
          "kb_available": "1024268",
          "percent_used": "0%",
          "mount": "/dev",
          "total_inodes": "256067",
          "inodes_used": "16",
          "inodes_available": "256051",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ]
        },
        "tmpfs,/sys/fs/cgroup": {
          "device": "tmpfs",
          "kb_size": "1024268",
          "kb_used": "0",
          "kb_available": "1024268",
          "percent_used": "0%",
          "mount": "/sys/fs/cgroup",
          "total_inodes": "256067",
          "inodes_used": "14",
          "inodes_available": "256053",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "mode=755"
          ]
        },
        "/dev/vda1,/workspace": {
          "device": "/dev/vda1",
          "kb_size": "41154348",
          "kb_used": "7347740",
          "kb_available": "31911896",
          "percent_used": "19%",
          "mount": "/workspace",
          "total_inodes": "2611200",
          "inodes_used": "295875",
          "inodes_available": "2315325",
          "inodes_percent_used": "12%",
          "fs_type": "ext4",
          "mount_options": [
            "rw",
            "noatime",
            "errors=remount-ro",
            "data=ordered"
          ]
        },
        "shm,/dev/shm": {
          "device": "shm",
          "kb_size": "65536",
          "kb_used": "0",
          "kb_available": "65536",
          "percent_used": "0%",
          "mount": "/dev/shm",
          "total_inodes": "256067",
          "inodes_used": "1",
          "inodes_available": "256066",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "size=65536k"
          ]
        },
        "tmpfs,/run/docker.sock": {
          "device": "tmpfs",
          "kb_size": "204856",
          "kb_used": "620",
          "kb_available": "204236",
          "percent_used": "1%",
          "mount": "/run/docker.sock",
          "total_inodes": "256067",
          "inodes_used": "519",
          "inodes_available": "255548",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "noexec",
            "relatime",
            "size=204856k",
            "mode=755"
          ]
        },
        "tmpfs,/sys/firmware": {
          "device": "tmpfs",
          "kb_size": "1024268",
          "kb_used": "0",
          "kb_available": "1024268",
          "percent_used": "0%",
          "mount": "/sys/firmware",
          "total_inodes": "256067",
          "inodes_used": "1",
          "inodes_available": "256066",
          "inodes_percent_used": "1%",
          "fs_type": "tmpfs",
          "mount_options": [
            "ro",
            "relatime"
          ]
        },
        "proc,/proc": {
          "device": "proc",
          "mount": "/proc",
          "fs_type": "proc",
          "mount_options": [
            "rw",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ]
        },
        "devpts,/dev/pts": {
          "device": "devpts",
          "mount": "/dev/pts",
          "fs_type": "devpts",
          "mount_options": [
            "rw",
            "nosuid",
            "noexec",
            "relatime",
            "gid=5",
            "mode=620",
            "ptmxmode=666"
          ]
        },
        "sysfs,/sys": {
          "device": "sysfs",
          "mount": "/sys",
          "fs_type": "sysfs",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ]
        },
        "cgroup,/sys/fs/cgroup/cpuset": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/cpuset",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "cpuset"
          ]
        },
        "cgroup,/sys/fs/cgroup/cpu": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/cpu",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "cpu"
          ]
        },
        "cgroup,/sys/fs/cgroup/cpuacct": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/cpuacct",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "cpuacct"
          ]
        },
        "cgroup,/sys/fs/cgroup/blkio": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/blkio",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "blkio"
          ]
        },
        "cgroup,/sys/fs/cgroup/memory": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/memory",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "memory"
          ]
        },
        "cgroup,/sys/fs/cgroup/devices": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/devices",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "devices"
          ]
        },
        "cgroup,/sys/fs/cgroup/freezer": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/freezer",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "freezer"
          ]
        },
        "cgroup,/sys/fs/cgroup/net_cls": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/net_cls",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "net_cls"
          ]
        },
        "cgroup,/sys/fs/cgroup/perf_event": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/perf_event",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "perf_event"
          ]
        },
        "cgroup,/sys/fs/cgroup/net_prio": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/net_prio",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "net_prio"
          ]
        },
        "cgroup,/sys/fs/cgroup/hugetlb": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/hugetlb",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "hugetlb"
          ]
        },
        "cgroup,/sys/fs/cgroup/pids": {
          "device": "cgroup",
          "mount": "/sys/fs/cgroup/pids",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "pids"
          ]
        },
        "systemd,/sys/fs/cgroup/systemd": {
          "device": "systemd",
          "mount": "/sys/fs/cgroup/systemd",
          "fs_type": "cgroup",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime",
            "name=systemd"
          ]
        },
        "mqueue,/dev/mqueue": {
          "device": "mqueue",
          "mount": "/dev/mqueue",
          "fs_type": "mqueue",
          "mount_options": [
            "rw",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ]
        },
        "/dev/vda1,/etc/resolv.conf": {
          "device": "/dev/vda1",
          "mount": "/etc/resolv.conf",
          "fs_type": "ext4",
          "mount_options": [
            "rw",
            "noatime",
            "errors=remount-ro",
            "data=ordered"
          ]
        },
        "/dev/vda1,/etc/hostname": {
          "device": "/dev/vda1",
          "mount": "/etc/hostname",
          "fs_type": "ext4",
          "mount_options": [
            "rw",
            "noatime",
            "errors=remount-ro",
            "data=ordered"
          ]
        },
        "/dev/vda1,/etc/hosts": {
          "device": "/dev/vda1",
          "mount": "/etc/hosts",
          "fs_type": "ext4",
          "mount_options": [
            "rw",
            "noatime",
            "errors=remount-ro",
            "data=ordered"
          ]
        },
        "proc,/proc/bus": {
          "device": "proc",
          "mount": "/proc/bus",
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ]
        },
        "proc,/proc/fs": {
          "device": "proc",
          "mount": "/proc/fs",
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ]
        },
        "proc,/proc/irq": {
          "device": "proc",
          "mount": "/proc/irq",
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ]
        },
        "proc,/proc/sys": {
          "device": "proc",
          "mount": "/proc/sys",
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ]
        },
        "proc,/proc/sysrq-trigger": {
          "device": "proc",
          "mount": "/proc/sysrq-trigger",
          "fs_type": "proc",
          "mount_options": [
            "ro",
            "nosuid",
            "nodev",
            "noexec",
            "relatime"
          ]
        },
        "tmpfs,/proc/kcore": {
          "device": "tmpfs",
          "mount": "/proc/kcore",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ]
        },
        "tmpfs,/proc/timer_list": {
          "device": "tmpfs",
          "mount": "/proc/timer_list",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ]
        },
        "tmpfs,/proc/timer_stats": {
          "device": "tmpfs",
          "mount": "/proc/timer_stats",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ]
        },
        "tmpfs,/proc/sched_debug": {
          "device": "tmpfs",
          "mount": "/proc/sched_debug",
          "fs_type": "tmpfs",
          "mount_options": [
            "rw",
            "nosuid",
            "mode=755"
          ]
        },
        "vda,": {
          "device": "vda"
        },
        "vda1,": {
          "device": "vda1"
        },
        "vda15,": {
          "device": "vda15"
        }
      }
    },
    "filesystem": {
      "none": {
        "kb_size": "41154348",
        "kb_used": "7347740",
        "kb_available": "31911896",
        "percent_used": "19%",
        "mount": "/",
        "total_inodes": "2611200",
        "inodes_used": "295875",
        "inodes_available": "2315325",
        "inodes_percent_used": "12%",
        "fs_type": "aufs",
        "mount_options": [
          "rw",
          "relatime",
          "si=afaf28d6628087a4",
          "dio",
          "dirperm1"
        ]
      },
      "tmpfs": {
        "kb_size": "1024268",
        "kb_used": "0",
        "kb_available": "1024268",
        "percent_used": "0%",
        "mount": "/sys/firmware",
        "total_inodes": "256067",
        "inodes_used": "1",
        "inodes_available": "256066",
        "inodes_percent_used": "1%",
        "fs_type": "tmpfs",
        "mount_options": [
          "ro",
          "relatime"
        ]
      },
      "/dev/vda1": {
        "kb_size": "41154348",
        "kb_used": "7347740",
        "kb_available": "31911896",
        "percent_used": "19%",
        "mount": "/etc/hosts",
        "total_inodes": "2611200",
        "inodes_used": "295875",
        "inodes_available": "2315325",
        "inodes_percent_used": "12%",
        "fs_type": "ext4",
        "mount_options": [
          "rw",
          "noatime",
          "errors=remount-ro",
          "data=ordered"
        ]
      },
      "shm": {
        "kb_size": "65536",
        "kb_used": "0",
        "kb_available": "65536",
        "percent_used": "0%",
        "mount": "/dev/shm",
        "total_inodes": "256067",
        "inodes_used": "1",
        "inodes_available": "256066",
        "inodes_percent_used": "1%",
        "fs_type": "tmpfs",
        "mount_options": [
          "rw",
          "nosuid",
          "nodev",
          "noexec",
          "relatime",
          "size=65536k"
        ]
      },
      "proc": {
        "mount": "/proc/sysrq-trigger",
        "fs_type": "proc",
        "mount_options": [
          "ro",
          "nosuid",
          "nodev",
          "noexec",
          "relatime"
        ]
      },
      "devpts": {
        "mount": "/dev/pts",
        "fs_type": "devpts",
        "mount_options": [
          "rw",
          "nosuid",
          "noexec",
          "relatime",
          "gid=5",
          "mode=620",
          "ptmxmode=666"
        ]
      },
      "sysfs": {
        "mount": "/sys",
        "fs_type": "sysfs",
        "mount_options": [
          "ro",
          "nosuid",
          "nodev",
          "noexec",
          "relatime"
        ]
      },
      "cgroup": {
        "mount": "/sys/fs/cgroup/pids",
        "fs_type": "cgroup",
        "mount_options": [
          "ro",
          "nosuid",
          "nodev",
          "noexec",
          "relatime",
          "pids"
        ]
      },
      "systemd": {
        "mount": "/sys/fs/cgroup/systemd",
        "fs_type": "cgroup",
        "mount_options": [
          "ro",
          "nosuid",
          "nodev",
          "noexec",
          "relatime",
          "name=systemd"
        ]
      },
      "mqueue": {
        "mount": "/dev/mqueue",
        "fs_type": "mqueue",
        "mount_options": [
          "rw",
          "nosuid",
          "nodev",
          "noexec",
          "relatime"
        ]
      }
    },
    "init_package": "sh",
    "command": {
      "ps": "ps -ef"
    },
    "packages": {
      "adduser": {
        "version": "3.113+nmu3ubuntu3",
        "arch": "all"
      },
      "apparmor": {
        "version": "2.10.95-0ubuntu2.5~14.04.1",
        "arch": "amd64"
      },
      "apt": {
        "version": "1.0.1ubuntu2.17",
        "arch": "amd64"
      },
      "apt-transport-https": {
        "version": "1.0.1ubuntu2.17",
        "arch": "amd64"
      },
      "apt-utils": {
        "version": "1.0.1ubuntu2.17",
        "arch": "amd64"
      },
      "aufs-tools": {
        "version": "1:3.2+20130722-1.1",
        "arch": "amd64"
      },
      "base-files": {
        "version": "7.2ubuntu5.5",
        "arch": "amd64"
      },
      "base-passwd": {
        "version": "3.5.33",
        "arch": "amd64"
      },
      "bash": {
        "version": "4.3-7ubuntu1.5",
        "arch": "amd64"
      },
      "binutils": {
        "version": "2.24-5ubuntu14.1",
        "arch": "amd64"
      },
      "bsdutils": {
        "version": "1:2.20.1-5.1ubuntu20.9",
        "arch": "amd64"
      },
      "busybox-initramfs": {
        "version": "1:1.21.0-1ubuntu1",
        "arch": "amd64"
      },
      "bzip2": {
        "version": "1.0.6-5",
        "arch": "amd64"
      },
      "ca-certificates": {
        "version": "20160104ubuntu0.14.04.1",
        "arch": "all"
      },
      "cgroup-lite": {
        "version": "1.9",
        "arch": "all"
      },
      "chefdk": {
        "version": "1.0.3-1",
        "arch": "amd64"
      },
      "console-setup": {
        "version": "1.70ubuntu8",
        "arch": "all"
      },
      "coreutils": {
        "version": "8.21-1ubuntu5.4",
        "arch": "amd64"
      },
      "cpio": {
        "version": "2.11+dfsg-1ubuntu1.2",
        "arch": "amd64"
      },
      "cpp": {
        "version": "4:4.8.2-1ubuntu6",
        "arch": "amd64"
      },
      "cpp-4.8": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "cron": {
        "version": "3.0pl1-124ubuntu2",
        "arch": "amd64"
      },
      "curl": {
        "version": "7.35.0-1ubuntu2.10",
        "arch": "amd64"
      },
      "dash": {
        "version": "0.5.7-4ubuntu1",
        "arch": "amd64"
      },
      "debconf": {
        "version": "1.5.51ubuntu2",
        "arch": "all"
      },
      "debconf-i18n": {
        "version": "1.5.51ubuntu2",
        "arch": "all"
      },
      "debianutils": {
        "version": "4.4",
        "arch": "amd64"
      },
      "dh-python": {
        "version": "1.20140128-1ubuntu8.2",
        "arch": "all"
      },
      "diffutils": {
        "version": "1:3.3-1",
        "arch": "amd64"
      },
      "dmsetup": {
        "version": "2:1.02.77-6ubuntu2",
        "arch": "amd64"
      },
      "docker-engine": {
        "version": "1.13.1-0~ubuntu-trusty",
        "arch": "amd64"
      },
      "dpkg": {
        "version": "1.17.5ubuntu5.7",
        "arch": "amd64"
      },
      "e2fslibs": {
        "version": "1.42.9-3ubuntu1.3",
        "arch": "amd64"
      },
      "e2fsprogs": {
        "version": "1.42.9-3ubuntu1.3",
        "arch": "amd64"
      },
      "eject": {
        "version": "2.1.5+deb1+cvs20081104-13.1",
        "arch": "amd64"
      },
      "file": {
        "version": "1:5.14-2ubuntu3.3",
        "arch": "amd64"
      },
      "findutils": {
        "version": "4.4.2-7",
        "arch": "amd64"
      },
      "g++": {
        "version": "4:4.8.2-1ubuntu6",
        "arch": "amd64"
      },
      "g++-4.8": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "gcc": {
        "version": "4:4.8.2-1ubuntu6",
        "arch": "amd64"
      },
      "gcc-4.8": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "gcc-4.8-base": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "gcc-4.9-base": {
        "version": "4.9.3-0ubuntu4",
        "arch": "amd64"
      },
      "git": {
        "version": "1:1.9.1-1ubuntu0.3",
        "arch": "amd64"
      },
      "git-man": {
        "version": "1:1.9.1-1ubuntu0.3",
        "arch": "all"
      },
      "gnupg": {
        "version": "1.4.16-1ubuntu2.4",
        "arch": "amd64"
      },
      "gpgv": {
        "version": "1.4.16-1ubuntu2.4",
        "arch": "amd64"
      },
      "grep": {
        "version": "2.16-1",
        "arch": "amd64"
      },
      "gzip": {
        "version": "1.6-3ubuntu1",
        "arch": "amd64"
      },
      "hostname": {
        "version": "3.15ubuntu1",
        "arch": "amd64"
      },
      "ifupdown": {
        "version": "0.7.47.2ubuntu4.4",
        "arch": "amd64"
      },
      "init-system-helpers": {
        "version": "1.14ubuntu1",
        "arch": "all"
      },
      "initramfs-tools": {
        "version": "0.103ubuntu4.6",
        "arch": "all"
      },
      "initramfs-tools-bin": {
        "version": "0.103ubuntu4.6",
        "arch": "amd64"
      },
      "initscripts": {
        "version": "2.88dsf-41ubuntu6.3",
        "arch": "amd64"
      },
      "insserv": {
        "version": "1.14.0-5ubuntu2",
        "arch": "amd64"
      },
      "iproute2": {
        "version": "3.12.0-2ubuntu1",
        "arch": "amd64"
      },
      "iptables": {
        "version": "1.4.21-1ubuntu1",
        "arch": "amd64"
      },
      "iputils-ping": {
        "version": "3:20121221-4ubuntu1.1",
        "arch": "amd64"
      },
      "isc-dhcp-client": {
        "version": "4.2.4-7ubuntu12.8",
        "arch": "amd64"
      },
      "isc-dhcp-common": {
        "version": "4.2.4-7ubuntu12.8",
        "arch": "amd64"
      },
      "kbd": {
        "version": "1.15.5-1ubuntu1",
        "arch": "amd64"
      },
      "keyboard-configuration": {
        "version": "1.70ubuntu8",
        "arch": "all"
      },
      "klibc-utils": {
        "version": "2.0.3-0ubuntu1.14.04.2",
        "arch": "amd64"
      },
      "kmod": {
        "version": "15-0ubuntu6",
        "arch": "amd64"
      },
      "krb5-locales": {
        "version": "1.12+dfsg-2ubuntu5.3",
        "arch": "all"
      },
      "less": {
        "version": "458-2",
        "arch": "amd64"
      },
      "libacl1": {
        "version": "2.2.52-1",
        "arch": "amd64"
      },
      "libapparmor-perl": {
        "version": "2.10.95-0ubuntu2.5~14.04.1",
        "arch": "amd64"
      },
      "libapparmor1": {
        "version": "2.10.95-0ubuntu2.5~14.04.1",
        "arch": "amd64"
      },
      "libapt-inst1.5": {
        "version": "1.0.1ubuntu2.17",
        "arch": "amd64"
      },
      "libapt-pkg4.12": {
        "version": "1.0.1ubuntu2.17",
        "arch": "amd64"
      },
      "libarchive-extract-perl": {
        "version": "0.70-1",
        "arch": "all"
      },
      "libasan0": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "libasn1-8-heimdal": {
        "version": "1.6~git20131207+dfsg-1ubuntu1.1",
        "arch": "amd64"
      },
      "libatomic1": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "libattr1": {
        "version": "1:2.4.47-1ubuntu1",
        "arch": "amd64"
      },
      "libaudit-common": {
        "version": "1:2.3.2-2ubuntu1",
        "arch": "all"
      },
      "libaudit1": {
        "version": "1:2.3.2-2ubuntu1",
        "arch": "amd64"
      },
      "libblkid1": {
        "version": "2.20.1-5.1ubuntu20.9",
        "arch": "amd64"
      },
      "libbsd0": {
        "version": "0.6.0-2ubuntu1",
        "arch": "amd64"
      },
      "libbz2-1.0": {
        "version": "1.0.6-5",
        "arch": "amd64"
      },
      "libc-bin": {
        "version": "2.19-0ubuntu6.9",
        "arch": "amd64"
      },
      "libc-dev-bin": {
        "version": "2.19-0ubuntu6.9",
        "arch": "amd64"
      },
      "libc6": {
        "version": "2.19-0ubuntu6.9",
        "arch": "amd64"
      },
      "libc6-dev": {
        "version": "2.19-0ubuntu6.9",
        "arch": "amd64"
      },
      "libcap2": {
        "version": "1:2.24-0ubuntu2",
        "arch": "amd64"
      },
      "libcap2-bin": {
        "version": "1:2.24-0ubuntu2",
        "arch": "amd64"
      },
      "libcgmanager0": {
        "version": "0.24-0ubuntu7.5",
        "arch": "amd64"
      },
      "libck-connector0": {
        "version": "0.4.5-3.1ubuntu2",
        "arch": "amd64"
      },
      "libcloog-isl4": {
        "version": "0.18.2-1",
        "arch": "amd64"
      },
      "libcomerr2": {
        "version": "1.42.9-3ubuntu1.3",
        "arch": "amd64"
      },
      "libcurl3": {
        "version": "7.35.0-1ubuntu2.10",
        "arch": "amd64"
      },
      "libcurl3-gnutls": {
        "version": "7.35.0-1ubuntu2.10",
        "arch": "amd64"
      },
      "libdb5.3": {
        "version": "5.3.28-3ubuntu3",
        "arch": "amd64"
      },
      "libdbus-1-3": {
        "version": "1.6.18-0ubuntu4.5",
        "arch": "amd64"
      },
      "libdebconfclient0": {
        "version": "0.187ubuntu1",
        "arch": "amd64"
      },
      "libdevmapper1.02.1": {
        "version": "2:1.02.77-6ubuntu2",
        "arch": "amd64"
      },
      "libdrm2": {
        "version": "2.4.67-1ubuntu0.14.04.1",
        "arch": "amd64"
      },
      "libedit2": {
        "version": "3.1-20130712-2",
        "arch": "amd64"
      },
      "liberror-perl": {
        "version": "0.17-1.1",
        "arch": "all"
      },
      "libestr0": {
        "version": "0.1.9-0ubuntu2",
        "arch": "amd64"
      },
      "libexpat1": {
        "version": "2.1.0-4ubuntu1.3",
        "arch": "amd64"
      },
      "libffi6": {
        "version": "3.1~rc1+r3.0.13-12ubuntu0.1",
        "arch": "amd64"
      },
      "libfribidi0": {
        "version": "0.19.6-1",
        "arch": "amd64"
      },
      "libgcc-4.8-dev": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "libgcc1": {
        "version": "1:4.9.3-0ubuntu4",
        "arch": "amd64"
      },
      "libgcrypt11": {
        "version": "1.5.3-2ubuntu4.4",
        "arch": "amd64"
      },
      "libgdbm3": {
        "version": "1.8.3-12build1",
        "arch": "amd64"
      },
      "libgmp10": {
        "version": "2:5.1.3+dfsg-1ubuntu1",
        "arch": "amd64"
      },
      "libgnutls-openssl27": {
        "version": "2.12.23-12ubuntu2.5",
        "arch": "amd64"
      },
      "libgnutls26": {
        "version": "2.12.23-12ubuntu2.5",
        "arch": "amd64"
      },
      "libgomp1": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "libgpg-error0": {
        "version": "1.12-0.2ubuntu1",
        "arch": "amd64"
      },
      "libgpm2": {
        "version": "1.20.4-6.1",
        "arch": "amd64"
      },
      "libgssapi-krb5-2": {
        "version": "1.12+dfsg-2ubuntu5.3",
        "arch": "amd64"
      },
      "libgssapi3-heimdal": {
        "version": "1.6~git20131207+dfsg-1ubuntu1.1",
        "arch": "amd64"
      },
      "libhcrypto4-heimdal": {
        "version": "1.6~git20131207+dfsg-1ubuntu1.1",
        "arch": "amd64"
      },
      "libheimbase1-heimdal": {
        "version": "1.6~git20131207+dfsg-1ubuntu1.1",
        "arch": "amd64"
      },
      "libheimntlm0-heimdal": {
        "version": "1.6~git20131207+dfsg-1ubuntu1.1",
        "arch": "amd64"
      },
      "libhx509-5-heimdal": {
        "version": "1.6~git20131207+dfsg-1ubuntu1.1",
        "arch": "amd64"
      },
      "libidn11": {
        "version": "1.28-1ubuntu2.1",
        "arch": "amd64"
      },
      "libisl10": {
        "version": "0.12.2-1",
        "arch": "amd64"
      },
      "libitm1": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "libjson-c2": {
        "version": "0.11-3ubuntu1.2",
        "arch": "amd64"
      },
      "libjson0": {
        "version": "0.11-3ubuntu1.2",
        "arch": "amd64"
      },
      "libk5crypto3": {
        "version": "1.12+dfsg-2ubuntu5.3",
        "arch": "amd64"
      },
      "libkeyutils1": {
        "version": "1.5.6-1",
        "arch": "amd64"
      },
      "libklibc": {
        "version": "2.0.3-0ubuntu1.14.04.2",
        "arch": "amd64"
      },
      "libkmod2": {
        "version": "15-0ubuntu6",
        "arch": "amd64"
      },
      "libkrb5-26-heimdal": {
        "version": "1.6~git20131207+dfsg-1ubuntu1.1",
        "arch": "amd64"
      },
      "libkrb5-3": {
        "version": "1.12+dfsg-2ubuntu5.3",
        "arch": "amd64"
      },
      "libkrb5support0": {
        "version": "1.12+dfsg-2ubuntu5.3",
        "arch": "amd64"
      },
      "libldap-2.4-2": {
        "version": "2.4.31-1+nmu2ubuntu8.3",
        "arch": "amd64"
      },
      "liblocale-gettext-perl": {
        "version": "1.05-7build3",
        "arch": "amd64"
      },
      "liblockfile-bin": {
        "version": "1.09-6ubuntu1",
        "arch": "amd64"
      },
      "liblockfile1": {
        "version": "1.09-6ubuntu1",
        "arch": "amd64"
      },
      "liblog-message-simple-perl": {
        "version": "0.10-1",
        "arch": "all"
      },
      "libltdl7": {
        "version": "2.4.2-1.7ubuntu1",
        "arch": "amd64"
      },
      "liblzma5": {
        "version": "5.1.1alpha+20120614-2ubuntu2",
        "arch": "amd64"
      },
      "libmagic1": {
        "version": "1:5.14-2ubuntu3.3",
        "arch": "amd64"
      },
      "libmodule-pluggable-perl": {
        "version": "5.1-1",
        "arch": "all"
      },
      "libmount1": {
        "version": "2.20.1-5.1ubuntu20.9",
        "arch": "amd64"
      },
      "libmpc3": {
        "version": "1.0.1-1ubuntu1",
        "arch": "amd64"
      },
      "libmpdec2": {
        "version": "2.4.0-6",
        "arch": "amd64"
      },
      "libmpfr4": {
        "version": "3.1.2-1",
        "arch": "amd64"
      },
      "libncurses5": {
        "version": "5.9+20140118-1ubuntu1",
        "arch": "amd64"
      },
      "libncursesw5": {
        "version": "5.9+20140118-1ubuntu1",
        "arch": "amd64"
      },
      "libnewt0.52": {
        "version": "0.52.15-2ubuntu5",
        "arch": "amd64"
      },
      "libnfnetlink0": {
        "version": "1.0.1-2",
        "arch": "amd64"
      },
      "libnih-dbus1": {
        "version": "1.0.3-4ubuntu25",
        "arch": "amd64"
      },
      "libnih1": {
        "version": "1.0.3-4ubuntu25",
        "arch": "amd64"
      },
      "libopts25": {
        "version": "1:5.18-2ubuntu2",
        "arch": "amd64"
      },
      "libp11-kit0": {
        "version": "0.20.2-2ubuntu2",
        "arch": "amd64"
      },
      "libpam-cap": {
        "version": "1:2.24-0ubuntu2",
        "arch": "amd64"
      },
      "libpam-modules": {
        "version": "1.1.8-1ubuntu2.2",
        "arch": "amd64"
      },
      "libpam-modules-bin": {
        "version": "1.1.8-1ubuntu2.2",
        "arch": "amd64"
      },
      "libpam-runtime": {
        "version": "1.1.8-1ubuntu2.2",
        "arch": "all"
      },
      "libpam0g": {
        "version": "1.1.8-1ubuntu2.2",
        "arch": "amd64"
      },
      "libpcre3": {
        "version": "1:8.31-2ubuntu2.3",
        "arch": "amd64"
      },
      "libplymouth2": {
        "version": "0.8.8-0ubuntu17.1",
        "arch": "amd64"
      },
      "libpng12-0": {
        "version": "1.2.50-1ubuntu2.14.04.2",
        "arch": "amd64"
      },
      "libpod-latex-perl": {
        "version": "0.61-1",
        "arch": "all"
      },
      "libpopt0": {
        "version": "1.16-8ubuntu1",
        "arch": "amd64"
      },
      "libprocps3": {
        "version": "1:3.3.9-1ubuntu2.2",
        "arch": "amd64"
      },
      "libpython-stdlib": {
        "version": "2.7.5-5ubuntu3",
        "arch": "amd64"
      },
      "libpython2.7": {
        "version": "2.7.6-8ubuntu0.3",
        "arch": "amd64"
      },
      "libpython2.7-minimal": {
        "version": "2.7.6-8ubuntu0.3",
        "arch": "amd64"
      },
      "libpython2.7-stdlib": {
        "version": "2.7.6-8ubuntu0.3",
        "arch": "amd64"
      },
      "libpython3-stdlib": {
        "version": "3.4.0-0ubuntu2",
        "arch": "amd64"
      },
      "libpython3.4-minimal": {
        "version": "3.4.3-1ubuntu1~14.04.5",
        "arch": "amd64"
      },
      "libpython3.4-stdlib": {
        "version": "3.4.3-1ubuntu1~14.04.5",
        "arch": "amd64"
      },
      "libquadmath0": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "libreadline6": {
        "version": "6.3-4ubuntu2",
        "arch": "amd64"
      },
      "libroken18-heimdal": {
        "version": "1.6~git20131207+dfsg-1ubuntu1.1",
        "arch": "amd64"
      },
      "librtmp0": {
        "version": "2.4+20121230.gitdf6c518-1",
        "arch": "amd64"
      },
      "libsasl2-2": {
        "version": "2.1.25.dfsg1-17build1",
        "arch": "amd64"
      },
      "libsasl2-modules": {
        "version": "2.1.25.dfsg1-17build1",
        "arch": "amd64"
      },
      "libsasl2-modules-db": {
        "version": "2.1.25.dfsg1-17build1",
        "arch": "amd64"
      },
      "libselinux1": {
        "version": "2.2.2-1ubuntu0.1",
        "arch": "amd64"
      },
      "libsemanage-common": {
        "version": "2.2-1",
        "arch": "all"
      },
      "libsemanage1": {
        "version": "2.2-1",
        "arch": "amd64"
      },
      "libsepol1": {
        "version": "2.2-1ubuntu0.1",
        "arch": "amd64"
      },
      "libslang2": {
        "version": "2.2.4-15ubuntu1",
        "arch": "amd64"
      },
      "libsqlite3-0": {
        "version": "3.8.2-1ubuntu2.1",
        "arch": "amd64"
      },
      "libsqlite3-dev": {
        "version": "3.8.2-1ubuntu2.1",
        "arch": "amd64"
      },
      "libss2": {
        "version": "1.42.9-3ubuntu1.3",
        "arch": "amd64"
      },
      "libssl1.0.0": {
        "version": "1.0.1f-1ubuntu2.21",
        "arch": "amd64"
      },
      "libstdc++-4.8-dev": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "libstdc++6": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "libsystemd-journal0": {
        "version": "204-5ubuntu20.24",
        "arch": "amd64"
      },
      "libtasn1-6": {
        "version": "3.4-3ubuntu0.4",
        "arch": "amd64"
      },
      "libterm-ui-perl": {
        "version": "0.42-1",
        "arch": "all"
      },
      "libtext-charwidth-perl": {
        "version": "0.04-7build3",
        "arch": "amd64"
      },
      "libtext-iconv-perl": {
        "version": "1.7-5build2",
        "arch": "amd64"
      },
      "libtext-soundex-perl": {
        "version": "3.4-1build1",
        "arch": "amd64"
      },
      "libtext-wrapi18n-perl": {
        "version": "0.06-7",
        "arch": "all"
      },
      "libtinfo5": {
        "version": "5.9+20140118-1ubuntu1",
        "arch": "amd64"
      },
      "libtsan0": {
        "version": "4.8.4-2ubuntu1~14.04.3",
        "arch": "amd64"
      },
      "libudev1": {
        "version": "204-5ubuntu20.20",
        "arch": "amd64"
      },
      "libusb-0.1-4": {
        "version": "2:0.1.12-23.3ubuntu1",
        "arch": "amd64"
      },
      "libustr-1.0-1": {
        "version": "1.0.4-3ubuntu2",
        "arch": "amd64"
      },
      "libuuid1": {
        "version": "2.20.1-5.1ubuntu20.9",
        "arch": "amd64"
      },
      "libwind0-heimdal": {
        "version": "1.6~git20131207+dfsg-1ubuntu1.1",
        "arch": "amd64"
      },
      "libwrap0": {
        "version": "7.6.q-25",
        "arch": "amd64"
      },
      "libx11-6": {
        "version": "2:1.6.2-1ubuntu2",
        "arch": "amd64"
      },
      "libx11-data": {
        "version": "2:1.6.2-1ubuntu2",
        "arch": "all"
      },
      "libxau6": {
        "version": "1:1.0.8-1",
        "arch": "amd64"
      },
      "libxcb1": {
        "version": "1.10-2ubuntu1",
        "arch": "amd64"
      },
      "libxdmcp6": {
        "version": "1:1.1.1-1",
        "arch": "amd64"
      },
      "libxext6": {
        "version": "2:1.3.2-1ubuntu0.0.14.04.1",
        "arch": "amd64"
      },
      "libxmuu1": {
        "version": "2:1.1.1-1",
        "arch": "amd64"
      },
      "libxtables10": {
        "version": "1.4.21-1ubuntu1",
        "arch": "amd64"
      },
      "linux-libc-dev": {
        "version": "3.13.0-109.156",
        "arch": "amd64"
      },
      "locales": {
        "version": "2.13+git20120306-12.1",
        "arch": "all"
      },
      "lockfile-progs": {
        "version": "0.1.17",
        "arch": "amd64"
      },
      "login": {
        "version": "1:4.1.5.1-1ubuntu9.2",
        "arch": "amd64"
      },
      "logrotate": {
        "version": "3.8.7-1ubuntu1",
        "arch": "amd64"
      },
      "lsb-base": {
        "version": "4.1+Debian11ubuntu6.2",
        "arch": "all"
      },
      "lsb-release": {
        "version": "4.1+Debian11ubuntu6.2",
        "arch": "all"
      },
      "make": {
        "version": "3.81-8.2ubuntu3",
        "arch": "amd64"
      },
      "makedev": {
        "version": "2.3.1-93ubuntu1",
        "arch": "all"
      },
      "manpages": {
        "version": "3.54-1ubuntu1",
        "arch": "all"
      },
      "manpages-dev": {
        "version": "3.54-1ubuntu1",
        "arch": "all"
      },
      "mawk": {
        "version": "1.3.3-17ubuntu2",
        "arch": "amd64"
      },
      "mime-support": {
        "version": "3.54ubuntu1.1",
        "arch": "all"
      },
      "module-init-tools": {
        "version": "15-0ubuntu6",
        "arch": "all"
      },
      "mount": {
        "version": "2.20.1-5.1ubuntu20.9",
        "arch": "amd64"
      },
      "mountall": {
        "version": "2.53",
        "arch": "amd64"
      },
      "multiarch-support": {
        "version": "2.19-0ubuntu6.9",
        "arch": "amd64"
      },
      "ncurses-base": {
        "version": "5.9+20140118-1ubuntu1",
        "arch": "all"
      },
      "ncurses-bin": {
        "version": "5.9+20140118-1ubuntu1",
        "arch": "amd64"
      },
      "ncurses-term": {
        "version": "5.9+20140118-1ubuntu1",
        "arch": "all"
      },
      "net-tools": {
        "version": "1.60-25ubuntu2.1",
        "arch": "amd64"
      },
      "netbase": {
        "version": "5.2",
        "arch": "all"
      },
      "netcat-openbsd": {
        "version": "1.105-7ubuntu1",
        "arch": "amd64"
      },
      "nodejs": {
        "version": "0.10.48-1nodesource1~trusty1",
        "arch": "amd64"
      },
      "ntp": {
        "version": "1:4.2.6.p5+dfsg-3ubuntu2.14.04.10",
        "arch": "amd64"
      },
      "ntpdate": {
        "version": "1:4.2.6.p5+dfsg-3ubuntu2.14.04.10",
        "arch": "amd64"
      },
      "openssh-client": {
        "version": "1:6.6p1-2ubuntu2.8",
        "arch": "amd64"
      },
      "openssh-server": {
        "version": "1:6.6p1-2ubuntu2.8",
        "arch": "amd64"
      },
      "openssh-sftp-server": {
        "version": "1:6.6p1-2ubuntu2.8",
        "arch": "amd64"
      },
      "openssl": {
        "version": "1.0.1f-1ubuntu2.22",
        "arch": "amd64"
      },
      "passwd": {
        "version": "1:4.1.5.1-1ubuntu9.2",
        "arch": "amd64"
      },
      "patch": {
        "version": "2.7.1-4ubuntu2.3",
        "arch": "amd64"
      },
      "perl": {
        "version": "5.18.2-2ubuntu1.1",
        "arch": "amd64"
      },
      "perl-base": {
        "version": "5.18.2-2ubuntu1.1",
        "arch": "amd64"
      },
      "perl-modules": {
        "version": "5.18.2-2ubuntu1.1",
        "arch": "all"
      },
      "plymouth": {
        "version": "0.8.8-0ubuntu17.1",
        "arch": "amd64"
      },
      "procps": {
        "version": "1:3.3.9-1ubuntu2.2",
        "arch": "amd64"
      },
      "python": {
        "version": "2.7.5-5ubuntu3",
        "arch": "amd64"
      },
      "python-chardet": {
        "version": "2.0.1-2build2",
        "arch": "all"
      },
      "python-minimal": {
        "version": "2.7.5-5ubuntu3",
        "arch": "amd64"
      },
      "python-requests": {
        "version": "2.2.1-1ubuntu0.3",
        "arch": "all"
      },
      "python-six": {
        "version": "1.5.2-1ubuntu1",
        "arch": "all"
      },
      "python-urllib3": {
        "version": "1.7.1-1ubuntu4",
        "arch": "all"
      },
      "python2.7": {
        "version": "2.7.6-8ubuntu0.3",
        "arch": "amd64"
      },
      "python2.7-minimal": {
        "version": "2.7.6-8ubuntu0.3",
        "arch": "amd64"
      },
      "python3": {
        "version": "3.4.0-0ubuntu2",
        "arch": "amd64"
      },
      "python3-minimal": {
        "version": "3.4.0-0ubuntu2",
        "arch": "amd64"
      },
      "python3.4": {
        "version": "3.4.3-1ubuntu1~14.04.5",
        "arch": "amd64"
      },
      "python3.4-minimal": {
        "version": "3.4.3-1ubuntu1~14.04.5",
        "arch": "amd64"
      },
      "readline-common": {
        "version": "6.3-4ubuntu2",
        "arch": "all"
      },
      "resolvconf": {
        "version": "1.69ubuntu1.1",
        "arch": "all"
      },
      "rlwrap": {
        "version": "0.37-5",
        "arch": "amd64"
      },
      "rsync": {
        "version": "3.1.0-2ubuntu0.2",
        "arch": "amd64"
      },
      "rsyslog": {
        "version": "7.4.4-1ubuntu2.6",
        "arch": "amd64"
      },
      "sed": {
        "version": "4.2.2-4ubuntu1",
        "arch": "amd64"
      },
      "sensible-utils": {
        "version": "0.0.9",
        "arch": "all"
      },
      "sqlite3": {
        "version": "3.8.2-1ubuntu2.1",
        "arch": "amd64"
      },
      "sudo": {
        "version": "1.8.9p5-1ubuntu1.3",
        "arch": "amd64"
      },
      "sysv-rc": {
        "version": "2.88dsf-41ubuntu6.3",
        "arch": "all"
      },
      "sysvinit-utils": {
        "version": "2.88dsf-41ubuntu6.3",
        "arch": "amd64"
      },
      "tar": {
        "version": "1.27.1-1ubuntu0.1",
        "arch": "amd64"
      },
      "tcpd": {
        "version": "7.6.q-25",
        "arch": "amd64"
      },
      "tree": {
        "version": "1.6.0-1",
        "arch": "amd64"
      },
      "tzdata": {
        "version": "2016j-0ubuntu0.14.04",
        "arch": "all"
      },
      "ubuntu-keyring": {
        "version": "2012.05.19",
        "arch": "all"
      },
      "ubuntu-minimal": {
        "version": "1.325",
        "arch": "amd64"
      },
      "ucf": {
        "version": "3.0027+nmu1",
        "arch": "all"
      },
      "udev": {
        "version": "204-5ubuntu20.20",
        "arch": "amd64"
      },
      "unzip": {
        "version": "6.0-9ubuntu1.5",
        "arch": "amd64"
      },
      "upstart": {
        "version": "1.12.1-0ubuntu4.2",
        "arch": "amd64"
      },
      "ureadahead": {
        "version": "0.100.0-16",
        "arch": "amd64"
      },
      "util-linux": {
        "version": "2.20.1-5.1ubuntu20.9",
        "arch": "amd64"
      },
      "vim": {
        "version": "2:7.4.052-1ubuntu3.1",
        "arch": "amd64"
      },
      "vim-common": {
        "version": "2:7.4.052-1ubuntu3.1",
        "arch": "amd64"
      },
      "vim-runtime": {
        "version": "2:7.4.052-1ubuntu3.1",
        "arch": "all"
      },
      "vim-tiny": {
        "version": "2:7.4.052-1ubuntu3.1",
        "arch": "amd64"
      },
      "wget": {
        "version": "1.15-1ubuntu1.14.04.2",
        "arch": "amd64"
      },
      "whiptail": {
        "version": "0.52.15-2ubuntu5",
        "arch": "amd64"
      },
      "xauth": {
        "version": "1:1.0.7-1ubuntu1",
        "arch": "amd64"
      },
      "xkb-data": {
        "version": "2.10.1-1ubuntu1",
        "arch": "all"
      },
      "xz-utils": {
        "version": "5.1.1alpha+20120614-2ubuntu2",
        "arch": "amd64"
      },
      "zlib1g": {
        "version": "1:1.2.8.dfsg-1ubuntu1",
        "arch": "amd64"
      }
    },
    "time": {
      "timezone": "UTC"
    },
    "root_group": "root",
    "keys": {
      "ssh": {
        "host_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDR8yajG4rlZ0BZyynXNcsISwvhsjlPSopvG9RfY5PRG6SOsTUnijXG/qUIUNq1po4JgtiI/zq/GGGN2snWWUiDKYPglzn5b8u5NxoPgDPMuiFNylWogP2iK3clB3HEf/BXAoO+dpHhZ4t97bftSATMJ6L9Ur+uejscwcScMUTDqhOnSNy8TzwsFSPcIxRQg+1sTrrMpTKgH4mP532Qz6BUIZr6SljmCzwsgSf7129Lq3bsT8JfE4m9AdBDEAg/OMJMDeMvaz7m8TwOA99gtCexdSPbA5WXZBDsE5c4C15ZgvZJMjwVWga6CEwRS95H3qHd/kNXbsaNt0f45xEz3aW5",
        "host_dsa_public": "AAAAB3NzaC1kc3MAAACBANEUgTjZFAxWKIKymuUdij2YLuJOYCJW+HM2S7qW/RSc2DySL/wt89CVeXQU8Y8W8/5uzQX6DVyZf4JU1kCcNoOU/YgQDzo3lwhF1jmJsASmcvDKXBIMVD19WvOIpDGHP2T0PafuazesbcfMIqKUd5YPW9RZdOyxAAzSTOA1mWAlAAAAFQDEM+0OjDoL6f2USxQPuDz5pUsLjwAAAIBTxlPjz5pZ00C1kk/AJcPRzl4ehFb3qzKkaCEt7mVd/s9sRvNsK6Gplh2d7JOywIh8pjSiT7naGcmqsQG+HJAlQ6UtlSTqMjb5Zof0XYmvTjQzEgovA6UF+l71QsjJVDdTSaS9kAmkmuBVuc6H2rFsUWCR+amiLwBaD6C+uTvcWQAAAIA8SK2JpuaUz3pDYb8o3ZyESD4qtxheV7T9/lIy1LMsVm5MEki2VqMyfLf+CvgXr9k5AfODg7HueD0eeyLVHCC0s2j+sCGt6aFAg8TepwljU3M1Dn7Ic5D0M21kKMPXVzbOsMhzmsGnFu8HlPFGXiiKI9DOArtkYH6TZ6jF5yXRcg==",
        "host_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNSatcmevDaBtYFAMRTm8d8inXSD2hgRAxt9SnclH2LZCFBaZZvA9bX1yKkheor5ftRtWDs5W7RjqhVXQeqvJWo=",
        "host_ecdsa_type": "ecdsa-sha2-nistp256",
        "host_ed25519_public": "AAAAC3NzaC1lZDI1NTE5AAAAIBtP9YK9fascW5riKBL2iWxOeL1OZPWh6r4xCoS9dX6a"
      }
    },
    "recipes": [

    ],
    "expanded_run_list": [

    ],
    "roles": [

    ]
  }
}

SAMPLE

NODE 

OBJECT

ohai

  • System Profiler
  • Installed with chef-client
system defined

attributes

  • Platform
  • Network
  • Kernel
  • Memory
  • CPU
  • Virtualization
  • Disk Mounts
  • Other system info

ohai

ohai 
ohai ipaddress
ohai hostname
ohai memory
ohai memory/total
ohai cpu/0/model_name
system defined

attributes

 Finding Information
 on the Node with ohai

Node Object

node1

node1.json

attr

run_list

Chef Server

> knife

ohai

knife node show app1
knife node show app1 -l
knife node show app1 -a ipaddress
knife node show app1 -a ipaddress memory.total
knife node show app1 -a ipaddress memory.total
system defined

attributes

Finding Node Information
from Workstation

referencing

ATTRIBUTES

ohai 
ohai ipaddress
ohai hostname
ohai memory
ohai memory/total
ohai cpu/model_name
node['ipaddress']
node['hostname']
node['memory']['total']
node['cpu']['model_name']

attributes

system defined

user defined

attributes

attribute files
recipes
environments
roles

user defined attributes

Attribute strategies

Attribute Files

Sane Defaults

Recipes

Roles

Env

Override Values

port = 80

user = tomcat

attribute file

['tomcat']['user']
'tomcat'
=
default

attribute

value

precedence

user 
defined

attributes

ACCESSING 

Attributes

node['tomcat']['user']
node['ipaddress']
node['memory']['total']
Recipes
Templates
user 
defined

attributes

system defined
template node['tomcat']['config'] do
  source 'tomcat.conf.erb'
  owner node['tomcat']['user']
  group node['tomcat']['group']
  mode '0644'
  action :create
  notifies :restart, "service[#{node['tomcat']['service']}]", :delayed
end

Example

Using attribute in a Recipe

demo

group exercise

Parameterizing Tomcat Configs

group exercise

file: cookbooks/tomcat/attributes/default.rb

default['tomcat']['user'] = 'tomcat'
default['tomcat']['group'] = 'tomcat'
default['tomcat']['config'] = '/etc/tomcat/tomcat.conf'
default['tomcat']['packages'] = [ 'tomcat', 'tomcat-webapps' ]
default['tomcat']['service'] = 'tomcat'

define attributes

cd myapp
chef generate attribute cookbooks/tomcat default

group exercise

file: cookbooks/tomcat/attributes/default.rb

default['tomcat']['user'] = 'tomcat'
default['tomcat']['group'] = 'tomcat'
default['tomcat']['config'] = '/etc/tomcat/tomcat.conf'
default['tomcat']['user_config'] = '/etc/tomcat/tomcat-users.xml'
default['tomcat']['packages'] = [ 'tomcat', 'tomcat-webapps' ]
default['tomcat']['service'] = 'tomcat'

define attributes

cd myapp
chef generate attribute cookbooks/tomcat default
tomcat::config
cookbook_file node['tomcat']['config'] do
  source 'tomcat.conf'
  owner node['tomcat']['user']
  group node['tomcat']['group']
  mode '0644'
  action :create
  notifies :restart, "service[#{node['tomcat']['service']}]", :delayed
end

refactor recipes

package [ 'epel-release' ]

package node['tomcat']['packages']
service node['tomcat']['service'] do 
   action [ :start, :enable]
end
tomcat::install
tomcat::service

apply

group exercise

handle platform specific configs

lets convert base.rb recipe into a cookbook which can be applied to all linux nodes to perform common tasks.....
chef generate cookbook cookbooks/base
cp /workspace/chapter3/base.rb cookbooks/base/recipes/default.rb

Generate base cookbook

Copy over existing recipe

group exercise

knife node run_list add app1 "recipe[base]"
knife cookbook upload base 

[on node1]

sudo chef-client

Add recipe to run list

Upload and apply

group exercise

knife node run_list add app1 "recipe[base]"
sudo chef-client

Add default recipe from base to run list

Apply

note: change this

Failes because service "ntp" is not available on centos.  It was created for ubuntu. 

NTP 

ubuntu

centos

package

service

ntp
ntp
ntp
ntpd

group exercise

create attribute file for base cookbook

group exercise

chef generate attribute cookbooks/base default
case node['platform_family']
when 'rhel'
  default['ntp']['service'] = 'ntpd'
else
  default['ntp']['service'] = 'ntp'
end
Attribute

file:   cookbooks/base/attributes/default.rb

service node['ntp']['service'] do 
  action [ :start, :enable ]
end
Recipe

file:   cookbooks/base/recipes/default.rb

group exercise

knife cookbook upload base

[On node1]

sudo chef-client

Upload cookbook and apply

templates

server.dev.xml
server.stg.xml
server.prod.xml
memory = 128mb
port = 8081
memory = 4gb
port = 8888
memory = 16gb
port = 8080

COOKBOOK_FILE

dev

stage

prod

server.xml.erb
memory = <%= @memory %>
port = <%= @port %>

template

env

role

cookbook

server.xml

ERB

ERB = EMbedded ruby

Erubis

  • Contains text with dynamic ruby code 
  • uses tags to mark dynamic code

ERB Tags

<%=

%>

<%

%>

group exercise

templatize motd

chef generate template cookbooks/base motd
This server is a property of <%= node['org']['name'] %>

      SYSTEM INFO: 
     
       HOSTNAME   : <%= node['hostname'] %>
       IP ADDRESS : <%= node['ipaddress'] %>
       MEMORY     : <%= node['memory']['total'] %>
default['org']['name'] = "XYZ Inc."

file:  cookbooks/base/templates/default/motd.erb

file:  cookbooks/base/attributes/default.rb

group exercise

template '/etc/motd' do 
  source 'motd.erb'
  owner 'root'
  group 'root'
  mode  0644
end

file:  cookbooks/base/recipes/default.rb

APPLY

group exercise

Replace file resource with template to manage /etc/motd

default
role  4
environment  3
recipe   2
attribute files   1

attributes Precedence chart

example

dev

stage

prod

attrib file

env

8080
8081
8081
8080
8080

port = 

8080
8081
8000

role

8000

recipe

['tomcat']['user']
'tomcat'
=
default

attribute

value

precedence

node.
user 
defined

attributes

Lets define org name from recipes. 

node.default['org']['name'] = "School of Devops"

file:  cookbooks/base/recipes/default.rb

APPLY

group exercise

Templatize Tomcat Configs

LAB

  • tomcat.conf

Steps

  • Copy over existing configs to templates/*.erb
  • Parameterize configs by adding template variables and defining properties in attribute files

summary

Chef CI: Data Driven Cookbooks

By School of Devops

Chef CI: Data Driven Cookbooks

CCI 07 - Chef CI Attributes and Templates

  • 1,544