Skip to content

Support discovery image  #18

@bastelfreak

Description

@bastelfreak

Our image needs to be able to work as a discovery image. we need to determine the built in hardware and report that in a reliable format. I would recommend facter for this because it is fast, supports a wide variety of builtin facts and is easy to extend.

  • Which data do we need?
  • How do we determine it?

example facter output from a node booted with LARS:

disks => {
  sda => {
    model => "VIRTUAL DISK",
    size => "931.00 GiB",
    size_bytes => 999653638144,
    vendor => "Dell"
  }
}
dmi => {
  bios => {
    release_date => "09/10/2013",
    vendor => "Dell Inc.",
    version => "1.10.0"
  },
  board => {
    manufacturer => "Dell Inc.",
    product => "REMOVED",
    serial_number => "REMOVED"
  },
  chassis => {
    type => "Rack Mount Chassis"
  },
  manufacturer => "Dell Inc.",
  product => {
    name => "PowerEdge R210",
    serial_number => "REMOVED",
    uuid => "REMOVED"
  }
}
facterversion => 3.1.4
filesystems => squashfs
identity => {
  gid => 0,
  group => "root",
  uid => 0,
  user => "root"
}
is_virtual => false
kernel => Linux
kernelmajversion => 4.2
kernelrelease => 4.2.5-1-ARCH
kernelversion => 4.2.5
load_averages => {
  15m => 0.05,
  1m => 0.23,
  5m => 0.1
}
memory => {
  system => {
    available => "7.69 GiB",
    available_bytes => 8262098944,
    capacity => "1.21%",
    total => "7.79 GiB",
    total_bytes => 8363507712,
    used => "96.71 MiB",
    used_bytes => 101408768
  }
}
mountpoints => {
  /run/archiso/sfs/airootfs => {
    available => "0 bytes",
    available_bytes => 0,
    capacity => "100%",
    device => "/dev/loop0",
    filesystem => "squashfs",
    options => [
      "ro",
      "relatime"
    ],
    size => "301.50 MiB",
    size_bytes => 316145664,
    used => "301.50 MiB",
    used_bytes => 316145664
  }
}
networking => {
  fqdn => "archiso",
  hostname => "archiso",
  interfaces => {
    eno2 => {
      mac => "b8:ac:6f:97:7e:78",
      mtu => 1500
    },
    eth0 => {
      bindings => [
        {
          address => "10.30.7.41",
          netmask => "255.255.255.128",
          network => "10.30.7.0"
        }
      ],
      bindings6 => [
        {
          address => "fe80::baac:6fff:fe97:7e77",
          netmask => "ffff:ffff:ffff:ffff::",
          network => "fe80::"
        }
      ],
      ip => "10.30.7.41",
      ip6 => "fe80::baac:6fff:fe97:7e77",
      mac => "b8:ac:6f:97:7e:77",
      mtu => 1500,
      netmask => "255.255.255.128",
      netmask6 => "ffff:ffff:ffff:ffff::",
      network => "10.30.7.0",
      network6 => "fe80::"
    },
    lo => {
      bindings => [
        {
          address => "127.0.0.1",
          netmask => "255.0.0.0",
          network => "127.0.0.0"
        }
      ],
      bindings6 => [
        {
          address => "::1",
          netmask => "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
          network => "::1"
        }
      ],
      ip => "127.0.0.1",
      ip6 => "::1",
      mtu => 65536,
      netmask => "255.0.0.0",
      netmask6 => "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
      network => "127.0.0.0",
      network6 => "::1"
    }
  },
  ip => "10.30.7.41",
  ip6 => "fe80::baac:6fff:fe97:7e77",
  mac => "b8:ac:6f:97:7e:77",
  mtu => 1500,
  netmask => "255.255.255.128",
  netmask6 => "ffff:ffff:ffff:ffff::",
  network => "10.30.7.0",
  network6 => "fe80::",
  primary => "eth0"
}
os => {
  architecture => "x86_64",
  family => "Archlinux",
  hardware => "x86_64",
  name => "Archlinux",
  release => {
    full => "4.2.5-1-ARCH",
    major => "4",
    minor => "2"
  },
  selinux => {
    enabled => false
  }
}
partitions => {
  /dev/loop0 => {
    backing_file => "/run/archiso/bootmnt/arch/x86_64/airootfs.sfs",
    filesystem => "squashfs",
    mount => "/run/archiso/sfs/airootfs",
    size => "301.44 MiB",
    size_bytes => 316080128
  },
  /dev/sda1 => {
    filesystem => "ext4",
    partuuid => "0dbaede7-01",
    size => "931.00 GiB",
    size_bytes => 999651541504,
    uuid => "7518ffb3-7b29-42c0-992c-4f9097fa68a4"
  }
}
path => /root/.gem/ruby/2.2.0/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/sbin:/bin:/sbin
processors => {
  count => 4,
  isa => "unknown",
  models => [
    "Intel(R) Xeon(R) CPU           X3430  @ 2.40GHz",
    "Intel(R) Xeon(R) CPU           X3430  @ 2.40GHz",
    "Intel(R) Xeon(R) CPU           X3430  @ 2.40GHz",
    "Intel(R) Xeon(R) CPU           X3430  @ 2.40GHz"
  ],
  physicalcount => 1
}
ssh => {
  dsa => {
    fingerprints => {
      sha1 => "SSHFP 2 1 9fff86f8bcf740de72cda331a9ec2f08c574bebd",
      sha256 => "SSHFP 2 2 426913fb46577b9b0e50698021073d2168c817a210adb6eba409e41bf082ba63"
    },
    key => "AAAAB3NzaC1kc3MAAACBAJYiCLR2bFHofn9vPh+V8mgpnbINW/sQB+H3b15ihajmE1OoFz0/+KTWb62a2kIXPCU/2LxOuuLCWqAoWnXM1OIabYHVssy3J+GLQBS+3it30NsMfn7ap7FkNA8IutTNxhfQk+3ZBPIqTM7MCaw4azT+A5as2c6eWuqonHkchBwHAAAAFQDUPwTQgKNUp4tQBjmAjY9oAURdnQAAAIEAkK+d+LAAoNFp4e5meMagqBD6t0NVH9Tg6rCwQFLyOdJXLCQPI4MjGYfjWakWyLUwD9KihmKb2caJErxGv7MBnes5Ld13Lr+xsrk39iVUn9+MQ2bfJ6FDdIpXCH2XAQmBGfk19Y0VIVNm6TW+uu7oE574/r/4nXp9c8fglyIhdZgAAACAGf+CCKK/kQUu4N4WyXmVXlh2TS9leyD2PNp+xHQ5cyMlKxB8XYMfR+1f2f0DwrVuoLNrzuZ1xWPWAoaf8FnOFNmlmrk1HQNsWN00RBR9IB6w1yt3CN3u56XCnn5JlL/LvpSHurdyIMazRh/8lg2RdyhHC3B1R0RECT8Jin3osYs="
  },
  ecdsa => {
    fingerprints => {
      sha1 => "SSHFP 3 1 af1d2fbf70345d65da8a5740ce30ab0d2003558f",
      sha256 => "SSHFP 3 2 d07d06c97e6a62bbdb81b6a6d5994b882018adf81e3e5e78f35639b66bb4f887"
    },
    key => "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLbNskWyBwi/n3yFmQTOZRG0nJEpGA/qjFBs9TslrT3Nqa3xHWOUXwBJObaESLyrdaImUz55uI4ce5jQTmGWZ7w="
  },
  ed25519 => {
    fingerprints => {
      sha1 => "SSHFP 4 1 4a526ae0f1ab96a59cbb9f2f9487a73149fac25b",
      sha256 => "SSHFP 4 2 85d61bf53f18c4d8b2e9f02e189b490a23cdf3ef00861ef19b5e390df5fb76be"
    },
    key => "AAAAC3NzaC1lZDI1NTE5AAAAIOiTR4KFn86R9fbAbL5AOMGf3gNRyZL68XfK3wNIjfAa"
  },
  rsa => {
    fingerprints => {
      sha1 => "SSHFP 1 1 04e82a2470d6914e77e36c210dcf029075859270",
      sha256 => "SSHFP 1 2 d256a79b2df4326ba4564ee784e47a1e264449d7a3acb5dd2d8dde4c7860dbad"
    },
    key => "AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Ww8M7eIzZZs+PDXa5P9Z3SJzeH8DdBndp+OEZ4eSEkX6K6bxoQMrXxR9MVxnThFMIUyE9eku6BIX4vEF57grXnpbt2eFpuVjOwPPPSXu+c0fSs/sqjl2oECAC1WYD9MEaTv730AaYF6VnXG0LHg8p3HQcQSjjizZuQgJCd/W6qw4KD80IG8DXHaL4aDQGJY9xRLWg0fVKLyWkj+MQLXOpvqHL362vZbXITCeQDJRk2DXTngoFjs0wmsXeje+FIRk9NLQ08clyGew45EEZkQT0hwHNlnSmBmbisRUo3hfi7Y20KZckkdsqwGE7roDRYCxb5eGSNADFaMk78gCROux"
  }
}
system_uptime => {
  days => 0,
  hours => 0,
  seconds => 240,
  uptime => "0:04 hours"
}
timezone => CET
virtual => physical

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions