All Projects → cjeanner → tripleo-lab

cjeanner / tripleo-lab

Licence: other
Custom lab for tripleo - deployed on a physical node with libvirt

Programming Languages

Jinja
831 projects
shell
77523 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to tripleo-lab

Pentest Lab
Pentest Lab on OpenStack with Heat, Chef provisioning and Docker
Stars: ✭ 353 (+1665%)
Mutual labels:  openstack, lab
aurora
A modern customizable dashboard for OpenStack
Stars: ✭ 21 (+5%)
Mutual labels:  openstack
osarchiver
OpenStack databases archiver
Stars: ✭ 14 (-30%)
Mutual labels:  openstack
firework8s
Firework8s is a collection of kubernetes objects (yaml files) for deploying workloads in a home lab.
Stars: ✭ 35 (+75%)
Mutual labels:  lab
Bot-Framework-Tutorial
Microsoft Bot Framework Hands on Lab Tutorial
Stars: ✭ 23 (+15%)
Mutual labels:  lab
monasca-docker
Docker files and setup for Monasca
Stars: ✭ 24 (+20%)
Mutual labels:  openstack
openstack
Production-ready Openstack installer using Ansible
Stars: ✭ 34 (+70%)
Mutual labels:  openstack
AWS Stripe-SaaS-quickstart
🛍️ 🚀 AWS Software as a Service App with subscriptions using Stripe Quickstart
Stars: ✭ 30 (+50%)
Mutual labels:  quickstart
halcyon-vagrant-kubernetes
Vagrant deployment mechanism for halcyon-kubernetes.
Stars: ✭ 12 (-40%)
Mutual labels:  openstack
terraform-ovh-commons
This repo contains commons resources to interact with OVH Public Cloud using Terraform.
Stars: ✭ 47 (+135%)
Mutual labels:  openstack
COA
Openstack Foundation Openstack Certified Administrator exam Preparation
Stars: ✭ 41 (+105%)
Mutual labels:  openstack
LAB
MIT IT Lab Repository
Stars: ✭ 23 (+15%)
Mutual labels:  lab
curso-ual17
Curso de infraestructura cloud con Openstack. Universidad de Almeria. Mayo 2017
Stars: ✭ 16 (-20%)
Mutual labels:  openstack
kaabah
A Terraform solution to design, build and operate Docker Swarm infrastructures
Stars: ✭ 29 (+45%)
Mutual labels:  openstack
aquarium
The Aquarium Lab Operating System
Stars: ✭ 44 (+120%)
Mutual labels:  lab
socok8s
Experimental tool for deploying SUSE OpenStack Cloud in Kubernetes cluster
Stars: ✭ 15 (-25%)
Mutual labels:  openstack
auth0-rubyonrails-sample
Auth0 Integration Samples for Ruby on Rails Web Applications
Stars: ✭ 36 (+80%)
Mutual labels:  quickstart
auth0-spring-mvc-sample
Auth0 Integration Samples for Java Spring MVC Web Applications
Stars: ✭ 20 (+0%)
Mutual labels:  quickstart
openstack-study
The repository for study activities in OpenStack Korea User Group (오픈스택 한국 커뮤니티 스터디를 위한 저장소입니다)
Stars: ✭ 32 (+60%)
Mutual labels:  openstack
Python-notes
Python related technologies used in work: crawler, data analysis, timing tasks, RPC, page parsing, decorator, built-in functions, Python objects, multi-threading, multi-process, asynchronous, redis, mongodb, mysql, openstack, etc.
Stars: ✭ 104 (+420%)
Mutual labels:  openstack

Custom Lab for TripleO

A simple way to bootstrap a bunch of VMs on a libvirt host. Gives more control than quickstart in some cases.

Installation

Please run the following command in order to get "tripleo operator" collection:

ansible-playbook config-host.yaml

Specs

It is expected to run the following resources:

  • 1 undercloud
  • 3 controllers
  • 2 computes
  • 3 ceph-storage

The amount of used memory for that env is about 52G, and about 20 CPU cores.

Prerequisite

Working ssh-agent on ansible-host

A working ssh-agent must be running on the host launching ansible playbook. It is needed in order to hot-load the private ssh key for the undercloud access.

In case you're running the playbook for a "middle machine", you can just forward the agent from your workstation.

Usage

Standard deploy:

ansible-playbook builder.yaml

It will deploy a containerized undercloud and prepare the baremetal.json file you will use in order to register nodes in ironic.

Redeploy the lab

If you issue a lab-destroy on the builder, you will need to redeploy the lab:

ansible-playbook builder.yaml --tags lab

I have my undercloud and want to replay only specific tasks on it

Just limit with the tags, and be sure to have the inventory tag. For example, in order to just manage the overcloud images:

ansible-playbook builder.yaml -t inventory,overcloud-images

I want to add a new instance to my current lab

Just add the requested information in the yaml you used for the initial deploy, then:

