Preparations

Deployment

architecture-beta group deployment[Deployment] service deploy(mdi:laptop)[deploy] in deployment group env[Environment] group os[OpenStack] in env service server_os(mdi:server) in os group ceph[Ceph] in env service server_ceph(mdi:server) in ceph %% connections deploy{group}:R -- L:server_os{group} deploy{group}:R -- L:server_ceph{group}

Deployment Aproaches

  • Baremetal - all servers listed are baremetal machines, at least a single
    switch to interconnect and a instance for deployment (VM, laptop, a small
    baremetal machine)
  • Hyperconverged - at least a singel baremetal node, to create all listed
    servers as VMs and additianally an instance for deployment.
  • Hybrid - some baremetal nodes to virtualize servers (controllers, network, inrastructure) and some to use to deliver performance (compute, ceph osd nodes)

Baremetal and Hybrid aproaches can be used as production environments

Hyperconverged Environments

Advantages:

  • simple and fast
  • Single baremetal node
  • All listed servers backed by VMs
  • All listed networks backed by OpenVSwitch / Linux Bridges
  • No physical switch needed

Disadvantages:

  • less insights into networking
  • less performance

Aproaches to create hyperconverged environment

we will need at least a single baremetal node with of installed:

  • KVM
  • singlenode openstack environment
  • singlenode proxmox environment
  • singlenode incus environment
    ...

Node Groups

  • Deployment node
  • Infrastructure: registry, proxy, dns
  • OpenStack Nodes
  • Ceph Nodes

Configuration


Link

##############################################################################
resolve_conf:
  nameservers:
    - 10.14.0.10
  searchdomains: []
##############################################################################
network_conf:
  public:
    iface:       pblc0
    bridgename:  vimbr0
    addr:        10.10.61.0/24
    netmask:     255.255.255.0
    gateway:     10.10.61.1/24
    nameservers: [10.10.11.99]
  management:
    iface:   mgmt0
    addr:    10.14.0.0/24
  services:
    iface:   srvc0
    addr:    10.34.10.0/24

Scripts

create-vm - creates a new vm defined by paramters
print-create-env-commands - reads conf/env.yaml file and prints commands needed to create full environment
print-destroy-env-commands - reads conf/env.yaml file, queries the current state and prints commands needed to desroy whole environment

create-vm --id 10 --name dns.wrx.sckt.net --cpu 1 --ram 4096 --disks '[8]' --netconf '{"mgmt0": {"ip": "10.14.0.10/24", "macaddr": "bc:24:11:99:04:0a"}, "srvc0": {"ip": "10.34.10.10/24", "macaddr": "bc:24:11:99:06:0a"}}'
create-vm --id 16 --name deployment.wrx.sckt.net --cpu 1 --ram 4096 --disks '[8]' --netconf '{"mgmt0": {"ip": "10.14.0.16/24", "macaddr": "bc:24:11:99:04:10"}, "cpln0": {"ip": "10.20.8.16/24", "macaddr": "bc:24:11:99:00:10"}, "strg0": {"ip": "10.20.21.16/24", "macaddr": "bc:24:11:99:07:10"}}'
create-vm --id 17 --name registry.wrx.sckt.net --cpu 1 --ram 4096 --disks '[128]' --netconf '{"mgmt0": {"ip": "10.14.0.17/24", "macaddr": "bc:24:11:99:04:11"}, "srvc0": {"ip": "10.34.10.17/24", "macaddr": "bc:24:11:99:06:11"}}'
create-vm --id 18 --name recorder.wrx.sckt.net --cpu 1 --ram 4096 --disks '[8]' --netconf '{"mgmt0": {"ip": "10.14.0.18/24", "macaddr": "bc:24:11:99:04:12"}, "srvc0": {"ip": "10.34.10.18/24", "macaddr": "bc:24:11:99:06:12"}}'

How to use scripts

# create a new environment
print-create-env-commands | bash

#  destroy whole environment
print-destroy-env-commands | bash

# if you need to rebuild only a set or a single server, you can use grep with a matching filter

Prepare a working environment

  • single proxmox node
  • run post-pve-install.sh
  • create bridges accoding network_conf
  • install ubuntu image, prepate a new template for VMS
  • create VMs for the workshop
print-create-env-commands | bash
  • test created environment
# TBD