metalsmith/roles/metalsmith_deployment/README.rst

4.2 KiB

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_conductor_group

the default for conductor_group.

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 is metalsmith.

Instance

Each instances has the following attributes:

candidates (defaults to metalsmith_candidates)

list of nodes (UUIDs or names) to be considered for deployment.

capabilities (defaults to metalsmith_capabilities)

node capabilities to request when scheduling.

conductor_group (defaults to metalsmith_conductor_group)

conductor group to pick nodes from.

Note

Currently it's not possible to specify the default group.

extra_args (defaults to metalsmith_extra_args)

additional arguments to pass to the metalsmith CLI on all calls.

image (defaults to metalsmith_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 to metalsmith_nics)

list of virtual NICs to attach to node's physical NICs. Each is an object with exactly one attribute:

network

creates a port on the given network, for example:

nics:
  - network: private
  - network: ctlplane
port

uses the provided pre-created port:

nics:
  - port: b2254316-7867-4615-9fb7-911b3f38ca2a
resource_class (defaults to metalsmith_resource_class)

requested node's resource class.

root_size (defaults to metalsmith_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 to metalsmith_ssh_public_keys)

list of file names with SSH public keys to put to the node.

user_name (defaults to metalsmith_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