Commissioning logs (deb/2.8/CLI)

The command line allows you to retrieve the verbatim logs of commissioning script runs, including those that are currently in progress.

If you only want to see the latest or currently-running result, you can use current-commissioning, current-testing, or current-installation instead of an id:

maas $PROFILE node-script-result read $SYSTEM_ID $RESULTS

You can also limit which results are returned by type (commissioning, testing, or installation), script name, or script run:

maas $PROFILE node-script-results read \
 $SYSTEM_ID type=$SCRIPT_TYPE filters=$SCRIPT_NAME,$TAGS

You can also suppress failed results, which is useful if you want to ignore a known failure:

maas $PROFILE node-script-results update \
 $SYSTEM_ID type=$SCRIPT_TYPE filters=$SCRIPT_NAME,$TAGS suppressed=$SUPPRESSED

where $SUPPRESSED is either True or False. The JSON formatted output to the above command will include ‘results’ dictionary with an entry for suppressed:

"results": [
    {
        "id": 21,
        "created": "Tue, 02 Apr 2019 17:00:36 -0000",
        "updated": "Tue, 02 Apr 2019 20:56:41 -0000",
        "name": "smartctl-validate",
        "status": 5,
        "status_name": "Aborted",
        "exit_status": null,
        "started": "Tue, 02 Apr 2019 20:56:41 -0000",
        "ended": "Tue, 02 Apr 2019 20:56:41 -0000",
        "runtime": "0:00:00",
        "starttime": 1554238601.765214,
        "endtime": 1554238601.765214,
        "estimated_runtime": "0:00:00",
        "parameters": {
            "storage": {
                "argument_format": "{path}",
                "type": "storage",
                "value": {
                    "id_path": "/dev/vda",
                    "model": "",
                    "name": "sda",
                    "physical_blockdevice_id": 1,
                    "serial": ""
                }
            }
        },
        "script_id": 1,
        "script_revision_id": null,
        "suppressed": true
    }
]

Finally, results can be downloaded, either to stdout, stderr, as combined output or as a tar.xz:

maas $PROFILE node-script-result download $SYSTEM_ID $RUN_ID output=all \
 filetype=tar.xz > $LOCAL_FILENAME

$RUN_ID is labelled id in the verbose result output.

00-maas-00-support-info

MAAS gathers information that helps to identify and characterise the machine for debugging purposes, such as the kernel, versioning of various components, etc. This script gathers this information, mostly as a bundle to be provided to a support specialist to help get the baseline for the machine in question. Typical output, generated when a machine passes this script, is shown in the foldout below.

