This role deploys instances using metalsmith CLI.
The only required variable is:
metalsmith_instancesThe following optional variables provide the defaults for Instance attributes:
metalsmith_candidatescandidates.metalsmith_capabilitiescapabilities.metalsmith_conductor_groupconductor_group.metalsmith_debugfalse.metalsmith_extra_argsextra_args.metalsmith_imageimage.metalsmith_image_checksumimage_checksum.metalsmith_image_kernelimage_kernel.metalsmith_image_ramdiskimage_ramdisk.metalsmith_netbootnetbootmetalsmith_nicsnics.metalsmith_resource_classresource_class.metalsmith_root_sizeroot_size.metalsmith_ssh_public_keysssh_public_keys.metalsmith_statereserved, absent
or the default value present.metalsmith_swap_sizeswap_size.metalsmith_traitstraits.metalsmith_user_nameuser_name, the default value is metalsmith.Each instances has the following attributes:
candidates (defaults to metalsmith_candidates)capabilities (defaults to metalsmith_capabilities)config_driveextra data to add to the config-drive generated for this instance:
cloud_configmeta_datapublic_keys, uuid, name, and hostname.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)metalsmith CLI on all calls.
(No longer supported, will raise an error if used)image (defaults to metalsmith_image)image_checksum (defaults to metalsmith_image_checksum)image_kernel (defaults to metalsmith_image_kernel)image is a URL of
a partition image.image_ramdisk (defaults to metalsmith_image_ramdisk)image is a URL of
a partition image.netbootnics (defaults to metalsmith_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
can optionally take a fixed IP to assign:
nics:
- network: private
fixed_ip: 10.0.0.2
- network: ctlplane
fixed_ip: 192.168.42.30
portuses the provided pre-created port:
nics:
- port: b2254316-7867-4615-9fb7-911b3f38ca2a
subnetcreates a port on the given subnet, for example:
nics:
- subnet: private-subnet1
resource_class (defaults to metalsmith_resource_class)root_size (defaults to metalsmith_root_size)size of the root partition (in GiB), 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)swap_size (defaults to metalsmith_swap_size)traitsuser_name (defaults to metalsmith_user_name)---
- 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
swap_size: 4096
capabilities:
boot_mode: uefi
traits:
- CUSTOM_GPU
- hostname: compute-1
resource_class: compute
root_size: 100
swap_size: 4096
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
- hostname: custom-partition-image
resource_class: custom
image: https://example.com/images/custom-1.0.root.img
image_kernel: https://example.com/images/custom-1.0.vmlinuz
image_ramdisk: https://example.com/images/custom-1.0.initrd
image_checksum: https://example.com/images/MD5SUMS
- hostname: custom-whole-disk-image
resource_class: custom
image: https://example.com/images/custom-1.0.qcow2
image_checksum: https://example.com/images/MD5SUMS
Provision and unprovision ironic baremetal instances using metalsmith, which is a a simple tool to provision bare metal machines using OpenStack Bare Metal Service (ironic) and, optionally, OpenStack Image Service (glance) and OpenStack Networking Service (neutron).
| instances: | List of node description dicts to perform operations on |
|---|---|
| clean_up: | Clean up resources on failure |
| state: | Desired provision state, "present" to provision, "absent" to unprovision, "reserved" to create an allocation record without changing the node state |
| wait: | A boolean value instructing the module to wait for node provision to complete before returning. A 'yes' is implied if the number of instances is more than the concurrency. |
| timeout: | An integer value representing the number of seconds to wait for the node provision to complete. |
| concurrency: | Maximum number of instances to provision at once. Set to 0 to have no concurrency limit |
| log_level: | Set the logging level for the log which is available in the returned 'logging' result. |
| : | Steve Baker (@stevebaker) |
|---|
- name: Provision instances
metalsmith_instances:
instances:
- name: node-0
hostname: compute-0
image: overcloud-full
state: present
wait: true
clean_up: false
timeout: 1200
concurrency: 20
log_level: info
register: baremetal_provisioned
- name: Metalsmith log for provision instances
debug:
var: baremetal_provisioned.logging
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.