!!! warning "Document Under Construction" This document is very unfinished and should **NOT** be followed by anyone for deployment at this time. **Purpose**: Deploying OpenStack via Ansible. ## Hardware Breakdown | **Hostname** | **IP** | **Storage** | **Memory** | **CPU** | **Network** | **Purpose** | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | OPENSTACK-BOOTSTRAPPER | 192.168.3.46 (eth0) | 120GB | 8GB | 8-Cores | eth0 | OpenStack Ansible Playbook Deployment Node | | OPENSTACK-NODE-01 | 192.168.3.43 (eth0) | 250GB (OS), 500GB (Ceph Storage) | 32GB | 16-Cores | eth0, eth1 | OpenStack Cluster Node | | OPENSTACK-NODE-02 | 192.168.3.44 (eth0) | 250GB (OS), 500GB (Ceph Storage) | 32GB | 16-Cores | eth0, eth1 | OpenStack Cluster Node | | OPENSTACK-NODE-03 | 192.168.3.45 (eth0) | 250GB (OS), 500GB (Ceph Storage) | 32GB | 16-Cores | eth0, eth1 | OpenStack Cluster Node | ## Configure Hard-Coded DNS for Cluster Nodes We want to ensure everything works even if the nodes have no internet access. By hardcoding the FQDNs, this protects us against several possible stupid situations. Run the following script to add the DNS entries. ```sh # Make yourself root sudo su ``` !!! note "Run `sudo su` Separately" When I ran `sudo su` and the echo commands below as one block of commands, it did not correctly write the changes to the `/etc/hosts` file. Just run `sudo su` by itself, then you can copy paste the codeblock below for all of the echo lines for each DNS entry. ```sh # Add the OpenStack node entries to /etc/hosts echo "192.168.3.43 OPENSTACK-NODE-01.bunny-lab.io OPENSTACK-NODE-01" >> /etc/hosts echo "192.168.3.44 OPENSTACK-NODE-02.bunny-lab.io OPENSTACK-NODE-02" >> /etc/hosts echo "192.168.3.45 OPENSTACK-NODE-03.bunny-lab.io OPENSTACK-NODE-03" >> /etc/hosts ``` ### Validate DNS Entries Added ```sh cat /etc/hosts ``` !!! example "/etc/hosts Example Contents" When you run `cat /etc/hosts`, you should see output similar to the following: ```ini title="/etc/hosts" 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.3.43 OPENSTACK-NODE-01.bunny-lab.io OPENSTACK-NODE-01 192.168.3.44 OPENSTACK-NODE-02.bunny-lab.io OPENSTACK-NODE-02 192.168.3.45 OPENSTACK-NODE-03.bunny-lab.io OPENSTACK-NODE-03 ``` ## OpenStack Deployment Node The "Deployment" node / bootstrapper is responsible for running Ansible playbooks against the cluster nodes that will eventually be running OpenStack. [Original Deployment Node Documentation](https://docs.openstack.org/project-deploy-guide/openstack-ansible/latest/deploymenthost.html) ```sh sudo su dnf upgrade dnf install -y git chrony openssh-server python3-devel sudo dnf group install -y "Development Tools" ```