Update example bootstrap.yml
This commit is contained in:
parent
7b07a81eca
commit
0e28bfccc8
|
@ -1,10 +1,13 @@
|
||||||
---
|
---
|
||||||
# PVC cluster specification for pvcbootstrapd
|
# PVC cluster specification for pvcbootstrapd
|
||||||
#
|
#
|
||||||
# This configuration is entirely optional, and is not required unless you are using pvcbootstrap to
|
# This configuration is entirely optional, and is not required unless you are using pvcbootstrap
|
||||||
# deploy the cluster. It must be filled out and committed before connecting any hosts from
|
# to deploy the cluster. It must be filled out and committed before connecting any hosts from
|
||||||
# the new cluster.
|
# the new cluster.
|
||||||
#
|
#
|
||||||
|
# This example provides a detailed explanation for, and examples of, the various options that can
|
||||||
|
# be used by this subsystem.
|
||||||
|
#
|
||||||
# Bootstrap Host Definitions
|
# Bootstrap Host Definitions
|
||||||
#
|
#
|
||||||
# All hosts to be bootstrapped by the pvcbootstrapd system must be present in this list.
|
# All hosts to be bootstrapped by the pvcbootstrapd system must be present in this list.
|
||||||
|
@ -13,190 +16,275 @@
|
||||||
# BMCs can be used, but they must be pre-configured with a system disk RAID, to boot from network,
|
# BMCs can be used, but they must be pre-configured with a system disk RAID, to boot from network,
|
||||||
# etc. and the per-host TFTP files must be created manually.
|
# etc. and the per-host TFTP files must be created manually.
|
||||||
#
|
#
|
||||||
# Disks Logic
|
# Each host is specified by its hardware BMC MAC address, usually available on the system asset
|
||||||
|
# tag or on some sort of label on the system board.
|
||||||
#
|
#
|
||||||
# There are 3 categories of disks that can be specified for use in the pvcbootstrapd system:
|
# Under the parent tag are a series of required and optional values, which are self-documented.
|
||||||
# * System disk (for the host OS)
|
|
||||||
# * Data disks (for VM data, i.e. Ceph OSDs)
|
|
||||||
# * Ceph database disk (if applicable, for OSD journaling/database)
|
|
||||||
#
|
#
|
||||||
# The first two categories are not optional; at least one system disk and one data disk per
|
# System Disks Logic
|
||||||
# coordinator node must be specified for a usable cluster.
|
|
||||||
#
|
#
|
||||||
# OSD Database Disks
|
# The key "bootstrap" -> "config" -> "system_disks" specifies the disk(s) that the system will
|
||||||
|
# be installed to. These disks are specified as a YAML list of one (or more) of the following:
|
||||||
#
|
#
|
||||||
# OSD database disks are optional, and only required in some specific situations with some specific
|
# 1. A fixed Linux "/dev" path, for example "/dev/sda" (SCSI/SAS/SATA), "/dev/nvme0n1" (NVMe),
|
||||||
# guest workloads. Only one (1) device may be specified, and this should usually be an NVMe device
|
# "/dev/disk/by-id" (fixed-ID paths), or "/dev/disk/by-path" (fixed-location paths).
|
||||||
# with a Linux path (e.g. '/dev/nvme0n1', see format specifications below).
|
# Generally, the latter options are preferable as they are more consistent and more easily
|
||||||
|
# guessed before a Linux operating system is booted, but all are acceptable depending on the
|
||||||
|
# disk type.
|
||||||
#
|
#
|
||||||
# The post-bootstrap hooks will use this disk, if present, to create an "osd-db-vg" device within
|
# 2. A "detect:" string, in the form "detect:<name>:<human-readable size>:<id>". Detect strings
|
||||||
# PVC before creating OSDs, and this database VG will then be used for all OSDs on the node.
|
# leverage the "lsscsi" tool in the installer to logically determine the desired block device
|
||||||
|
# path from the given information.
|
||||||
#
|
#
|
||||||
# Data Disks
|
# The "<name>" can be any identifier the device will have, for example "INTEL" for an Intel
|
||||||
|
# SSD, "SEAGATE" for a Seagate HDD, "DELLBOSS" for a Dell BOSS (Boot-Optimized Storage System)
|
||||||
|
# virtual volume, "PERC" for a Dell PERC RAID card, etc. This should usually match something
|
||||||
|
# found in the "Vendor" column of "lsscsi" or elsewhere in the output line. Multiple space-
|
||||||
|
# separated "words" are supported but should only be used to avoid ambiguity.
|
||||||
#
|
#
|
||||||
# At least one (1) data disk must be specified, and these should be fast devices (SATA, SAS, or
|
# The "<size>" is a human-readable size, usually matching the label size of the disk (e.g.
|
||||||
# NVMe SSD); the former two can use any format below, but the latter should use a Linux path.
|
# 300GB, 800GB, 1.92TB, etc.). This will be matched to within +/- 2% of a real block device
|
||||||
|
# in "lsscsi" to find a match.
|
||||||
#
|
#
|
||||||
# These disk(s) will be used for OSD volumes within PVC, and will be provisioned by the post-
|
# The "<id>" specifies the Nth (0-indexed) match on both the "<name>" and "<size>". So for
|
||||||
# bootstrap hooks.
|
# example, if there are 3x 800GB Intel SSDs, "detect:INTEL:800GB:2" will match the third.
|
||||||
|
# Note that this ordering is based on SCSI bus ID, and is thus normally consistent and
|
||||||
|
# predictable, but there can be corner cases.
|
||||||
#
|
#
|
||||||
# System Disks
|
# 3. A logical, 0-indexed disk ID detectable by Redfish, for example "0", "1", etc. On systems
|
||||||
|
# with support for it, up to two (2), but no more, disks can be specified in this list by
|
||||||
|
# these logical IDs. In such a case, the Redfish bootstrap will attempt to find the physical
|
||||||
|
# disks at the given IDs on the first storage (RAID) controller and, if found, create a RAID-1
|
||||||
|
# virtual disk out of them. This allows easy specification of the situation where you might
|
||||||
|
# want, for example, "the first and second disks" to be turned into a RAID-1, with the rest
|
||||||
|
# used for other purposes.
|
||||||
#
|
#
|
||||||
# At least one (1) and at most two (2) system disks must be specified, and these can be any
|
# Note that only the 3rd method supports this auto-creation of RAID devices; the first two
|
||||||
# devices (SSDs, SD Cards, etc.), though faster system disks will result in a more responsive
|
# require an existing (single) disk or virtual device which is visible by Linux. Also note
|
||||||
# system.
|
# that the PVC installer does not support software RAID-1 for system volumes, though this
|
||||||
|
# could be added later.
|
||||||
#
|
#
|
||||||
# If one system disk is specified, the system will be installed directly onto it.
|
# Once created, the virtual RAID-1 created using this method will be found via a "detect:"
|
||||||
#
|
# string identical to method 2.
|
||||||
# If two system disks are specified, and the controller supports it, a hardware RAID will be
|
|
||||||
# created out of the disks for use as the resulting single system disk.
|
|
||||||
#
|
|
||||||
# PVC does not supports software RAID for node system disks; of the controller does not support
|
|
||||||
# Redfish and hardware RAID therein, only the first listed disk will be used.
|
|
||||||
#
|
|
||||||
# Drive Specification Formats
|
|
||||||
#
|
|
||||||
# The disks in each group can be specified in one of 3 ways:
|
|
||||||
#
|
|
||||||
# 1. A full Linux block path beginning with '/dev/'. Any path can be used but, if possible,
|
|
||||||
# reliable paths like '/dev/disk/by-path' or '/dev/disk/by-id' are recommended unless there is
|
|
||||||
# no chance for ambiguity (e.g. only a single sdX drive is present for the system disk).
|
|
||||||
#
|
|
||||||
# These direct paths are the most reliable way to specify NVMe disks due to the predicable
|
|
||||||
# format of Linux "/dev/nvmeX" drive names.
|
|
||||||
#
|
|
||||||
# 2. On Redfish-capable hosts only, a chassis disk ID number, usually 0-7 (0-indexed), indicating
|
|
||||||
# the position of the disk on the primary storage controller. When specified this way, the
|
|
||||||
# system will query the active storage devices from Redfish and then automatically construct
|
|
||||||
# a "detect:" string for each one based on its vendor/model, size and ID.
|
|
||||||
#
|
|
||||||
# Note that on most chassis, the bays are labeled "1-8"; these must be converted by
|
|
||||||
# subtracting 1 from them to get 0-indexed IDs. So for example the drive in bay "1" would
|
|
||||||
# have the index of 0, and so on.
|
|
||||||
#
|
|
||||||
# These ID numbers are the most relible way to specify SATA/SAS disks on Redfish-capable
|
|
||||||
# nodes and should be preferred for their simplicity there.
|
|
||||||
#
|
|
||||||
# The pvcbootstrapd setup will use the values provided by Redfish to craft a "detect:" string
|
|
||||||
# for the block device (or virtual RAID array, if two devices are specified for the system
|
|
||||||
# disk entries).
|
|
||||||
#
|
|
||||||
# 3. A "detect:" string. This is a specially-formatted string which can be used by the installer
|
|
||||||
# to search the output of 'lsscsi' for the given device. A "detect:" string is formatted as
|
|
||||||
# such:
|
|
||||||
# detect:<Controller-or-Model-Name>:<0-indexed-ID>:<Capacity-in-human-units>
|
|
||||||
#
|
|
||||||
# For example, to detect the *second* 800GB Intel SSD:
|
|
||||||
# detect:INTEL:1:800GB
|
|
||||||
# Or to detect a (single) Dell BOSS card's virtual RAID-1 of two 240GB M.2 SSDs:
|
|
||||||
# detect:DELLBOSS:0:240GB
|
|
||||||
# Or to detect the first RAID-1 volume on a Dell PERC controller of two 200GB SSDs:
|
|
||||||
# detect:PERC:0:200GB
|
|
||||||
#
|
|
||||||
# The controller/vendor name will usually be fully capitalized. This string can contain
|
|
||||||
# multiple space-separated elements, though usually only the first word is required, for
|
|
||||||
# example "DELLBOSS VD" -> "DELLBOSS" or "PERC H330 Mini" -> "PERC", unless there is
|
|
||||||
# potential for ambiguity.
|
|
||||||
#
|
|
||||||
# The ID is the Nth entry *of multiple identical devices*, and should usually be "0" unless
|
|
||||||
# there are multiple identically-sized devices with the same vendor. If there is only a set
|
|
||||||
# of identical drives, these will usually match in position to the drive bay because they will
|
|
||||||
# be sorted by the PCIe bus identifier, but this does not map 1-to-1 with chassis disk IDs as
|
|
||||||
# used by specification format 2, and must always be 0-indexed based on a given vendor+size.
|
|
||||||
#
|
|
||||||
# The size should be the expected human-readable size of the disk with a suffix attached, for
|
|
||||||
# example "800GB", "240GB", "1.92TB", "2TB", etc.. This value will be used to match, within
|
|
||||||
# +/-2%, the actual reported sizes of the block devices (which are usually slightly smaller).
|
|
||||||
#
|
|
||||||
# These "detect:" strings are the most reliable way to determine a SATA/SSD disk or hardware
|
|
||||||
# RAID volume independent of Redfish, and should generally be used for these device types on
|
|
||||||
# non-Redfish capable systems. NVMe devices can *not* use this format and should always use
|
|
||||||
# the predicable '/dev/nvmeX' names instead as mentioned in specification format 1.
|
|
||||||
|
|
||||||
bootstrap:
|
|
||||||
# First node
|
|
||||||
"d8:d7:d6:d5:d4:d1": # BMC MAC Address (from asset tag, etc.)
|
|
||||||
node: # Node information
|
|
||||||
hostname: hv1 # The (short) hostname. Must be present in the pvc_nodes list.
|
|
||||||
config: # Node configuration (optional)
|
|
||||||
kernel_options: # Additional options for the installer kernel command line
|
|
||||||
- "console=ttyS1,115200n"
|
|
||||||
release: buster # The Debian release to install, OPTIONAL
|
|
||||||
mirror: http://ftp.debian.org # The Debian mirror to use, OPTIONAL
|
|
||||||
packages: # List of additional packages to install, OPTIONAL
|
|
||||||
- ca-certificates
|
|
||||||
filesystem: ext4 # The filesystem to use for the system partitions, OPTIONAL
|
|
||||||
|
|
||||||
bmc:
|
|
||||||
username: Administrator # BMC/IPMI administrative username
|
|
||||||
password: SuperSecret # BMC/IPMI administrative password (initial)
|
|
||||||
# NOTE: This is usually the out-of-box password; the actual
|
|
||||||
# password will be set later by the Ansible roles.
|
|
||||||
redfish: yes # Can system BMC support Redfish?
|
|
||||||
bios_settings: # An optional listing of BIOS settings to alter before bootstrap
|
|
||||||
BootMode: "Uefi" # NOTE: Must be valid Redfish BIOS options or will be ignored.
|
|
||||||
SecureBoot: "Disabled"
|
|
||||||
disks: # Disk definitions (see explanations above)
|
|
||||||
system: # List of system disk(s)
|
|
||||||
- "detect:Internal SD-CARD:0:64GB"
|
|
||||||
data: # List of data disks for OSDs
|
|
||||||
- "/dev/disk/by-path/pci-0000:01:00.0-sas-phy0-lun-0"
|
|
||||||
- "/dev/disk/by-path/pci-0000:01:00.0-sas-phy4-lun-0"
|
|
||||||
osd_db: # List of OSD database disk (maximum one)
|
|
||||||
- "/dev/nvme0n1"
|
|
||||||
# Second node
|
|
||||||
"d8:d7:d6:d5:d4:d2":
|
|
||||||
node:
|
|
||||||
hostname: hv2
|
|
||||||
config:
|
|
||||||
bmc:
|
|
||||||
username: Administrator
|
|
||||||
password: SuperSecret
|
|
||||||
redfish: yes
|
|
||||||
disks:
|
|
||||||
system:
|
|
||||||
- "detect:DELLBOSS:0:240GB"
|
|
||||||
data:
|
|
||||||
- "detect:INTEL:0:960GB"
|
|
||||||
- "detect:INTEL:1:960GB"
|
|
||||||
# Third node
|
|
||||||
"d8:d7:d6:d5:d4:d3":
|
|
||||||
node:
|
|
||||||
hostname: hv3
|
|
||||||
config:
|
|
||||||
bmc:
|
|
||||||
username: Administrator
|
|
||||||
password: SuperSecret
|
|
||||||
redfish: no
|
|
||||||
disks:
|
|
||||||
system:
|
|
||||||
- "/dev/sda"
|
|
||||||
data:
|
|
||||||
- "/dev/nvme0n1"
|
|
||||||
- "/dev/nvme0n2"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hooks
|
# Hooks
|
||||||
#
|
#
|
||||||
# Hooks are sets of tasks (commands, etc.) to be run against the cluster once the bootstrap Ansible run has
|
# Hooks are a series of tasks that are run against one or more nodes in the cluster after the
|
||||||
# been completed. These are useful to perform post-Ansible setup tasks, for instance creating storage OSDs and
|
# completion of the Ansible configuration. These hooks, specified on a cluster-level, can be
|
||||||
# pools, deploying VMs, running hooks, executing webhooks, etc.
|
# used to automate post-deployment tasks. Hooks are specified as a YAML list of dictionaries.
|
||||||
#
|
#
|
||||||
# Each hook can define which host(s) it should be run on or against depending on the handler.
|
# Each hook is given a "name" which is used in the log output but which is otherwise unimportant.
|
||||||
# There are several fixed, defined hooks which are known to the cluster, while all other hooks must be defined
|
|
||||||
# with their full specifications.
|
|
||||||
#
|
#
|
||||||
# The hook type can be one of the defined hooks, "pvc", "script", "python", or "webhook".
|
# There are several "type"s of hooks, some of which are specialized for common tasks, and others
|
||||||
# * "pvc" hooks use the PVC CLI on one node to execute the desired command, without the leading "pvc".
|
# which can be free-form. The primary types are:
|
||||||
# * "script" hooks are a set of shell commands that will be run in a ROOT shell on the given node(s).
|
|
||||||
# * "python" hooks are a set of Python commands that will be run in a ROOT interpreter on the given node(s).
|
|
||||||
# * "webhook" hooks send POST events with the specified body to the specified URL from pvcprovisionerd itself.
|
|
||||||
#
|
#
|
||||||
# Hooks are always executed in the order they are presented.
|
# * osddb Create an OSD DB volume group on a given node from a given block path, specified
|
||||||
hooks:
|
# by one of the first two (2) methods mentioned above for system disks.
|
||||||
- name: install virtual router
|
# * osd Create a storage OSD on a given node from a given block device path, specified by
|
||||||
type: script
|
# one of the first two (2) methods mentioned above for system disk.
|
||||||
node: hv1
|
# If multiple nodes have the same devices, the same task can run against several
|
||||||
action: |
|
# at once in one task, otherwise they should be run sequentially, per-node.
|
||||||
pvc provisioner profile list
|
# * pool Create a storage pool on the cluster with the specified number of PGs.
|
||||||
|
#
|
||||||
|
# Note: The above 3 hooks should always be specified in the given order if they are to be used.
|
||||||
|
#
|
||||||
|
# * network Create a network on the PVC cluster with the specified parameters (see below).
|
||||||
|
#
|
||||||
|
# * script Run a script on the given host(s). Can be used to run arbitrary commands or other
|
||||||
|
# scripts on the remote system.
|
||||||
|
# The script may be specified in one of 3 ways:
|
||||||
|
# 1. A raw YAML block, containing a valid shebang and the contents of the script.
|
||||||
|
# For a single BASH command, this would be something like:
|
||||||
|
# #!/usr/bin/env bash
|
||||||
|
# mycommand
|
||||||
|
# 2. A "local" source and a "path" to a script to copy to the destination host.
|
||||||
|
# The path may be absolute, or relative to the Ansible repository directory.
|
||||||
|
# 3. A "remote" source and a "path" to the script on the destination host.
|
||||||
|
#
|
||||||
|
# Note: A script hook will run as the "deploy_user" on the remote system. If you require the
|
||||||
|
# command to have root privileges, use "sudo" in the script.
|
||||||
|
#
|
||||||
|
# A hook can "target" one or more nodes in the cluster. These are specified by their "node
|
||||||
|
# hostname" as specified in the "bootstrap" section in a YAML list. The special value "all" can
|
||||||
|
# be used to represent all nodes in the cluster; if "all" is specified it should be the only value.
|
||||||
|
#
|
||||||
|
# The value of "target" is used slightly differently for the osddb, osd, pool, and network (PVC)
|
||||||
|
# hook types above. For osddb and osd, the list of "target"s will be the nodes that the given
|
||||||
|
# block device will be created on with the given parameters, but will actually target the API.
|
||||||
|
# For pool and network hook types, the target is ignored completely and can/should be empty or
|
||||||
|
# "all" for clarity.
|
||||||
|
#
|
||||||
|
# Each hook has a series of "args" which are unique to that particular hook type. These are
|
||||||
|
# self-documented inline below for each hook type.
|
||||||
|
|
||||||
|
# Bootstrap elements
|
||||||
|
bootstrap:
|
||||||
|
# First node
|
||||||
|
"d8:d3:85:12:34:56": # BMC MAC Address (from asset tag, etc.)
|
||||||
|
node: # Node information
|
||||||
|
hostname: hv1 # The (short) hostname. Must be present in the pvc_nodes list.
|
||||||
|
config: # Node configuration
|
||||||
|
kernel_options: # Additional kernel options for the installer, OPTIONAL
|
||||||
|
- console=ttyS1,115200n # "Use the serial console ttyS1 at 115200 baud"
|
||||||
|
release: buster # The Debian release to install, OPTIONAL
|
||||||
|
mirror: http://ftp.debian.org/debian # The Debian mirror to use, OPTIONAL
|
||||||
|
packages: # List of additional packages to install, OPTIONAL
|
||||||
|
- ca-certificates # "Install the ca-certificates package in the target system"
|
||||||
|
filesystem: ext4 # The filesystem to use for the system partitions, OPTIONAL
|
||||||
|
system_disks: # List of system disks to install to
|
||||||
|
- "detect:Intel:200GB:0" # "Find the first 200GB Intel SSD"
|
||||||
|
bmc: # BMC information
|
||||||
|
username: Administrator # BMC/IPMI administrative username
|
||||||
|
password: SuperSecretPassword # BMC/IPMI administrative password (initial)
|
||||||
|
# NOTE: This is usually the out-of-box password; the production
|
||||||
|
# password will be set later by the Ansible roles.
|
||||||
|
redfish: yes # Can system BMC support Redfish?
|
||||||
|
# NOTE: This is optional; Redfish will be probed if missing.
|
||||||
|
# Second node
|
||||||
|
"68:b5:99:12:34:78": # BMC MAC Address (from asset tag, etc.)
|
||||||
|
node: # Node information
|
||||||
|
hostname: hv2 # The (short) hostname. Must be present in the pvc_nodes list.
|
||||||
|
config: # Node configuration (optional)
|
||||||
|
kernel_options: # Additional kernel options for the installer, OPTIONAL
|
||||||
|
- console=ttyS1,115200n # "Use the serial console ttyS1 at 115200 baud"
|
||||||
|
release: buster # The Debian release to install, OPTIONAL
|
||||||
|
mirror: http://ftp.debian.org/debian # The Debian mirror to use, OPTIONAL
|
||||||
|
packages: # List of additional packages to install, OPTIONAL
|
||||||
|
- ca-certificates # "Install the ca-certificates package in the target system"
|
||||||
|
filesystem: ext4 # The filesystem to use for the system partitions, OPTIONAL
|
||||||
|
system_disks: # List of system disks to install to
|
||||||
|
- "0" # "Create a RAID out of the first and second physical disks"
|
||||||
|
- "1"
|
||||||
|
bmc:
|
||||||
|
username: Administrator # BMC/IPMI administrative username
|
||||||
|
password: SuperSecretPassword # BMC/IPMI administrative password (initial)
|
||||||
|
# NOTE: This is usually the out-of-box password; the actual live password
|
||||||
|
# will be set later by the Ansible roles.
|
||||||
|
redfish: yes # Can system BMC support Redfish?
|
||||||
|
# NOTE: This is optional; Redfish will be probed if missing.
|
||||||
|
# Third node
|
||||||
|
"18:a9:05:12:45:90": # BMC MAC Address (from asset tag, etc.)
|
||||||
|
node: # Node information
|
||||||
|
hostname: hv3 # The (short) hostname. Must be present in the pvc_nodes list.
|
||||||
|
config: # Node configuration (optional)
|
||||||
|
kernel_options: # Additional kernel options for the installer, OPTIONAL
|
||||||
|
- console=ttyS1,115200n # "Use the serial console ttyS1 at 115200 baud"
|
||||||
|
release: buster # The Debian release to install, OPTIONAL
|
||||||
|
mirror: http://ftp.debian.org/debian # The Debian mirror to use, OPTIONAL
|
||||||
|
packages: # List of additional packages to install, OPTIONAL
|
||||||
|
- ca-certificates # "Install the ca-certificates package in the target system"
|
||||||
|
filesystem: ext4 # The filesystem to use for the system partitions, OPTIONAL
|
||||||
|
system_disks: # List of system disks to install to
|
||||||
|
- "/dev/sda" # "Use the disk at /dev/sda"
|
||||||
|
bmc:
|
||||||
|
username: Administrator # BMC/IPMI administrative username
|
||||||
|
password: SuperSecretPassword # BMC/IPMI administrative password (initial)
|
||||||
|
# NOTE: This is usually the out-of-box password; the actual live password
|
||||||
|
# will be set later by the Ansible roles.
|
||||||
|
redfish: yes # Can system BMC support Redfish?
|
||||||
|
# NOTE: This is optional; Redfish will be probed if missing.
|
||||||
|
|
||||||
|
# Bootstrap hooks (post-configuration)
|
||||||
|
hooks:
|
||||||
|
- name: "Create OSD database volume on the first NVMe device"
|
||||||
|
type: osddb
|
||||||
|
target:
|
||||||
|
- all
|
||||||
|
args:
|
||||||
|
disk: "/dev/nvme0n1" # The disk to be used for the OSD DB volume group
|
||||||
|
|
||||||
|
- name: "Create OSDs on the first 300GB HDD device on each node"
|
||||||
|
type: osd
|
||||||
|
target:
|
||||||
|
- all
|
||||||
|
args:
|
||||||
|
disk: "detect:LOGICAL:300GB:0" # The disk to be used for the OSD, first 300GB LOGICAL disk
|
||||||
|
weight: 8 # The weight of the OSD
|
||||||
|
ext_db: no # Use external OSD DB
|
||||||
|
|
||||||
|
- name: "Create OSDs on the first 800GB Intel SSD device on each node"
|
||||||
|
type: osd
|
||||||
|
target:
|
||||||
|
- all
|
||||||
|
args:
|
||||||
|
disk: "detect:INTEL:800GB:0" # The disk to be used for the OSD, first 400GB Intel SSD
|
||||||
|
weight: 4 # The weight of the OSD, note half of first OSD weight
|
||||||
|
ext_db: yes # Use external OSD DB
|
||||||
|
ext_db_ratio: 0.08 # External OSD DB percentage ratio if different from default 0.05
|
||||||
|
|
||||||
|
- name: "Create storage pool 'vms'"
|
||||||
|
type: pool
|
||||||
|
target:
|
||||||
|
- all
|
||||||
|
args:
|
||||||
|
name: "vms" # The name of the pool
|
||||||
|
pgs: 128 # The number of placement groups (#OSD * ~250 / 3 / 2, round down to 2^n)
|
||||||
|
tier: "ssd" # The tier of storage devices to use (default, hdd, ssd, nvme if available)
|
||||||
|
|
||||||
|
- name: "Create bridged public network on vLAN 1000"
|
||||||
|
type: network
|
||||||
|
target:
|
||||||
|
- all
|
||||||
|
args:
|
||||||
|
vni: 1000 # The PVC VNI (vLAN ID)
|
||||||
|
description: "public" # The network description (no whitespace)
|
||||||
|
type: bridged # The type of network (bridged or managed)
|
||||||
|
mtu: 9000 # The network MTU
|
||||||
|
|
||||||
|
- name: "Create managed deployment network on VXLAN 10000"
|
||||||
|
type: network
|
||||||
|
target:
|
||||||
|
- all
|
||||||
|
args:
|
||||||
|
vni: 10000 # The PVC VNI (VXLAN ID)
|
||||||
|
description: "deployment" # The network description (no whitespace)
|
||||||
|
type: managed # The type of network (bridged or managed)
|
||||||
|
mtu: auto # The network MTU; 'auto' and 'default' preserve default
|
||||||
|
domain: pvc.local # The network domain for DNSMasq
|
||||||
|
dns_servers: # The remote DNS servers
|
||||||
|
- 10.100.100.10
|
||||||
|
- 10.100.100.11
|
||||||
|
ip4: yes # Enable IPv4 networking
|
||||||
|
ip4_network: 10.0.0.0/24 # The IPv4 network, required if ip4
|
||||||
|
ip4_gateway: 10.0.0.1 # The IPv4 gateway, required if ip4
|
||||||
|
ip4_dhcp: yes # Enable IPv4 DHCP, required if ip4
|
||||||
|
ip4_dhcp_start: 10.0.0.100 # IPv4 DHCP start address, required if ip4_dhcp
|
||||||
|
ip4_dhcp_end: 10.0.0.199 # IPv4 DHCP end address, required if ip4_dhcp
|
||||||
|
ip6: yes # Enable IPv6 networking
|
||||||
|
ip6_network: 2001:1234:5678::/64 # The IPv6 network, required if ip6
|
||||||
|
ip6_gateway: 2001:1234:5678::1 # The IPv6 gateway, required if ip6
|
||||||
|
|
||||||
|
- name: "Run a quick storage benchmark leveraging node 1 as the runner"
|
||||||
|
type: script
|
||||||
|
target:
|
||||||
|
- hv1
|
||||||
|
args:
|
||||||
|
script: |
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
pvc storage benchmark run --yes vms
|
||||||
|
|
||||||
|
- name: "Run a quick Python script on all nodes"
|
||||||
|
type: script
|
||||||
|
target:
|
||||||
|
- all
|
||||||
|
args:
|
||||||
|
script: |
|
||||||
|
#!/usr/bin/env python
|
||||||
|
print("Hello, world!")
|
||||||
|
|
||||||
|
- name: "Run a more complex Python script on nodes 2 and 3"
|
||||||
|
type: script
|
||||||
|
target:
|
||||||
|
- hv2
|
||||||
|
- hv3
|
||||||
|
args:
|
||||||
|
source: local # Copy the script first from the local system (full path or relative under the Ansible repository)
|
||||||
|
path: "scripts/mytask.py" # This is the path to the script, which must have a valid shebang.
|
||||||
|
|
||||||
|
- name: "Run a more complex BASH script on nodes 1"
|
||||||
|
type: script
|
||||||
|
target:
|
||||||
|
- hv1
|
||||||
|
args:
|
||||||
|
source: remote
|
||||||
|
path: "/usr/local/bin/dostuff"
|
||||||
|
|
Loading…
Reference in New Issue