Ever wanted to know what information Razor collects about your system that you could lay your hands on? Wonder no more!
When handing of your newly created node to a broker, besides installing the client and registering it with the server, Razor also injects custom facts into the new node. They consist of two parts, “razor_metadata” and “razor_attributes”. Razor metadata is available for both chef and puppet brokers, and consist of the following:
razor_metadata: { razor_tags: "memsize_1GiB,nics_1,cpus_1,IntelCorporation,vmware_vm", razor_node_uuid: "JtFXS98553aTEsrUhy6V9", razor_active_model_uuid: "PQG5iXxTIDGgEeIQ9qsnD", razor_model_uuid: "7RdhL19S5pBAAWTqNldfSl", razor_model_name: "ubuntu_precise", razor_model_description: "Ubuntu Precise Model", razor_model_template: "linux_deploy", razor_policy_count: "14" }
Razor attributes are a bit more extensive, and I believe are currently injected only into the chef broker. This very detailed information about your system is collected by the Razor microkernel, and can also be found under active model/node/@attributes_hash in the database. The data looks like this:
razor_attributes: { mk_hw_cpu0_size: "2200MHz", mk_hw_lscpu_CPU_MHz: "2199.513", mk_hw_mem_description: "System Memory", mk_hw_nic0_clock: "66MHz", mk_hw_cpu0_physical_id: "4", ipaddress_lo: "127.0.0.1", mk_hw_fw_physical_id: "0", processorcount: "1", macaddress: "6A:8C:81:E3:6C:75", mk_hw_nic0_version: "01", mk_hw_disk0_size: "20GiB (21GB)", manufacturer: "VMware, Inc.", mk_hw_bus_version: "None", architecture: "i386", memorytotal: "1005.62 MB", mk_hw_nic_count: "1", mk_hw_disk_count: "1", mk_hw_lscpu_L2_cache: "256K", mk_hw_lscpu_CPU_sockets: "1", mk_hw_cpu0_slot: "CPU socket #0", network_lo: "127.0.0.0", hardwareisa: "unknown", mk_hw_lscpu_Stepping: "7", mk_hw_fw_capabilities: "isa pci pcmcia pnp apm upgrade shadowing escd cdboot bootselect edd int5printscreen int9keyboard int14serial int17printer int10video acpi smartbattery biosbootspecification netboot", "mk_hw_lscpu_CPU_op-modes": "32-bit, 64-bit", mk_hw_nic0_width: "64 bits", mk_hw_cpu0_vendor: "Intel Corp.", processor0: "Intel(R) Core(TM) i7-2720QM CPU @ 2.20GHz", mk_hw_lscpu_Byte_Order: "Little Endian", netmask_eth0: "255.255.255.0", mk_hw_fw_vendor: "Phoenix Technologies LTD", mk_hw_nic0_logical_name: "eth0", mk_hw_disk0_logical_name: "/dev/sda", domain: "dns.hosts", macaddress_dummy0: "6A:8C:81:E3:6C:75", boardserialnumber: "None", mk_hw_bus_vendor: "Intel Corporation", mk_hw_cpu0_capabilities: "boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss nx rdtscp x86-64 constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts", mk_hw_mem_size: "1GiB", mk_hw_lscpu_L1i_cache: "32K", mk_hw_cpu0_serial: "0008-06A9-0187-0000-0000-0000", mk_hw_fw_size: "87KiB", network_eth0: "192.168.100.0", hostname: "mk000C291F2C5C", mk_hw_lscpu_Model: "42", netmask_lo: "255.0.0.0", mk_hw_nic0_capacity: "1Gbit/s", mk_hw_cpu0_product: "Intel(R) Core(TM) i7-2720QM CPU @ 2.20GHz", mk_hw_fw_description: "BIOS", ipaddress: "192.168.100.19", physicalprocessorcount: 1, macaddress_eth0: "00:0B:29:1F:2D:5C", mk_hw_nic0_bus_info: "pci@0000:02:01.0", mk_hw_disk0_bus_info: "scsi@2:0.0.0", boardproductname: "440BX Desktop Reference Platform", mk_hw_bus_product: "440BX Desktop Reference Platform", mk_hw_cpu0_width: "64 bits", mk_hw_mem_slot: "System board or motherboard", mk_hw_lscpu_L1d_cache: "32K", mk_hw_nic0_configuration: "autonegotiation=on broadcast=yes driver=e1000 driverversion=7.3.21-k8-NAPI duplex=full firmware=N/A ip=192.168.100.19 latency=0 link=yes mingnt=255 multicast=yes port=twisted pair speed=1Gbit/s", mk_hw_cpu0_version: "6.10.7", mk_hw_fw_date: "07/02/2012", fqdn: "mk000C291F2C5C.dns.hosts", mk_hw_lscpu_CPU_family: "6", virtual: "vmware", mk_hw_nic0_size: "1Gbit/s", mk_hw_cpu0_description: "CPU", serialnumber: "VMware-56 4c e7 4d ae 3c 03 d5-4f e6 9e dc a4 1f 3c 6c", mk_hw_bus_physical_id: "0", hardwaremodel: "i686", mk_hw_lscpu_Architecture: "i686", mk_hw_nic0_physical_id: "1", boardmanufacturer: "Intel Corporation", mk_hw_bus_description: "Motherboard", mk_hw_disk0_physical_id: "0.0.0", mk_hw_cpu0_capacity: "4230MHz", mk_hw_lscpu_BogoMIPS: "4400.31", mk_hw_mem_physical_id: "e2", type: "Other", mk_hw_nic0_capabilities: "pm pcix bus_master cap_list rom ethernet physical logical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation", mk_hw_cpu0_bus_info: "cpu@0", is_virtual: "true", mk_hw_fw_version: "6.00", netmask: "255.255.255.0", mk_hw_lscpu_Vendor_ID: "GenuineIntel", mk_hw_nic0_serial: "00:0c:27:2f:1c:7c", mk_hw_cpu_count: "1", ipaddress_eth0: "192.168.100.19", productname: "VMware Virtual Platform", mk_hw_bus_serial: "None", mk_hw_nic0_description: "Ethernet interface", interfaces: "dummy0,eth0,lo", mk_hw_lscpu_L3_cache: "6144K", memorysize: "1005.62 MB", mk_hw_disk0_description: "SCSI Disk" }
Once this data is injected into the chef node, you can access it just like any other attribute.
-eglute