Skip to content
Hwat Sauce avatarhwat.sauce
~/posts/kypo-open-stack.mdx

$ cat kypo-open-stack.mdx

_

$ date → August 22, 20245 min read901 words

Kypo OpenStack Deployment

A step-by-step guide to deploying the KYPO Cyber Range Platform on OpenStack — the prerequisites, configuration files, and gotchas in one place.


Things you need:#

  • CentOS 9
  • VM Ware Workstation
  • Configuration Files
  • 12 Gigs of RAM
  • 500 Gigs of Storage

First thing first download the configuration files from the following link.

Kypo-OpenStack — Configuration Files (GitHub)

First, you must set your VM ware Configuration according to the following Screenshot.

image

Set RAM to 8 GB Minimum you can Use 16 GB or 24 GB depending upon your RAM size.

Add 5 hard drives, 100 GB for CentOS, which is already available starting from 20 GB. Additionally, we need 4 local hard drives for installing various VMs on Open Stack. The sizes of these local hard drives range from 30 GB to 50 GB.

Add 3 network adapters to the CentOS VM configuration in VMware settings. One adapter is already available, and you need to add 2 more.

Your cent OS Network Adapter should be at NAT settings

  • The second network adapter will be a HOST-only setting.
  • The third network adapter will be a bridged connection.

Make sure to match the configuration with the first screenshot at the top of this article. Name your VM and set the username and password for your CentOS login screen. Leave the other settings as they are. Close the settings and then turn on your VM. The installation process of CentOS is fully automated.

Please ensure that your internet is working properly and that all adapters are functioning correctly. You can check them from the VMware Status bar or the Network panel of CentOS. Currently, ens224 is turned off.

image

On Desktop, click on activities Open terminal the terminal.

image

Now use this Command for the OpenStack local hostname.

su
hostnamectl set-hostname openstackio --static 
console
su
hostnamectl set-hostname openstackio --static 
console

openstackio is the name. You can use any name of your choice. This execution of the command will set the local hostname only. This execution of the Command will result in nothing and will set the local host name only.

image

To configure your IP with your local host. I use an ens160 IP address. Use the command to map your IP to the local host. The name for the local host should be the same as set in the previous command. Then use the cat command with directories to verify your mapping:

echo "192.168.109.128 openstackio" >> /etc/hosts
cat /etc/hosts
console
echo "192.168.109.128 openstackio" >> /etc/hosts
cat /etc/hosts
console

image

Now use these Commands:

setenforce 0 
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
console
setenforce 0 
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
console

image

Now use the following command the following command to install the network

scripts dnf install network-scripts -y
console
scripts dnf install network-scripts -y
console

image

Upon completing this, the following output will be displayed.

image

Now use the following back-to-back commands.

systemctl disable - now firewalld NetworkManager 
systemctl enable - now network 
dnf -y install lvm2
console
systemctl disable - now firewalld NetworkManager 
systemctl enable - now network 
dnf -y install lvm2
console

image

image

Upon completing this, the following output will be displayed.

image

Now use the following command to check the size and space of the hard drive you added in your VM configuration.

fdisk -l
console
fdisk -l
console

image

Now use these commands for more configuration making tables and groups in free space.

pvcreate -f /dev/nvme0n2
pvs 
vgcreate -f cinder-volumes /dev/nvme0n2 
vgs 
mkfs.ext4 /dev/nvme0n3 
mkfs.ext4 /dev/nvme0n4
console
pvcreate -f /dev/nvme0n2
pvs 
vgcreate -f cinder-volumes /dev/nvme0n2 
vgs 
mkfs.ext4 /dev/nvme0n3 
mkfs.ext4 /dev/nvme0n4
console

image

image

Now use this Command:

yum install dnf-plugins-core
console
yum install dnf-plugins-core
console

image

Upon completing this, the following output will be displayed.

image

yum config-manager - set-enabled powertools
dnf install -y centos-release-openstack-train
console
yum config-manager - set-enabled powertools
dnf install -y centos-release-openstack-train
console

image

image

After this, we will utilize the following command to install the necessary and additional packages, which will take some time.

dnf update –y
console
dnf update –y
console

image

Upon completing this, the following output will be displayed.

image

