# Create Openstack images for use with Cheaha # Prerequities 1. [packer](https://www.packer.io/downloads) 2. python 3.5+ 3. an openstack RC file 4. Copies of certain files you can find around cheaha (place in `ansible/files`): * `/etc/yum.repos.d/cm.repo` from a bright node * `/etc/pki/rpm-gpg/RPM-GPG-KEY-cm` from a bright node * `/etc/munge/munge.key` from a bright node * `/cm/local/apps/opendlap/etc/certs/*.{key,pem}` (all certs in this directory) from a bright node * `/etc/nslcd.conf` from a bright node # Quickstart Use your openstack rc file and use the following and you should be able to quickly create an instance: ```bash python -mvenv env . env/bin/activate pip install ansible cp openstack.pkrvars.hcl{.example,} packer build -var-file=openstack.pkrvars.hcl openstack ``` # Running 1. Use your openstack rc file 2. Install ansible (preferably in a virtualenv) and ensure `ansible-playbook` is in `PATH` 3. Copy `openstack.pkrvars.hcl.example` to `openstack.pkrvars.hcl` and edit in the documented variables 4. Run `packer build -var-file=openstack.pkrvars.hcl openstack` # Bright considerations In order to have this node "behave" as a normal slurm node, you'll need to do the following: 1. Create an entry for it in devices - this is specifically to create the dns entry (the most important thing to set up is the IP under interfaces) 2. Add the node entry to `/etc/slurm/slurm.conf` (both as a node definition and to a partition) # Running the openstack image 1. Create an instance with the image, at whatever size you need 2. Make sure to assign it to the `openstack-cheaha-internal` network with the `cheaha-network` security group 3. Associagte a cheaha floating ip from the `cheaha-cluster` pool