Typical script output
-----BEGIN KERNEL INFO-----
Linux 52-54-00-0b-6d-8c 4.15.0-91-generic #92-Ubuntu SMP Fri Feb 28 11:09:48 UTC 2020 86_64 x86_64 x86_64 GNU/Linux
-----END KERNEL INFO-----
-----BEGIN KERNEL COMMAND LINE-----
nomodeset ro root=squash:http://192.168.122.2:5248/images/ubuntu/amd64/generic/bionic/daily/squashfs ip=::::52-54-00-0b-6d-8c:BOOTIF ip6=off overlayroot=tmpfs overlayroot_cfgdisk=disabled cc:{'datasource_list': ['MAAS']}end_cc cloud-config-url=http://192-168-122-0--24.maas-internal:5248/MAAS/metadata/latest/by-id/pb6833/?op=get_preseed apparmor=0 log_host=192.168.122.2 log_port=5247 BOOTIF=01-52:54:00:0b:6d:8c
-----END KERNEL COMMAND LINE-----
-----BEGIN CLOUD CONFIG QUERY-----
*   Trying 192.168.122.2...
* TCP_NODELAY set
* Connected to 192-168-122-0--24.maas-internal (192.168.122.2) port 5248 (#0)
> GET /MAAS/metadata/latest/by-id/pb6833/?op=get_preseed HTTP/1.1
> Host: 192-168-122-0--24.maas-internal:5248
> User-Agent: curl/7.58.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: nginx/1.14.0 (Ubuntu)
< Date: Mon, 23 Mar 2020 22:02:01 GMT
< Content-Type: text/plain
< Content-Length: 1638
< Connection: keep-alive
< Vary: Authorization, Accept-Encoding
< X-Maas-Api-Hash: 96b79d21d1b0552c0342b119336f91bf6ce0bcdd
< X-Frame-Options: SAMEORIGIN
< 
{ [1638 bytes data]
* Connection #0 to host 192-168-122-0--24.maas-internal left intact
#cloud-config
apt: {preserve_sources_list: false, proxy: 'http://192-168-122-0--24.maas-internal:8000/',
  sources_list: 'deb http://archive.ubuntu.com/ubuntu $RELEASE multiverse universe
    restricted main
    # deb-src http://archive.ubuntu.com/ubuntu $RELEASE multiverse universe restricted
    main
    deb http://archive.ubuntu.com/ubuntu $RELEASE-updates multiverse universe restricted
    main
    # deb-src http://archive.ubuntu.com/ubuntu $RELEASE-updates multiverse universe
    restricted main
    deb http://archive.ubuntu.com/ubuntu $RELEASE-security multiverse universe restricted
    main
    # deb-src http://archive.ubuntu.com/ubuntu $RELEASE-security multiverse universe
    restricted main
    deb http://archive.ubuntu.com/ubuntu $RELEASE-backports multiverse universe restricted
    main
    # deb-src http://archive.ubuntu.com/ubuntu $RELEASE-backports multiverse universe
    restricted main
    '}
datasource:
  MAAS: {consumer_key: (withheld), metadata_url: 'http://192-168-122-0--24.maas-internal:5248/MAAS/metadata/',
    token_key: (withheld), token_secret: (withheld)}
manage_etc_hosts: true
packages: [python3-yaml, python3-oauthlib, freeipmi-tools, ipmitool, sshpass]
power_state: {condition: test ! -e /tmp/block-poweroff, delay: now, mode: poweroff,
  timeout: 3600}
reporting:
  maas: {consumer_key: (withheld), endpoint: 'http://192-168-122-0--24.maas-internal:5248/MAAS/metadata/status/pb6833',
    token_key: (withheld), token_secret: (withheld),
    type: webhook}
rsyslog:
  remotes: {maas: '192.168.122.2:5247'}
-----END CLOUD CONFIG QUERY-----
-----BEGIN CPU CORE COUNT AND MODEL-----
      1  Intel Core Processor (Skylake, IBRS)
-----BEGIN CPU CORE COUNT AND MODEL-----
-----BEGIN PCI INFO-----
00:00.0 Host bridge [0600]: Intel Corporation 440FX - 82441FX PMC [Natoma] [8086:1237] (rev 02)
00:01.0 ISA bridge [0601]: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] [8086:7000]
00:01.1 IDE interface [0101]: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] [8086:7010]
00:01.3 Bridge [0680]: Intel Corporation 82371AB/EB/MB PIIX4 ACPI [8086:7113] (rev 03)
00:02.0 VGA compatible controller [0300]: Red Hat, Inc. QXL paravirtual graphic card [1b36:0100] (rev 04)
00:03.0 Ethernet controller [0200]: Red Hat, Inc. Virtio network device [1af4:1000]
00:04.0 Audio device [0403]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller [8086:2668] (rev 01)
00:05.0 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 [8086:2934] (rev 03)
00:05.1 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 [8086:2935] (rev 03)
00:05.2 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 [8086:2936] (rev 03)
00:05.7 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 [8086:293a] (rev 03)
00:06.0 Communication controller [0780]: Red Hat, Inc. Virtio console [1af4:1003]
00:07.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon [1af4:1002]
-----END PCI INFO-----
-----BEGIN USB INFO-----
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
-----END USB INFO-----
-----BEGIN MODALIASES-----
      1 acpi:ACPI0010:PNP0A05:
      1 acpi:LNXCPU:
      1 acpi:LNXPWRBN:
      2 acpi:LNXSYBUS:
      1 acpi:LNXSYSTM:
      1 acpi:PNP0303:
      1 acpi:PNP0501:
      1 acpi:PNP0700:
      1 acpi:PNP0A03:
      3 acpi:PNP0A06:
      1 acpi:PNP0B00:
      5 acpi:PNP0C0F:
      1 acpi:PNP0F13:
      2 acpi:QEMU0002:
      1 cpu:type:x86,ven0000fam0006mod005E:feature:,0000,0001,0002,0003,0004,0005,0006,0007,0008,0009,000B,000C,000D,000E,000F,0010,0011,0013,0017,0018,0019,001A,001B,002B,0034,003A,003B,003D,0068,006F,0070,0072,0074,0075,0076,0079,007F,0080,0081,0085,0089,008C,008D,0091,0093,0094,0095,0096,0097,0098,0099,009A,009B,009C,009D,009E,009F,00C0,00C5,00C8,00E1,00E7,00F0,00F1,00F3,00F5,00F9,00FA,00FB,00FE,0100,0101,0102,0103,0104,0120,0121,0123,0125,0127,0128,0129,012A,0132,0133,0134,0137,0140,0141,0142,0143,01C2,0202,024A,025A,025B,025D,025F
      1 dmi:bvnSeaBIOS:bvr1.12.0-1:bd04/01/2014:svnQEMU:pnStandardPC(i440FX+PIIX,1996):pvrpc-i440fx-eoan:cvnQEMU:ct1:cvrpc-i440fx-eoan:
      1 hid:b0003g0001v00000627p00000001
      1 input:b0003v0627p0001e0001-e0,1,2,3,4,k110,111,112,r8,a0,1,m4,lsfw
      1 input:b0011v0001p0001eAB41-e0,1,4,11,14,k71,72,73,74,75,76,77,79,7A,7B,7C,7D,7E,7F,80,8C,8E,8F,9B,9C,9D,9E,9F,A3,A4,A5,A6,AC,AD,B7,B8,B9,D9,E2,ram4,l0,1,2,sfw
      1 input:b0011v0002p0006e0000-e0,1,2,k110,111,112,113,114,r0,1,6,8,amlsfw
      1 input:b0019v0000p0001e0000-e0,1,k74,ramlsfw
      1 pci:v00001AF4d00001000sv00001AF4sd00000001bc02sc00i00
      1 pci:v00001AF4d00001002sv00001AF4sd00000005bc00scFFi00
      1 pci:v00001AF4d00001003sv00001AF4sd00000003bc07sc80i00
      1 pci:v00001B36d00000100sv00001AF4sd00001100bc03sc00i00
      1 pci:v00008086d00001237sv00001AF4sd00001100bc06sc00i00
      1 pci:v00008086d00002668sv00001AF4sd00001100bc04sc03i00
      1 pci:v00008086d00002934sv00001AF4sd00001100bc0Csc03i00
      1 pci:v00008086d00002935sv00001AF4sd00001100bc0Csc03i00
      1 pci:v00008086d00002936sv00001AF4sd00001100bc0Csc03i00
      1 pci:v00008086d0000293Asv00001AF4sd00001100bc0Csc03i20
      1 pci:v00008086d00007000sv00001AF4sd00001100bc06sc01i00
      1 pci:v00008086d00007010sv00001AF4sd00001100bc01sc01i80
      1 pci:v00008086d00007113sv00001AF4sd00001100bc06sc80i00
      1 platform:Fixed MDIO bus
      1 platform:alarmtimer
      1 platform:i8042
      1 platform:pcspkr
      1 platform:platform-framebuffer
      1 platform:reg-dummy
      1 platform:serial8250
      1 scsi:t-0x00
      1 serio:ty01pr00id00ex00
      1 serio:ty06pr00id00ex00
      1 usb:v0627p0001d0000dc00dsc00dp00ic03isc00ip00in00
      3 usb:v1D6Bp0001d0415dc09dsc00dp00ic09isc00ip00in00
      1 usb:v1D6Bp0002d0415dc09dsc00dp00ic09isc00ip00in00
      1 virtio:d00000001v00001AF4
      1 virtio:d00000003v00001AF4
      1 virtio:d00000005v00001AF4
-----END MODALIASES-----
-----BEGIN SERIAL PORTS-----
/sys/devices/pnp0/00:04/tty/ttyS0
-----END SERIAL PORTS-----
-----BEGIN NETWORK INTERFACES-----
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000\    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\    link/ether 52:54:00:0b:6d:8c brd ff:ff:ff:ff:ff:ff
-----END NETWORK INTERFACES-----
-----BEGIN BLOCK DEVICE SUMMARY-----
NAME   MAJ:MIN FSTYPE PHY-SEC SIZE VENDOR   MODEL
sda      8:0              512   5G ATA      QEMU HARDDISK   
└─sda1   8:1   ext4       512   5G          
-----END BLOCK DEVICE SUMMARY-----
# dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
9 structures occupying 377 bytes.
Table at 0x000F58E0.
# Writing 377 bytes to /root/dmi.bin.
# Writing 31 bytes to /root/dmi.bin.
-----BEGIN DMI DATA-----
X1NNXycfAghSAAAAAAAAAF9ETUlfnXkBIAAAAAkAKAAAGAAAAQIA6AMACAAAAAAAAAAABAAA//9T
ZWFCSU9TADEuMTIuMC0xADA0LzAxLzIwMTQAAAEbAAEBAgMAk8WKR96p60KI/jQ+QB9PUAYAAFFF
TVUAU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpAHBjLWk0NDBmeC1lb2FuAAADFgAD
AQECAAADAwMCAAAAAAAAAAAAUUVNVQBwYy1pNDQwZngtZW9hbgAABCoABAEDAQLjBgUA//uLDwMA
AADQB9AHQQH///////8AAAABAQECAAEAQ1BVIDAAUUVNVQBwYy1pNDQwZngtZW9hbgAAEBcAEAED
BgAAEAD+/wEAAAAAAAAAAAAAABEoABEAEP7//////wAECQABAAcCAAAAAgAAAAAAAAAAAAAAAAAA
AABESU1NIDAAUUVNVQAAEx8AEwAAAAD//w8AABABAAAAAAAAAAAAAAAAAAAAAAAAIAsAIAAAAAAA
AAAAAH8EAH8AAA==
-----END DMI DATA-----
-----BEGIN DMI KEYPAIRS-----
bios-vendor=SeaBIOS
bios-version=1.12.0-1
bios-release-date=04/01/2014
system-manufacturer=QEMU
system-product-name=Standard PC (i440FX + PIIX, 1996)
system-version=pc-i440fx-eoan
system-serial-number=Not Specified
system-uuid=478AC593-A9DE-42EB-88FE-343E401F4F50
baseboard-manufacturer=
baseboard-product-name=
baseboard-version=
baseboard-serial-number=
baseboard-asset-tag=
chassis-manufacturer=QEMU
chassis-type=Other
chassis-version=pc-i440fx-eoan
chassis-serial-number=Not Specified
chassis-asset-tag=Not Specified
processor-family=Other
processor-manufacturer=QEMU
processor-version=pc-i440fx-eoan
processor-frequency=2000 MHz
-----END DMI KEYPAIRS-----

Here’s a quick breakdown of what you see in the script output:

  • KERNEL INFO: this is the output of uname -a – the MAC address is the machine name in this case.

  • KERNEL COMMAND LINE: these are the kernel command line parameters, directed at various modules built into the kernel. The function modprobe parses this kernel command line and collects the relevant module parameters when it loads a module. Note that this command line could also be used to pull in loadable modules.

  • CLOUD CONFIG QUERY: a cloud-init query is used to retrieve cloud instance metadata used by cloud-init when booting an instance. This section shows the specific metadata retrieved during cloud-init query for this machine.

  • CPU CORE COUNT AND MODEL: the data produced here is similar to the output you could retrieve by running nproc and then attempting a cat /sys/devices/cpu/caps/pmu_name – and so on. There several ways to retrieve this info, but all can produce the number and type of CPU(s) available.

  • PCI INFO: the devices, real or virtual, that are connected to the machine via PCI (Peripheral Component Interconnect) bus.

  • USB INFO: the devices, real or virtual, that are connected to the machine via USB bus.

  • MODALIASES: a modalias is a sysfs technique to capture the information that a hardware item exposes to the kernel, with the file basically providing a template or structure for this information. Each of the entries in this list describe one particular part of the machine’s (real or virtual) hardware, down to the level of alarm timers, framebuffers, and even speakers. In the event of a bug, this information can help your support engineer (or yourself) understand exactly what hardware is configured for this machine.

  • SERIAL PORTS: this section just lists the serial devices made available on this machine.

  • NETWORK INTERFACES: summarises the network interfaces available on this machine – essentially an abbreviated version of the output from some form of an ip command.

  • BLOCK DEVICE SUMMARY: a thumbnail sketch of the block devices (usually storage) available on this machine.

  • #dmidecode…: this section presents the basic DMI data, including the BIOS type, extent, size, and table location.

  • DMI DATA: the raw (undecoded) DMI table for this machine, presented for verification of the following DMI data sections, if desired.

  • DMI KEYPAIRS: the individual machine specifications, as decoded from the DMI table. The manpage dmidecode (8) gives more details on each of these keypairs.

00-maas-01-lshw

This script pulls system BIOS and vendor info, and generates user-defined tags for later use. Typical script output from a successful run looks something like the foldout below.

Typical script output ```` <?xml version="1.0" standalone="yes" ?> Computer Standard PC (i440FX + PIIX, 1996) QEMU pc-i440fx-eoan 64 SMBIOS version 2.8 DMI version 2.8 32-bit processes Motherboard 0 BIOS SeaBIOS 0 1.12.0-1 04/01/2014 98304 CPU Intel Core Processor (Skylake, IBRS) Intel Corp. 400 cpu@0 pc-i440fx-eoan CPU 0 2000000000 2000000000 64 mathematical co-processor FPU exceptions reporting virtual mode extensions debugging extensions page size extensions time stamp counter model-specific registers 4GB+ memory addressing (Physical Address Extension) machine check exceptions compare and exchange 8-byte on-chip advanced programmable interrupt controller (APIC) fast system calls memory type range registers page global enable machine check architecture conditional move instruction page attribute table 36-bit page size extensions multimedia extensions (MMX) fast floating point save/restore streaming SIMD extensions (SSE) streaming SIMD extensions (SSE2) self-snoop fast system calls no-execute bit (NX) 64bits extensions (x86-64) System Memory 1000 1073741824 1073741824 Multi-bit error-correcting code (ECC) DIMM RAM QEMU 0 DIMM 0 1073741824 Host bridge 440FX - 82441FX PMC [Natoma] Intel Corporation 100 pci@0000:00:00.0 02 32 33000000 ISA bridge 82371SB PIIX3 ISA [Natoma/Triton II] Intel Corporation 1 pci@0000:00:01.0 00 32 33000000 IDE interface 82371SB PIIX3 IDE [Natoma/Triton II] Intel Corporation 1.1 pci@0000:00:01.1 00 32 33000000 bus mastering Bridge 82371AB/EB/MB PIIX4 ACPI Intel Corporation 1.3 pci@0000:00:01.3 03 32 33000000 VGA compatible controller QXL paravirtual graphic card Red Hat, Inc. 2 pci@0000:00:02.0 04 32 33000000 Ethernet controller Virtio network device Red Hat, Inc. 3 pci@0000:00:03.0 00 64 33000000 MSI-X bus mastering PCI capabilities listing extension ROM Ethernet interface 0 virtio@0 ens3 52:54:00:0b:6d:8c Physical interface Audio device 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller Intel Corporation 4 pci@0000:00:04.0 01 32 33000000 Message Signalled Interrupts PCI capabilities listing USB controller 82801I (ICH9 Family) USB UHCI Controller #1 Intel Corporation 5 pci@0000:00:05.0 03 32 33000000 Universal Host Controller Interface (USB1) bus mastering UHCI Host Controller Linux 4.15.0-91-generic uhci_hcd 1 usb@2 usb2 4.15 USB 1.1 USB controller 82801I (ICH9 Family) USB UHCI Controller #2 Intel Corporation 5.1 pci@0000:00:05.1 03 32 33000000 Universal Host Controller Interface (USB1) bus mastering UHCI Host Controller Linux 4.15.0-91-generic uhci_hcd 1 usb@3 usb3 4.15 USB 1.1 USB controller 82801I (ICH9 Family) USB UHCI Controller #3 Intel Corporation 5.2 pci@0000:00:05.2 03 32 33000000 Universal Host Controller Interface (USB1) bus mastering UHCI Host Controller Linux 4.15.0-91-generic uhci_hcd 1 usb@4 usb4 4.15 USB 1.1 USB controller 82801I (ICH9 Family) USB2 EHCI Controller #1 Intel Corporation 5.7 pci@0000:00:05.7 03 32 33000000 Enhanced Host Controller Interface (USB2) bus mastering EHCI Host Controller Linux 4.15.0-91-generic ehci_hcd 1 usb@1 usb1 4.15 USB 2.0 Human interface device QEMU USB Tablet QEMU 1 usb@1:1 0.00 28754-0000:00:05.7-1 USB 2.0 Communication controller Virtio console Red Hat, Inc. 6 pci@0000:00:06.0 00 64 33000000 MSI-X bus mastering PCI capabilities listing Virtual I/O device 0 virtio@1 Unclassified device Virtio memory balloon Red Hat, Inc. 7 pci@0000:00:07.0 00 64 33000000 bus mastering PCI capabilities listing Virtual I/O device 0 virtio@2 1 scsi0 Emulated device ATA Disk QEMU HARDDISK 0.0.0 scsi@0:0.0.0 /dev/sda 8:0 2.5+ QM00001 5368709120 Partitioned disk MS-DOS partition table EXT4 volume Linux 1 scsi@0:0.0.0,1 /dev/sda1 8:1 1.0 b2eb4dd4-9fd3-44a3-a47a-47933d4bf29c 5367640064 5367643648 Primary partition Extended Attributes 4GB+ files 16TB+ files directories with 65000+ subdirs needs recovery 64bit filesystem extent-based allocation EXT2/EXT3 initialized volume ````

This output is roughly equivalent to the output of lshw -xml on the machine in question. There are many references to decode this information, so for now, here is a short glossary of most the terms (essentially, the tags) that typically appear in a listing like this:

  • businfo - the bus information for this device.

  • capacity - the maximum capacity reported by the device.

  • class - the device’s class.

  • clock - the bus clock of the device (in Hz).

  • description - a human-readable description of the hardware node.

  • dev - the device number (major.minor).

  • id - the internal identifier used by lshw.

  • logicalname - the logical node name used by the system.

  • physid - the physical id of the device.

  • product - the specific product name of the device.

  • serial - the serial number of the device.

  • size - the actual size of the device.

  • slot - location of the physical (or virtual) connection.

  • vendor - the name of the vendor or manufacturer of the device.

  • version - the version or release information associated with the device.

  • width - the address width of the device (32/64 bits).

Some additional fields may be present in this output. These will be identified and described as necessary for specific instances and situations.

00-maas-02-virtuality-2-8

This script, phased out as part of the 2.8 release, checked whether the machine being commissioned was a virtual machine. From MAAS 2.8 going forward, this functionality resides in the script 50-maas-01-commissioning.

00-maas-03-install-lldpd

This script installs the link layer discovery protocol (LLDP) daemon, which will later capture networking information about the machine. The lldpd needs to be installed early because it requires about a 60-second delay before running. Under normal conditions, there is typically no output from this script in the logs.

00-maas-04-list-modaliases

This script figures out what hardware modules are loaded, providing a way to autorun certain scripts based on which modules are loaded. Successful log output looks something like the foldout below.

Typical script output
acpi:ACPI0010:PNP0A05:
acpi:LNXCPU:
acpi:LNXPWRBN:
acpi:LNXSYBUS:
acpi:LNXSYSTM:
acpi:PNP0303:
acpi:PNP0501:
acpi:PNP0700:
acpi:PNP0A03:
acpi:PNP0A06:
acpi:PNP0B00:
acpi:PNP0C0F:
acpi:PNP0F13:
acpi:QEMU0002:
cpu:type:x86,ven0000fam0006mod005E:feature:,0000,0001,0002,0003,0004,0005,0006,0007,0008,0009,000B,000C,000D,000E,000F,0010,0011,0013,0017,0018,0019,001A,001B,002B,0034,003A,003B,003D,0068,006F,0070,0072,0074,0075,0076,0079,007F,0080,0081,0085,0089,008C,008D,0091,0093,0094,0095,0096,0097,0098,0099,009A,009B,009C,009D,009E,009F,00C0,00C5,00C8,00E1,00E7,00F0,00F1,00F3,00F5,00F9,00FA,00FB,00FE,0100,0101,0102,0103,0104,0120,0121,0123,0125,0127,0128,0129,012A,0132,0133,0134,0137,0140,0141,0142,0143,01C2,0202,024A,025A,025B,025D,025F
dmi:bvnSeaBIOS:bvr1.12.0-1:bd04/01/2014:svnQEMU:pnStandardPC(i440FX+PIIX,1996):pvrpc-i440fx-eoan:cvnQEMU:ct1:cvrpc-i440fx-eoan:
hid:b0003g0001v00000627p00000001
input:b0003v0627p0001e0001-e0,1,2,3,4,k110,111,112,r8,a0,1,m4,lsfw
input:b0011v0001p0001eAB41-e0,1,4,11,14,k71,72,73,74,75,76,77,79,7A,7B,7C,7D,7E,7F,80,8C,8E,8F,9B,9C,9D,9E,9F,A3,A4,A5,A6,AC,AD,B7,B8,B9,D9,E2,ram4,l0,1,2,sfw
input:b0011v0002p0006e0000-e0,1,2,k110,111,112,113,114,r0,1,6,8,amlsfw
input:b0019v0000p0001e0000-e0,1,k74,ramlsfw
pci:v00001AF4d00001000sv00001AF4sd00000001bc02sc00i00
pci:v00001AF4d00001002sv00001AF4sd00000005bc00scFFi00
pci:v00001AF4d00001003sv00001AF4sd00000003bc07sc80i00
pci:v00001B36d00000100sv00001AF4sd00001100bc03sc00i00
pci:v00008086d00001237sv00001AF4sd00001100bc06sc00i00
pci:v00008086d00002668sv00001AF4sd00001100bc04sc03i00
pci:v00008086d00002934sv00001AF4sd00001100bc0Csc03i00
pci:v00008086d00002935sv00001AF4sd00001100bc0Csc03i00
pci:v00008086d00002936sv00001AF4sd00001100bc0Csc03i00
pci:v00008086d0000293Asv00001AF4sd00001100bc0Csc03i20
pci:v00008086d00007000sv00001AF4sd00001100bc06sc01i00
pci:v00008086d00007010sv00001AF4sd00001100bc01sc01i80
pci:v00008086d00007113sv00001AF4sd00001100bc06sc80i00
platform:Fixed MDIO bus
platform:alarmtimer
platform:i8042
platform:pcspkr
platform:platform-framebuffer
platform:reg-dummy
platform:serial8250
scsi:t-0x00
serio:ty01pr00id00ex00
serio:ty06pr00id00ex00
usb:v0627p0001d0000dc00dsc00dp00ic03isc00ip00in00
usb:v1D6Bp0001d0415dc09dsc00dp00ic09isc00ip00in00
usb:v1D6Bp0002d0415dc09dsc00dp00ic09isc00ip00in00
virtio:d00000001v00001AF4
virtio:d00000003v00001AF4
virtio:d00000005v00001AF4

The output is similar to the modaliases output shown in the 00-maas-00-support-info output. Here, we can decode some of the fields for a PCI entry, for example, set off my one or more consecutive letters:

  • v marks a vendor code.

  • d indicates a device code.

  • sv precedes a subvendor code.

  • sd sets off a subdevice code.

  • bc indicates a bus class code.

  • sc denotes a bus subclass code.

  • i is followed by an interface code.

There are many more fields, depending upon the device type, and a wide variety of codes for every field for every device. Every bus has its own schema for modalias – hence, cataloguing these combinations is beyond the scope of this document set. Understanding the way these codes are constructed, though, may help you know how to find needed information for a specific situation.

00-maas-05-dhcp-unconfigured-ifaces

MAAS will want to know all the ways the machine is connected to the network. Only PXE comes online during boot; this script brings all the other networks online so they can be recognised. Under normal conditions, this script does not produce a significant amount of output.

00-maas-06-get-fruid-api-data

This script gathers information for the Facebook wedge power type. Typical output from a successful run looks something like the foldout below.

Typical script output
+ sleep 5
++ ls /sys/class/net
+ for ifname in $(ls /sys/class/net)
+ '[' ens3 '!=' lo ']'
+ curl --max-time 1 -s -f http://fe80::1%ens3:8080/api/sys/mb/fruid
+ for ifname in $(ls /sys/class/net)
+ '[' lo '!=' lo ']'
+ exit 0

You will note that this output does not actually contain any specific information, but rather the echoed commands of a script to gather the information.

00-maas-08-serial-ports

This script lists what serial ports are available on the machine. Log output from a normal, successful run is simply a list of serial ports, something like the foldout below.

Typical script output ```` /sys/devices/platform/serial8250/tty/ttyS1 /sys/devices/platform/serial8250/tty/ttyS10 /sys/devices/platform/serial8250/tty/ttyS11 /sys/devices/platform/serial8250/tty/ttyS12 /sys/devices/platform/serial8250/tty/ttyS13 /sys/devices/platform/serial8250/tty/ttyS14 /sys/devices/platform/serial8250/tty/ttyS15 /sys/devices/platform/serial8250/tty/ttyS16 /sys/devices/platform/serial8250/tty/ttyS17 /sys/devices/platform/serial8250/tty/ttyS18 /sys/devices/platform/serial8250/tty/ttyS19 /sys/devices/platform/serial8250/tty/ttyS2 /sys/devices/platform/serial8250/tty/ttyS20 /sys/devices/platform/serial8250/tty/ttyS21 /sys/devices/platform/serial8250/tty/ttyS22 /sys/devices/platform/serial8250/tty/ttyS23 /sys/devices/platform/serial8250/tty/ttyS24 /sys/devices/platform/serial8250/tty/ttyS25 /sys/devices/platform/serial8250/tty/ttyS26 /sys/devices/platform/serial8250/tty/ttyS27 /sys/devices/platform/serial8250/tty/ttyS28 /sys/devices/platform/serial8250/tty/ttyS29 /sys/devices/platform/serial8250/tty/ttyS3 /sys/devices/platform/serial8250/tty/ttyS30 /sys/devices/platform/serial8250/tty/ttyS31 /sys/devices/platform/serial8250/tty/ttyS4 /sys/devices/platform/serial8250/tty/ttyS5 /sys/devices/platform/serial8250/tty/ttyS6 /sys/devices/platform/serial8250/tty/ttyS7 /sys/devices/platform/serial8250/tty/ttyS8 /sys/devices/platform/serial8250/tty/ttyS9 /sys/devices/pnp0/00:04/tty/ttyS0 /sys/devices/virtual/tty/console /sys/devices/virtual/tty/ptmx /sys/devices/virtual/tty/tty /sys/devices/virtual/tty/tty0 /sys/devices/virtual/tty/tty1 /sys/devices/virtual/tty/tty10 /sys/devices/virtual/tty/tty11 /sys/devices/virtual/tty/tty12 /sys/devices/virtual/tty/tty13 /sys/devices/virtual/tty/tty14 /sys/devices/virtual/tty/tty15 /sys/devices/virtual/tty/tty16 /sys/devices/virtual/tty/tty17 /sys/devices/virtual/tty/tty18 /sys/devices/virtual/tty/tty19 /sys/devices/virtual/tty/tty2 /sys/devices/virtual/tty/tty20 /sys/devices/virtual/tty/tty21 /sys/devices/virtual/tty/tty22 /sys/devices/virtual/tty/tty23 /sys/devices/virtual/tty/tty24 /sys/devices/virtual/tty/tty25 /sys/devices/virtual/tty/tty26 /sys/devices/virtual/tty/tty27 /sys/devices/virtual/tty/tty28 /sys/devices/virtual/tty/tty29 /sys/devices/virtual/tty/tty3 /sys/devices/virtual/tty/tty30 /sys/devices/virtual/tty/tty31 /sys/devices/virtual/tty/tty32 /sys/devices/virtual/tty/tty33 /sys/devices/virtual/tty/tty34 /sys/devices/virtual/tty/tty35 /sys/devices/virtual/tty/tty36 /sys/devices/virtual/tty/tty37 /sys/devices/virtual/tty/tty38 /sys/devices/virtual/tty/tty39 /sys/devices/virtual/tty/tty4 /sys/devices/virtual/tty/tty40 /sys/devices/virtual/tty/tty41 /sys/devices/virtual/tty/tty42 /sys/devices/virtual/tty/tty43 /sys/devices/virtual/tty/tty44 /sys/devices/virtual/tty/tty45 /sys/devices/virtual/tty/tty46 /sys/devices/virtual/tty/tty47 /sys/devices/virtual/tty/tty48 /sys/devices/virtual/tty/tty49 /sys/devices/virtual/tty/tty5 /sys/devices/virtual/tty/tty50 /sys/devices/virtual/tty/tty51 /sys/devices/virtual/tty/tty52 /sys/devices/virtual/tty/tty53 /sys/devices/virtual/tty/tty54 /sys/devices/virtual/tty/tty55 /sys/devices/virtual/tty/tty56 /sys/devices/virtual/tty/tty57 /sys/devices/virtual/tty/tty58 /sys/devices/virtual/tty/tty59 /sys/devices/virtual/tty/tty6 /sys/devices/virtual/tty/tty60 /sys/devices/virtual/tty/tty61 /sys/devices/virtual/tty/tty62 /sys/devices/virtual/tty/tty63 /sys/devices/virtual/tty/tty7 /sys/devices/virtual/tty/tty8 /sys/devices/virtual/tty/tty9 /sys/devices/virtual/tty/ttyprintk ````

The output of this script may be useful when you’re trying to verify that a particular serial interface is active and available on your machine.

40-maas-01-network-interfaces

This script is just used to get the IP address, which can then be associated with a VLAN/subnet. As you can see from the sample (successful) output below, the results are simply the output of a command similar to ip a.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:0b:6d:8c brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.213/24 brd 192.168.122.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe0b:6d8c/64 scope link 
       valid_lft forever preferred_lft forever

50-maas-01-commissioning

This script is the main MAAS tool, gathering information on machine resources, such as storage, network devices, CPU, RAM, etc. We currently pull this data using lxd: We use a Go binary built from lxd source that just contains the minimum source to gather the resource information we need.

Output from a successful run is fairly robust, and looks something like the foldout below:

Typical script output
--2020-03-23 22:02:15--  http://192.168.122.2:5248/machine-resources/amd64
Connecting to 192.168.122.2:5248... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4373408 (4.2M) [application/octet-stream]
Saving to: ‘/tmp/user_data.sh.EK9wIv/scripts/downloads/50-maas-01-commissioning/amd64’
     0K .......... .......... .......... .......... ..........  1% 12.7M 0s
    50K .......... .......... .......... .......... ..........  2% 19.0M 0s
   100K .......... .......... .......... .......... ..........  3% 19.5M 0s
   150K .......... .......... .......... .......... ..........  4% 20.5M 0s
   200K .......... .......... .......... .......... ..........  5% 15.0M 0s
   250K .......... .......... .......... .......... ..........  7% 11.4M 0s
   300K .......... .......... .......... .......... ..........  8% 19.1M 0s
   350K .......... .......... .......... .......... ..........  9% 19.9M 0s
   400K .......... .......... .......... .......... .......... 10% 17.5M 0s
   450K .......... .......... .......... .......... .......... 11% 19.2M 0s
   500K .......... .......... .......... .......... .......... 12% 17.0M 0s
   550K .......... .......... .......... .......... .......... 14% 19.2M 0s
   600K .......... .......... .......... .......... .......... 15% 11.7M 0s
   650K .......... .......... .......... .......... .......... 16% 19.4M 0s
   700K .......... .......... .......... .......... .......... 17% 20.2M 0s
   750K .......... .......... .......... .......... .......... 18% 20.4M 0s
   800K .......... .......... .......... .......... .......... 19% 10.7M 0s
   850K .......... .......... .......... .......... .......... 21% 17.8M 0s
   900K .......... .......... .......... .......... .......... 22% 19.2M 0s
   950K .......... .......... .......... .......... .......... 23% 20.0M 0s
  1000K .......... .......... .......... .......... .......... 24% 17.2M 0s
  1050K .......... .......... .......... .......... .......... 25% 15.9M 0s
  1100K .......... .......... .......... .......... .......... 26% 16.4M 0s
  1150K .......... .......... .......... .......... .......... 28% 12.4M 0s
  1200K .......... .......... .......... .......... .......... 29% 17.1M 0s
  1250K .......... .......... .......... .......... .......... 30% 20.6M 0s
  1300K .......... .......... .......... .......... .......... 31% 19.9M 0s
  1350K .......... .......... .......... .......... .......... 32% 14.9M 0s
  1400K .......... .......... .......... .......... .......... 33% 16.2M 0s
  1450K .......... .......... .......... .......... .......... 35% 20.4M 0s
  1500K .......... .......... .......... .......... .......... 36% 20.0M 0s
  1550K .......... .......... .......... .......... .......... 37% 19.6M 0s
  1600K .......... .......... .......... .......... .......... 38% 17.9M 0s
  1650K .......... .......... .......... .......... .......... 39% 17.6M 0s
  1700K .......... .......... .......... .......... .......... 40% 16.8M 0s
  1750K .......... .......... .......... .......... .......... 42% 19.0M 0s
  1800K .......... .......... .......... .......... .......... 43% 18.3M 0s
  1850K .......... .......... .......... .......... .......... 44% 18.9M 0s
  1900K .......... .......... .......... .......... .......... 45% 20.7M 0s
  1950K .......... .......... .......... .......... .......... 46% 14.3M 0s
  2000K .......... .......... .......... .......... .......... 47% 13.7M 0s
  2050K .......... .......... .......... .......... .......... 49% 20.1M 0s
  2100K .......... .......... .......... .......... .......... 50% 20.0M 0s
  2150K .......... .......... .......... .......... .......... 51% 20.4M 0s
  2200K .......... .......... .......... .......... .......... 52% 16.7M 0s
  2250K .......... .......... .......... .......... .......... 53% 18.9M 0s
  2300K .......... .......... .......... .......... .......... 55% 15.3M 0s
  2350K .......... .......... .......... .......... .......... 56% 19.8M 0s
  2400K .......... .......... .......... .......... .......... 57% 18.3M 0s
  2450K .......... .......... .......... .......... .......... 58% 18.8M 0s
  2500K .......... .......... .......... .......... .......... 59% 20.4M 0s
  2550K .......... .......... .......... .......... .......... 60% 17.3M 0s
  2600K .......... .......... .......... .......... .......... 62% 18.7M 0s
  2650K .......... .......... .......... .......... .......... 63% 15.1M 0s
  2700K .......... .......... .......... .......... .......... 64% 20.9M 0s
  2750K .......... .......... .......... .......... .......... 65% 20.7M 0s
  2800K .......... .......... .......... .......... .......... 66% 17.6M 0s
  2850K .......... .......... .......... .......... .......... 67% 18.3M 0s
  2900K .......... .......... .......... .......... .......... 69% 14.1M 0s
  2950K .......... .......... .......... .......... .......... 70% 16.3M 0s
  3000K .......... .......... .......... .......... .......... 71% 19.3M 0s
  3050K .......... .......... .......... .......... .......... 72% 18.3M 0s
  3100K .......... .......... .......... .......... .......... 73% 20.5M 0s
  3150K .......... .......... .......... .......... .......... 74% 15.7M 0s
  3200K .......... .......... .......... .......... .......... 76% 16.3M 0s
  3250K .......... .......... .......... .......... .......... 77% 16.9M 0s
  3300K .......... .......... .......... .......... .......... 78% 20.6M 0s
  3350K .......... .......... .......... .......... .......... 79% 18.9M 0s
  3400K .......... .......... .......... .......... .......... 80% 20.1M 0s
  3450K .......... .......... .......... .......... .......... 81% 18.7M 0s
  3500K .......... .......... .......... .......... .......... 83% 13.1M 0s
  3550K .......... .......... .......... .......... .......... 84% 15.7M 0s
  3600K .......... .......... .......... .......... .......... 85% 20.4M 0s
  3650K .......... .......... .......... .......... .......... 86% 17.8M 0s
  3700K .......... .......... .......... .......... .......... 87% 19.7M 0s
  3750K .......... .......... .......... .......... .......... 88% 17.0M 0s
  3800K .......... .......... .......... .......... .......... 90% 13.6M 0s
  3850K .......... .......... .......... .......... .......... 91% 17.4M 0s
  3900K .......... .......... .......... .......... .......... 92% 20.8M 0s
  3950K .......... .......... .......... .......... .......... 93% 16.8M 0s
  4000K .......... .......... .......... .......... .......... 94% 19.9M 0s
  4050K .......... .......... .......... .......... .......... 95% 14.9M 0s
  4100K .......... .......... .......... .......... .......... 97% 17.8M 0s
  4150K .......... .......... .......... .......... .......... 98% 16.6M 0s
  4200K .......... .......... .......... .......... .......... 99% 18.4M 0s
  4250K .......... ..........                                 100% 15.5M=0.2s
2020-03-23 22:02:16 (17.3 MB/s) - ‘/tmp/user_data.sh.EK9wIv/scripts/downloads/50-maas-01-commissioning/amd64’ saved [4373408/4373408]
{
    "cpu": {
        "architecture": "x86_64",
        "sockets": [
            {
                "name": "Intel Core Processor (Skylake, IBRS)",
                "vendor": "GenuineIntel",
                "socket": 0,
                "cache": [
                    {
                        "level": 1,
                        "type": "Data",
                        "size": 32768
                    },
                    {
                        "level": 1,
                        "type": "Instruction",
                        "size": 32768
                    },
                    {
                        "level": 2,
                        "type": "Unified",
                        "size": 4194304
                    },
                    {
                        "level": 3,
                        "type": "Unified",
                        "size": 16777216
                    }
                ],
                "cores": [
                    {
                        "core": 0,
                        "numa_node": 0,
                        "threads": [
                            {
                                "id": 0,
                                "thread": 0,
                                "online": true
                            }
                        ]
                    }
                ]
            }
        ],
        "total": 1
    },
    "memory": {
        "nodes": [
            {
                "numa_node": 0,
                "hugepages_used": 0,
                "hugepages_total": 0,
                "used": 876933120,
                "total": 1032945664
            }
        ],
        "hugepages_total": 0,
        "hugepages_used": 0,
        "hugepages_size": 2097152,
        "used": 164585472,
        "total": 1032945664
    },
    "gpu": {
        "cards": [
            {
                "numa_node": 0,
                "pci_address": "0000:00:02.0",
                "vendor": "Red Hat, Inc.",
                "vendor_id": "1b36",
                "product": "QXL paravirtual graphic card",
                "product_id": "0100"
            }
        ],
        "total": 1
    },
    "network": {
        "cards": [
            {
                "driver": "virtio_net",
                "driver_version": "4.15.0-91-generic",
                "ports": [
                    {
                        "id": "ens3",
                        "address": "52:54:00:0b:6d:8c",
                        "port": 0,
                        "protocol": "ethernet",
                        "port_type": "other",
                        "transceiver_type": "internal",
                        "auto_negotiation": false,
                        "link_detected": true
                    }
                ],
                "numa_node": 0,
                "pci_address": "0000:00:03.0",
                "vendor": "Red Hat, Inc.",
                "vendor_id": "1af4",
                "product_id": "0001"
            }
        ],
        "total": 1
    },
    "storage": {
        "disks": [
            {
                "id": "sda",
                "device": "8:0",
                "model": "QEMU HARDDISK",
                "type": "scsi",
                "read_only": false,
                "size": 5368709120,
                "removable": false,
                "numa_node": 0,
n                "device_path": "pci-0000:00:01.1-ata-1",
                "block_size": 512,
                "firmware_version": "2.5+",
                "rpm": 0,
                "serial": "QM00001",
                "device_id": "ata-QEMU_HARDDISK_QM00001",
                "partitions": [
                    {
                        "id": "sda1",
                        "device": "8:1",
                        "read_only": false,
                        "size": 5367643648,
                        "partition": 1
                    }
                ]
            }
        ],
        "total": 2
    }
}

This output represents a catalogue of the resources available on this machine, in a format readable by both humans and machines. You can use this to verify that your configuration is what you expected.

99-maas-01-capture-lldp

This script gathers LLDP network information to be presented on the logs page; this data is not used by MAAS at all. Note that the log output from a successful run is uninteresting.

99-maas-05-kernel-cmdline

This script is used to update the boot devices; it double-checks that the right boot interface is selected. Successful output is the specific command that boots the machine kernel, something like this:

nomodeset ro root=squash:http://192.168.122.2:5248/images/ubuntu/amd64/generic/bionic/daily/squashfs ip=::::52-54-00-0b-6d-8c:BOOTIF ip6=off overlayroot=tmpfs overlayroot_cfgdisk=disabled cc:{'datasource_list': ['MAAS']}end_cc cloud-config-url=http://192-168-122-0--24.maas-internal:5248/MAAS/metadata/latest/by-id/pb6833/?op=get_preseed apparmor=0 log_host=192.168.122.2 log_port=5247 BOOTIF=01-52:54:00:0b:6d:8c

These are the kernel command line parameters, which control the invocation of various modules built into the kernel. The function modprobe parses this kernel command line and collects the relevant module parameters when it loads a module. Note that this command line could also be used to pull in loadable modules.