Metalsmith Deployment¶
This role deploys instances using metalsmith CLI.
Variables¶
The only required variable is:
metalsmith_instances- list of instances to provision, see Instance for instance description.
The following optional variables provide the defaults for Instance attributes:
metalsmith_candidates- the default for
candidates. metalsmith_capabilities- the default for
capabilities. metalsmith_extra_args- the default for
extra_args. metalsmith_image- the default for
image. metalsmith_netboot- the default for
netboot metalsmith_nics- the default for
nics. metalsmith_resource_class- the default for
resource_class. metalsmith_root_size- the default for
root_size. metalsmith_ssh_public_keys- the default for
ssh_public_keys. metalsmith_user_name- the default for
user_name, the default value ismetalsmith.
Instance¶
Each instances has the following attributes:
candidates(defaults tometalsmith_candidates)- list of nodes (UUIDs or names) to be considered for deployment.
capabilities(defaults tometalsmith_capabilities)- node capabilities to request when scheduling.
extra_args(defaults tometalsmith_extra_args)- additional arguments to pass to the
metalsmithCLI on all calls. image(defaults tometalsmith_image)- UUID or name of the image to use for deployment. Mandatory.
netboot- whether to boot the deployed instance from network (PXE, iPXE, etc). The default is to use local boot (requires a bootloader on the image).
nics(defaults tometalsmith_nics)list of virtual NICs to attach to node’s physical NICs. Each is an object with exactly one attribute:
networkcreates a port on the given network, for example:
nics: - network: private - network: ctlplane
portuses the provided pre-created port:
nics: - port: b2254316-7867-4615-9fb7-911b3f38ca2a
resource_class(defaults tometalsmith_resource_class)- requested node’s resource class.
root_size(defaults tometalsmith_root_size)size of the root partition, if partition images are used.
Note
Also required for whole-disk images due to how the Bare Metal service currently works.
ssh_public_keys(defaults tometalsmith_ssh_public_keys)- list of file names with SSH public keys to put to the node.
user_name(defaults tometalsmith_user_name)- name of the user to create on the instance via configdrive. Requires cloud-init on the image.
Example¶
---
- hosts: all
tasks:
- include_role:
name: metalsmith_deployment
vars:
metalsmith_image: centos7
metalsmith_nics:
- network: ctlplane
metalsmith_ssh_public_keys:
- /home/user/.ssh/id_rsa.pub
metalsmith_instances:
- hostname: compute-0
resource_class: compute
root_size: 100
capabilities:
boot_mode: uefi
- hostname: compute-1
resource_class: compute
root_size: 100
capabilities:
boot_mode: uefi
user_name: heat-admin
- hostname: compute-2
resource_class: compute
candidates:
- e63650f2-4e7d-40b2-8932-f5b0e54698c7
- f19d00dd-60e1-46c8-b83c-782b4d291d9e
- hostname: control-0
resource_class: control
capabilities:
boot_mode: uefi
nics:
- network: ctlplane
- port: 1899af15-149d-47dc-b0dc-a68614eeb5c4