Errors or typos? Topics missing? Hard to read? Let us know.
You can customise your MAAS deployments with scripts:
-
Commissioning Scripts: Control or extend the commissioning process.
-
Hardware Test Scripts: Add specific tests for your unique hardware configuration.
-
Terraform Integration: Integrate your IAC practices with MAAS.
Machine release scripts (MAAS 3.5)
You can also use machine release scripts – scripts that will be run when releasing a machine from deployment. These scripts run on an ephemeral copy of Ubuntu that is loaded after the deployed OS has been shut down. This ephemeral Ubuntu is similar to the OS image used to commission machines.
Release scripts are the same type of scripts that you can create for commissioning or testing, with one difference: script_type: release
. Here’s a sample release script:
#!/usr/bin/env python3
#
# hello-maas - Simple release script.
#
# Copyright (C) 2016-2024 Canonical
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# --- Start MAAS 1.0 script metadata ---
# name: hello-maas
# title: Simple release script
# description: Simple release script
# script_type: release
# packages:
# apt:
# - moreutils
# --- End MAAS 1.0 script metadata --
import socket
host = '10.10.10.10'
port = 3333
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.sendall(b'Hello, MAAS')
s.close()
You can upload release scripts via API or CLI with a command similar to this one:
maas $PROFILE node-scripts create type=release name='hello-maas' script@=/home/ubuntu/hello-maas.py
You can check your uploaded release scripts like this:
maas $PROFILE node-scripts read type=release
Among listed scripts you might see one named wipe-disks
. This is the script that comes with MAAS to support the Disk Erase functionality.
Once you have your script uploaded to MAAS, you can pass it as a parameter to the MAAS CLI:
maas $PROFILE machine release $SYSTEM_ID scripts=hello-maas
You can inspect release script results via the MAAS CLI:
maas $PROFILE node-script-results read $SYSTEM_ID type=release
Last updated 5 months ago.