metalsmith/roles/metalsmith_deployment
Dmitry Tantsur e2085dc026 Support creating users via configdrive
Change-Id: I93259ccd98d4153f1ed370541e2208124ddb0ca1
2018-06-29 16:33:17 +02:00
..
defaults Support creating users via configdrive 2018-06-29 16:33:17 +02:00
meta Simple role to deploy instances 2018-06-11 11:01:08 +02:00
tasks Support creating users via configdrive 2018-06-29 16:33:17 +02:00
README.rst ansible: explicit support for netboot, correct extra_args 2018-06-12 09:34:31 +02:00

README.rst

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_extra_args

the default for extra_args.

metalsmith_image

the default for image.

metalsmith_capabilities

the default for capabilities.

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.

Instance

Each instances has the following attributes:

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.

capabilities (defaults to metalsmith_capabilities)

node capabilities to request when scheduling.

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. Mandatory.

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.

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
          - hostname: control-0
            resource_class: control
            capabilities:
              boot_mode: uefi
            nics:
              - network: ctlplane
              - port: 1899af15-149d-47dc-b0dc-a68614eeb5c4