puppet-infracloud/examples/README.rst

2.1 KiB

InfraCloud Development

This example provides a set of DIB elements, libvirt templates, and instructions for creating a local development environment that simulates the InfraCloud production environment. This means the networking and everything ansible sets up in preparation for running puppet apply, including a dummy hiera database. It also includes a script to do a short smoke test.

Setup

These instructions assume libvirt and disk-image-builder are already installed, and that there is a public SSH key in ~/.ssh/id_rsa.pub for the devuser element to copy.

Create two disk images:

export DIB_DEV_USER_PWDLESS_SUDO=yes
export ELEMENTS_PATH=$HOME/infracloud-development/elements
DIB_ROLE=controller disk-image-create -u ubuntu devuser system-config puppet \
  motd smoke-test infracloud-static-net vm cloud-init-nocloud \
  -o "/tmp/infracloud-controller.qcow2" --image-size 20 \
  -p git,vim,vlan,bridge-utils
DIB_ROLE=compute disk-image-create -u ubuntu devuser system-config puppet \
  motd infracloud-static-net vm cloud-init-nocloud \
  -o "/tmp/infracloud-compute.qcow2" --image-size 20 \
  -p git,vim,vlan,bridge-utils

These images have static IP addresses and hostnames baked into them. This simulates the production environment for most purposes but avoids too much complexity setting up local networks.

Define the network:

virsh net-define definitions/network.xml

Start the network:

virsh net-start public

Define the VMs:

virsh define definitions/controller.xml
virsh define definitions/compute.xml

Start the VMs:

virsh start controller
virsh start compute

Puppet

SSH into the controller:

source functions/sshvm
sshvm controller

Apply any puppet changes you're testing to /etc/puppet/modules/infracloud or /opt/system-config/production.

Run puppet apply:

puppet apply /opt/system-config/production/manifests/site.pp

Do the same on the compute node once the controller is finished:

sshvm compute
puppet apply /opt/system-config/production/manifests/site.pp

Test

Run the smoke test script:

bash -ex /opt/smoke-test