ansible-playbook builder.yaml -t domains -t baremetal -t vbmc

Domain tag will create the instance disk image and add it to libvirt. The vbmc tag will add the new to vbmc, and enable it. The baremetal tag will take care of the different configuration on the undercloud.

One note though: you might want to delete the already-existing node(s) from the baremetal.json on the undercloud, in order to avoid useless error output from the import task.

Also, this ansible will NOT run the import task once more, it doesn't ensure all nodes are present. You will need to run, on your own:

source ~/stackrc
openstack overcloud node import --provide baremetal.json

Extend the lab

You can pass variables and environment files using the -e option, like:

ansible-playbook builder.yaml --skip-tags overcloud-images --tags lab -e @environments/3ctl-1compute.yaml

This will start a lab with just 3 controllers and 1 compute.

Variables

vms Hash with the following entries:

  • name (string)
  • cpu (int)
  • memory (int, MB)
  • interfaces (list)
    • network (network name, default 'ctlplane')
  • autostart (bool)
  • swap (string, for example 10G)
  • iotune (list)
    • tune (string, iotune option) value (string, iotune option value)
vms:
  - name: undercloud
    cpu: 16
    memory: 20000
    disksize: 100
    interfaces:
      - network: default
      - net2
    autostart: true
  - name: controller-0
    cpu: 8
    memory: 20000
    disksize: 100
    interfaces:
      - net1
      - net2
    autostart: false

virt_user Username on the builder (will be created)

basedir Base directory for all the VM images

undercloud_password Root password on the undercloud VM (debug purpose)

undercloud_config List of hashes representing ini configuration for undercloud.conf file

---
undercloud_config:
  - section: DEFAULT
    option: container_cli
    value: podman

tripleo_repo_version Tripleo-repos package name/version. The default version is master. This can be changed this to any OpenStack version, like stein or train.

overcloud_images Hash with the following entries:

  • file (string)
  • content (string)

containerized_undercloud Boolean, default "yes"

use_heat Whether to add --use-heat to undercloud install command (Boolean). Defaults "no"

deploy_undercloud Boolean

deploy_overcloud Boolean

proxy_host Allows to use a proxy on the lab - put IP:PORT as value

synchronize List of hashes with the following entries:

  • name
  • base
  • container (optional, default False)
  • host (optional, default True)
  • dest (defaults to /home/stack/tripleo/) Synchronize with rsync from your ansible controller to remote. The "host" and "container" params are used for the build destiation - either container or host, or both. It results in a different target directory.
synchronize:
  - name: tripleo-heat-templates
    base: /home/user/work
    dest: /home/stack/tripleo/

synchronize_default_dest String. Used if you don't set "dest" in the synchronize hash. Default /home/stack/tripleo/

custom_rpms List of custom remote RPMS to install on your undercloud node

additional_envs List of additional env you want to pass to either standalone or overcloud deploy

standalone Deploy "standalone" tripleo (Bool, default no)

standalone_ceph Deploy ceph in standalone tripleo (Bool, default no)

standalone_container_cli Deploy standalone using said container CLI (String, default docker)

deploy_standalone Run the deploy script (Bool, default yes)

semodules Build modules based on .te files you can provide. List of dicts.

semodules:
  - name: foobar
    src: /full/path/foobar.te

overcloud_image_update Whether you want to get a yum update on the overcloud-full prior its upload into Glance. (Bool, default to yes)

undercloud_low_memory Creates a hieradata file to configure 1 worker per OpenStack service. This hieradata file is consummed by the Undercloud. (Bool, default no)

disable_selinux Allows to disable selinux on the undercloud, setting it to "permissive" while still logging what would have been blocked. (Bool, default no)

custom_repositories List of custom repositories dicts

custom_repositories:
  - name: foo
    file: (string, optional)
    uri: https://foo.bar
    gpg: (bool, optional)
    priority: (int, optional)

tripleoclient_pkgname Allows to set a custom name for the python-tripleoclient. (Str, default python-tripleoclient)

unmanage_iface Point to the interface we want to unmanage from NetworkManager

container_prepare_overrides Dict of overrides for the default container-image-prepare.

container_prepare_overrides:
  tag: my-test-tag
  namespace: my.container.registry/rh-osbs
  name_prefix: tripleo-
  ceph_namespace: my.ceph.registry/ceph
  ceph_tag: latest
  ceph_image: myceph_image

num_osds The number of OSD disks created per ceph node (int, default 1)

stack_ssh_keys Additional ssh keys you want to add on the undercloud "stack" user

oc_image_rpms List of RPMs/packages you want to inject in the overcloud image.

undercloud_hiera_override List of hieradata override you want to pass for the UC deploy

undercloud_hiera_override:
  - 'ironic::drivers::ipmi::use_ipmitool_retries: true'
  - 'ironic::drivers::ipmi::command_retry_timeout: 180'
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].