Linux Supported Facts
Generated from docs/schema/facts.yaml
. conditional entries may be absent on a host when their preconditions do not hold.
Example Output
$ facts --json
{
"disks": {
"sda": {
"serial_number": "S250NXAG959927J",
"size": "64.00 GiB",
"size_bytes": 68719476736,
"type": "ssd"
}
},
"filesystems": [
"ext4",
"tmpfs",
"xfs"
],
"kernel": {
"name": "Linux",
"release": {
"full": "6.8.0-31-generic",
"major": "6",
"minor": "8",
"patch": "0"
},
"version": {
"full": "6.8.0"
}
},
"networking": {
"hostname": "linux01",
"interfaces": {
"eth0": {
"ip": "192.0.2.10",
"mac": "52:54:00:12:34:56",
"mtu": 1500
}
}
},
"os": {
"family": "Debian",
"name": "Ubuntu",
"release": {
"major": "24",
"full": "24.04"
}
},
"partitions": {
"/dev/sda1": {
"filesystem": "ext4",
"mount": "/",
"size": "63.00 GiB",
"size_bytes": 67645734912
}
},
"path": [
"/usr/local/bin",
"/usr/bin",
"/bin"
]
}
Fact Contract
175 schema entries include linux.
| Fact | Type | Conditional | Description |
|---|---|---|---|
augeas.version | string | yes | The Augeas version reported by augparse, when Augeas is installed. |
az_metadata | map | yes | The Azure Instance Metadata Service tree, on Azure virtual machines. |
cloud.provider | string | yes | The cloud provider hosting the machine: aws, azure, or gce. |
disks.* | map | yes | A block device attached to the system, keyed by device name. |
disks.*.model | string | yes | The model of the disk. |
disks.*.serial_number | string | yes | The serial number of the disk. |
disks.*.size | string | yes | The display size of the disk, such as 1.00 GiB. |
disks.*.size_bytes | integer | yes | The size of the disk, in bytes. |
disks.*.type | string | yes | The kind of disk: ssd or hdd. |
disks.*.vendor | string | yes | The vendor of the disk. |
disks.*.wwn | string | yes | The World Wide Name of the disk. |
dmi.bios.release_date | string | yes | The release date of the system BIOS. |
dmi.bios.vendor | string | yes | The vendor of the system BIOS. |
dmi.bios.version | string | yes | The version of the system BIOS. |
dmi.board.asset_tag | string | yes | The asset tag of the motherboard. |
dmi.board.manufacturer | string | yes | The manufacturer of the motherboard. |
dmi.board.product | string | yes | The product name of the motherboard. |
dmi.board.serial_number | string | yes | The serial number of the motherboard. |
dmi.chassis.asset_tag | string | yes | The asset tag of the chassis. |
dmi.chassis.type | string | yes | The chassis type of the system, such as Desktop or Rack Mount Chassis. |
dmi.manufacturer | string | yes | The manufacturer of the system. |
dmi.product.name | string | yes | The product name of the system (the hardware model on macOS). |
dmi.product.serial_number | string | yes | The serial number of the system. |
dmi.product.uuid | string | yes | The hardware UUID of the system. |
dmi.product.version | string | yes | The product version of the system. |
ec2_metadata | map | yes | The EC2 instance metadata tree, on AWS instances. |
ec2_userdata | string | yes | The EC2 instance user data, on AWS instances that define it. |
facterversion | string | no | The Facter compatibility version of the Facts engine. |
filesystems | array | no | The usable filesystem types, as an array of type names. |
fips_enabled | boolean | no | Whether the platform enforces FIPS-validated cryptography. |
gce | map | yes | The Google Compute Engine metadata tree, on GCE instances. |
hypervisors.docker | map | yes | Docker (or containerd/Kubernetes) container details, when running inside one. |
hypervisors.docker.id | string | yes | The container identifier from the cgroup path. |
hypervisors.hyperv | map | yes | Hyper-V guest details, when running on Microsoft Hyper-V (including Azure). |
hypervisors.kvm | map | yes | KVM guest details, when running on a KVM hypervisor. |
hypervisors.lxc | map | yes | LXC container details, when running inside an LXC container. |
hypervisors.lxc-virtwhat | map | yes | LXC container details, when the container runtime reports itself as lxc-virtwhat. |
hypervisors.lxc.name | string | yes | The LXC container name from the cgroup path. |
hypervisors.openvz | map | yes | OpenVZ details, when running on an OpenVZ host or container. |
hypervisors.openvz.host | boolean | yes | Whether this is the OpenVZ hardware node rather than a container. |
hypervisors.openvz.id | integer | yes | The OpenVZ container environment identifier. |
hypervisors.systemd_nspawn | map | yes | systemd-nspawn container details, when running inside one. |
hypervisors.systemd_nspawn.id | string | yes | The machine identifier of the systemd-nspawn container. |
hypervisors.virtualbox | map | yes | VirtualBox guest details, when running on VirtualBox. |
hypervisors.virtualbox.revision | string | yes | The revision of the VirtualBox hypervisor. |
hypervisors.virtualbox.version | string | yes | The version of the VirtualBox hypervisor. |
hypervisors.vmware | map | yes | VMware guest details, when running on VMware. |
hypervisors.vmware.version | string | yes | The version of the VMware hypervisor, such as ESXi 6.7. |
hypervisors.xen | map | yes | Xen guest details, when running on Xen. |
hypervisors.xen.context | string | yes | The Xen virtualization context: hvm or pv. |
hypervisors.xen.privileged | boolean | yes | Whether the machine is the privileged Xen dom0 domain. |
identity.gid | integer | no | The group identifier of the user running Facts. |
identity.group | string | no | The group name of the user running Facts. |
identity.privileged | boolean | no | Whether Facts is running with root (or Administrator) privileges. |
identity.uid | integer | no | The user identifier of the user running Facts. |
identity.user | string | no | The name of the user running Facts. |
is_virtual | boolean | no | Whether the machine is a virtual machine or container. |
kernel.name | string | no | The kernel name, such as Linux, Darwin, windows, FreeBSD, or Plan 9. |
kernel.release.full | string | no | The full kernel release reported by the system. |
kernel.release.major | string | no | The major component of the kernel release. |
kernel.release.minor | string | no | The minor component of the kernel release. |
kernel.release.patch | string | yes | The patch component of the kernel release, when one is present. |
kernel.version.full | string | no | The kernel version, without any release suffix. |
load_averages.15m | double | no | The 15-minute system load average (null on Windows). |
load_averages.1m | double | no | The 1-minute system load average (null on Windows). |
load_averages.5m | double | no | The 5-minute system load average (null on Windows). |
memory.swap.available | string | yes | The display amount of free swap, such as 1.00 GiB. |
memory.swap.available_bytes | integer | yes | The free swap, in bytes. |
memory.swap.capacity | string | yes | The percentage of swap in use. |
memory.swap.encrypted | boolean | yes | Whether the swap is encrypted. |
memory.swap.total | string | yes | The display amount of total swap, such as 1.00 GiB. |
memory.swap.total_bytes | integer | yes | The total swap, in bytes. |
memory.swap.used | string | yes | The display amount of swap in use, such as 1.00 GiB. |
memory.swap.used_bytes | integer | yes | The swap in use, in bytes. |
memory.system.available | string | no | The display amount of free physical memory, such as 1.00 GiB. |
memory.system.available_bytes | integer | no | The free physical memory, in bytes. |
memory.system.capacity | string | no | The percentage of physical memory in use. |
memory.system.total | string | yes | The display amount of total physical memory, such as 16.00 GiB. |
memory.system.total_bytes | integer | yes | The total physical memory, in bytes. |
memory.system.used | string | no | The display amount of physical memory in use, such as 1.00 GiB. |
memory.system.used_bytes | integer | no | The physical memory in use, in bytes. |
mountpoints.* | map | yes | A mounted filesystem, keyed by mount path. |
mountpoints.*.available | string | no | The display amount of free space on the mount, such as 1.00 GiB. |
mountpoints.*.available_bytes | integer | no | The free space on the mount, in bytes. |
mountpoints.*.capacity | string | no | The percentage of the mount’s space in use. |
mountpoints.*.device | string | no | The device backing the mount. |
mountpoints.*.filesystem | string | no | The filesystem type of the mount. |
mountpoints.*.options | array | no | The mount options the filesystem is mounted with. |
mountpoints.*.size | string | no | The display size of the mount, such as 100.00 GiB. |
mountpoints.*.size_bytes | integer | no | The size of the mount, in bytes. |
mountpoints.*.used | string | no | The display amount of space in use on the mount, such as 1.00 GiB. |
mountpoints.*.used_bytes | integer | no | The space in use on the mount, in bytes. |
networking.dhcp | string | no | The DHCP server of the primary interface, when known. |
networking.domain | string | yes | The DNS domain of the host, when one is configured. |
networking.fqdn | string | no | The fully qualified domain name of the host. |
networking.hostname | string | yes | The short host name of the machine. |
networking.interfaces.* | map | yes | A network interface, keyed by interface name. |
networking.interfaces.*.bindings | array | yes | The IPv4 bindings of the interface (address, netmask, network). |
networking.interfaces.*.bindings6 | array | yes | The IPv6 bindings of the interface (address, netmask, network, scope6, flags). |
networking.interfaces.*.dhcp | string | yes | The DHCP server of the interface, when known (null on Windows interfaces without one). |
networking.interfaces.*.duplex | string | yes | The duplex mode of the interface: full or half. |
networking.interfaces.*.ip | string | yes | The first IPv4 address bound to the interface. |
networking.interfaces.*.ip6 | string | yes | The first IPv6 address bound to the interface. |
networking.interfaces.*.mac | string | yes | The MAC address of the interface. |
networking.interfaces.*.mtu | integer | yes | The maximum transmission unit of the interface. |
networking.interfaces.*.netmask | string | yes | The IPv4 netmask of the interface’s first binding. |
networking.interfaces.*.netmask6 | string | yes | The IPv6 netmask of the interface’s first binding. |
networking.interfaces.*.network | string | yes | The IPv4 network of the interface’s first binding. |
networking.interfaces.*.network6 | string | yes | The IPv6 network of the interface’s first binding. |
networking.interfaces.*.operational_state | string | yes | The operational state of the interface, such as up or down. |
networking.interfaces.*.physical | boolean | no | Whether the interface is a physical device. |
networking.interfaces.*.scope6 | string | yes | The IPv6 scope of the interface’s first binding, such as global or link. |
networking.interfaces.*.speed | integer | yes | The negotiated speed of the interface, in Mbit/s. |
networking.ip | string | yes | The IPv4 address of the primary interface. |
networking.ip6 | string | yes | The IPv6 address of the primary interface. |
networking.mac | string | yes | The MAC address of the primary interface. |
networking.mtu | integer | yes | The maximum transmission unit of the primary interface. |
networking.netmask | string | yes | The IPv4 netmask of the primary interface. |
networking.netmask6 | string | yes | The IPv6 netmask of the primary interface. |
networking.network | string | yes | The IPv4 network of the primary interface. |
networking.network6 | string | yes | The IPv6 network of the primary interface. |
networking.primary | string | yes | The name of the primary interface. |
networking.scope6 | string | yes | The IPv6 scope of the primary interface, such as global or link. |
os.architecture | string | no | The operating system’s hardware architecture, such as x86_64 or arm64. |
os.distro.codename | string | yes | The codename of the distribution release, such as noble. |
os.distro.description | string | no | The full description of the distribution release. |
os.distro.id | string | no | The distributor identifier of the distribution, such as ubuntu or debian. |
os.distro.release.full | string | no | The full release number of the distribution. |
os.distro.release.major | string | no | The major release number of the distribution. |
os.distro.release.minor | string | yes | The minor release number of the distribution, when it has one. |
os.distro.specification | string | yes | The LSB specification version, when lsb_release is installed. |
os.family | string | no | The operating system family, such as Debian, RedHat, Darwin, windows, or Plan 9. |
os.hardware | string | no | The hardware model of the machine, such as x86_64. |
os.name | string | no | The operating system name, such as Ubuntu, Darwin, windows, or Plan 9. |
os.release.full | string | no | The full release number of the operating system. |
os.release.major | string | no | The major release number of the operating system. |
os.release.minor | string | yes | The minor release number of the operating system, when it has one. |
os.selinux.config_mode | string | yes | The SELinux mode set in the config file, when SELinux is enabled. |
os.selinux.config_policy | string | yes | The SELinux policy set in the config file, when SELinux is enabled. |
os.selinux.current_mode | string | yes | The current SELinux mode: enforcing or permissive. |
os.selinux.enabled | boolean | no | Whether SELinux is enabled. |
os.selinux.enforced | boolean | yes | Whether SELinux is enforcing, when SELinux is enabled. |
os.selinux.policy_version | string | yes | The loaded SELinux policy version, when SELinux is enabled. |
partitions.* | map | yes | A disk partition (or device-mapper/loop device), keyed by device path. |
partitions.*.backing_file | string | yes | The file backing the loop device. |
partitions.*.filesystem | string | yes | The filesystem type of the partition. |
partitions.*.label | string | yes | The filesystem label of the partition. |
partitions.*.mount | string | yes | The path the partition is mounted on. |
partitions.*.partlabel | string | yes | The partition label from the partition table. |
partitions.*.parttype | string | yes | The partition type GUID or identifier. |
partitions.*.partuuid | string | yes | The partition UUID from the partition table. |
partitions.*.size | string | yes | The display size of the partition, such as 1.00 GiB. |
partitions.*.size_bytes | integer | yes | The size of the partition, in bytes. |
partitions.*.uuid | string | yes | The filesystem UUID of the partition. |
path | array | no | The PATH environment entries of the Facts process, in lookup order. |
processors.cores | integer | no | The number of cores per processor socket. |
processors.count | integer | yes | The number of logical processors. |
processors.extensions | array | no | The instruction set architectures the processors support, including the base architecture and x86_64 microarchitecture levels. |
processors.isa | string | yes | The processor instruction set architecture, as reported by the platform. |
processors.models | array | yes | The processor model strings, one entry per logical processor. |
processors.physicalcount | integer | no | The number of physical processor sockets. |
processors.speed | string | yes | The display speed of the processors, such as 2.40 GHz, where the platform reports one (absent on Apple Silicon). |
processors.threads | integer | no | The number of hardware threads per core. |
ssh | map | yes | The structured SSH host key tree, when host keys are visible. |
ssh.*.fingerprints.sha1 | string | yes | The SSHFP SHA-1 fingerprint of the SSH host key, keyed by key algorithm. |
ssh.*.fingerprints.sha256 | string | yes | The SSHFP SHA-256 fingerprint of the SSH host key, keyed by key algorithm. |
ssh.*.key | string | yes | The public SSH host key, keyed by key algorithm. |
ssh.*.type | string | yes | The SSH host key type, such as ssh-ed25519, keyed by key algorithm. |
system_uptime.days | integer | yes | The whole days the system has been up. |
system_uptime.hours | integer | yes | The whole hours the system has been up. |
system_uptime.seconds | integer | yes | The seconds the system has been up. |
system_uptime.uptime | string | yes | The display form of the system uptime, such as 3 days. |
timezone | string | no | The abbreviated time zone name of the system, such as UTC. |
virtual | string | no | The hypervisor or container technology the machine runs under, or physical. |
xen.domains | array | yes | The names of the running Xen guest domains, on a Xen dom0 host. |