Creating a custom iSCSI OS template¶
Custom iSCSI templates allow users to build their own images. Typically a user would start from a standard Metalcloud template and modify it:
This tutorial uses the CLI. Visit using the CLI for more details.
Creating a “golden” drive¶
List available templates
$ metalcloud-cli volume-template list Volume templates I have access to as user [email protected]: +-------+-----------------------------------------+----------------------------------+-------+---------------------------+-----------+ | ID | LABEL | NAME | SIZE | STATUS | FLAGS | +-------+-----------------------------------------+----------------------------------+-------+---------------------------+-----------+ | 6 | ubuntu-12-04 | Ubuntu-12.04 | 40960 | deprecated_deny_provision | | | 13 | centos6-5 | CentOS6.5 | 40960 | deprecated_allow_expand | | | 14 | centos6-6 | CentOS6.6 | 41000 | deprecated_allow_expand | | | 18 | centos71v1 | CentOS 7.1 | 40960 | deprecated_allow_expand | | +-------+-----------------------------------------+----------------------------------+-------+---------------------------+-----------+ Total: 4 Volume templates
Provision an Instance
$ metalcloud-cli instance-array create -boot pxe_iscsi -firewall-management-disabled -infra demo -instance-count 1 -label gold
Add a drive array to the instance
Use the ID of the template, for instance 18 for CentOS 7.1
$ metalcloud-cli drive-array create -ia gold -infra demo -size 100000 -label gold-da -template 18
Deploy the infrastructure
$ metalcloud-cli infrastructure deploy -id demo
Login or connect to the server and perform required modifications, test etc.
$ metalcloud-cli instance-array get -id gold -show-credentials
Shutdown the server to avoid in-flight data from not being serialized
$ metalcloud-cli instance power-control -id 58413 -operation soft
List the drives of the gold-da drive array
$ metalcloud-cli drive-array get -id gold-da Drive Array #47799 attached to instance array 37135 has the following drives: +-------+-------------------------------+-----------+-----------+-----------+-------------------------------+--------------------------+--------------------------+ | ID | LABEL | STATUS | SIZE (MB) | TYPE | ATTACHED TO | TEMPLATE | DETAILS | +-------+-------------------------------+-----------+-----------+-----------+-------------------------------+--------------------------+--------------------------+ | 74270 | drive-74270 | active | 100000 | iscsi_ssd | instance-58413 | | none none | +-------+-------------------------------+-----------+-----------+-----------+-------------------------------+--------------------------+--------------------------+ Total: 1 Drives
Creating a a volume template from the golden drive¶
Create a template from the first drive
$ metalcloud-cli volume-template create -id 74270 -boot-methods-supported pxe_iscsi -boot-type hybrid -label "centos7.1-custom" -description "Custom 7.1 template" -name "Custom Centos 7.1"
The “create volume_template” operation takes the following arguments:
$ ./metalcloud-cli volume-template create -h Command: volume-template create Create volume templates (alternatively use "new vt") -boot-methods-supported The boot_methods_supported of the volume template. Defaults to 'pxe_iscsi'. -boot-type (Required) The boot_type of the volume template. Possible values: 'uefi_only','legacy_only','hybrid' -deprecated (Flag) set to true if this template is deprecated -description (Required) The description of the volume template -id (Required) The id of the drive to create the volume template from -label (Required) The label of the volume template -name (Required) The display name of the volume template -return-id (Optional) Will print the ID of the created Drive Array. Useful for automating tasks. -tags The tags of the volume template, comma separated. -h Show command help and exit.
Notes on server boot methods:
- -boot-methods-supported reffers to the type of mechanism emplyed to boot this template. For iSCSi drives use
pxe_iscsi
. - -boot-type reffers to the boot process of the server which can be either legacy BIOS or EFI. Hybrid reffers to templates that support both mechanisms.
- -boot-methods-supported reffers to the type of mechanism emplyed to boot this template. For iSCSi drives use
Check that the volume template has been created
$ metalcloud-cli volume-template list Volume templates I have access to as user [email protected]: +-------+-----------------------------------------+----------------------------------+-------+---------------------------+-----------+ | ID | LABEL | NAME | SIZE | STATUS | FLAGS | +-------+-----------------------------------------+----------------------------------+-------+---------------------------+-----------+ | 6 | ubuntu-12-04 | Ubuntu-12.04 | 40960 | deprecated_deny_provision | | | 13 | centos6-5 | CentOS6.5 | 40960 | deprecated_allow_expand | | | 14 | centos6-6 | CentOS6.6 | 41000 | deprecated_allow_expand | | | 18 | centos71v1 | CentOS 7.1 | 40960 | deprecated_allow_expand | | | 19 | centos71-custom | CustomCentOS 7.1 | 40960 | deprecated_allow_expand | | +-------+-----------------------------------------+----------------------------------+-------+---------------------------+-----------+ Total: 5 Volume templates
Please note that the volume template is a private template meaning only it’s owner has access to it.
Now the template can be used as any other template.
$ metalcloud-cli drive-array create -ia gold -infra demo -size 100000 -label gold-da -template 19