Now it’s time to install OpenStack. Use the following command to install OpenStack. It will also take some time to download and install packages. Also, you need some changes in the configuration file in yum.repos.d.

dnf install -y openstack-packstack
console
dnf install -y openstack-packstack
console

image

Upon completing this, the following output will be displayed.

image

Now use these commands to allow access to file of Configuration.

packstack --gen-answer-file=answer.txt
console
packstack --gen-answer-file=answer.txt
console

![https://github.com/user-attachments/assets/45d1e187-1215-4b77-b9d1-4bc18c626ed3]

Now, use nano to edit the configuration file answer.txt. Search and make changes to the following lines. Use ctrl+w to search and arrows to move the cursor.

CONFIG_DEFAULT_PASSWORD=admin123
CONFIG_HEAT_INSTALL=y
CONFIG_MAGNUM_INSTALL=y
CONFIG_SSL_CERT_DIR=~/packstackca/
CONFIG_SSL_CACERT_SELFSIGN=y
CONFIG_SSL_CERT_SUBJECT_C=ID
CONFIG_SSL_CERT_SUBJECT_ST=Punjab
CONFIG_SSL_CERT_SUBJECT_L=Islamabad
CONFIG_KEYSTONE_ADMIN_PW=admin123
CONFIG_CINDER_VOLUMES_CREATE=n
CONFIG_NEUTRON_OVN_BRIDGE_MAPPINGS=extnet:br-ex
CONFIG_NEUTRON_OVN_BRIDGE_IFACES=br-ex:ens160
CONFIG_NEUTRON_OVN_BRIDGES_COMPUTE=br-ex
CONFIG_NOVA_LIBVIRT_VIRT_TYPE=qemu
CONFIG_HORIZON_SSL=y
CONFIG_SWIFT_STORAGES=/dev/nvme0n3,/dev/nvme0n4
CONFIG_SWIFT_STORAGE_REPLICAS=2
CONFIG_SWIFT_STORAGE_FSTYPE=ext4
CONFIG_PROVISION_DEMO=n
console
CONFIG_DEFAULT_PASSWORD=admin123
CONFIG_HEAT_INSTALL=y
CONFIG_MAGNUM_INSTALL=y
CONFIG_SSL_CERT_DIR=~/packstackca/
CONFIG_SSL_CACERT_SELFSIGN=y
CONFIG_SSL_CERT_SUBJECT_C=ID
CONFIG_SSL_CERT_SUBJECT_ST=Punjab
CONFIG_SSL_CERT_SUBJECT_L=Islamabad
CONFIG_KEYSTONE_ADMIN_PW=admin123
CONFIG_CINDER_VOLUMES_CREATE=n
CONFIG_NEUTRON_OVN_BRIDGE_MAPPINGS=extnet:br-ex
CONFIG_NEUTRON_OVN_BRIDGE_IFACES=br-ex:ens160
CONFIG_NEUTRON_OVN_BRIDGES_COMPUTE=br-ex
CONFIG_NOVA_LIBVIRT_VIRT_TYPE=qemu
CONFIG_HORIZON_SSL=y
CONFIG_SWIFT_STORAGES=/dev/nvme0n3,/dev/nvme0n4
CONFIG_SWIFT_STORAGE_REPLICAS=2
CONFIG_SWIFT_STORAGE_FSTYPE=ext4
CONFIG_PROVISION_DEMO=n
console

admin123 is a sample password. You can use a password of your choice. Press Ctrl+X to save and quit the file, then press Y to ensure that the file is written successfully and saved. After that, use this command. It will take a bit longer to complete the configuration we have just done.

packstack --answer-file=answer.txt
console
packstack --answer-file=answer.txt
console

image

Upon completing this, the following output will be displayed.

Now use this last command

dnf install -y wget
console
dnf install -y wget
console

You can access your OpenStack on your browser using:

https://<ip-address>/dashboard
console
https://<ip-address>/dashboard
console

Note#

Please make sure to use your IP to access your OpenStack Dashboard. When prompted for login credentials at the OpenStack login screen, use the following:

Username: admin

Password: admin123 (use your password as per your setup)

After logging in, you will see the following screen in your browser.


Big shout out to my team for their efforts on this project. Make sure to check out their blog as well.

I hope this was help. I you are having an issue with it feel free to create an issue.

THANKS

MUHAMMAD ABDULLAH