Milestone 9 - OpenStack Tutorials
Services Commands:
Display services:
microstack.openstack catalog listDisplay users:
microstack.openstack user listDisplay images:
microstack.openstack image listDisplay networks:
microstack.openstack network listDisplay hypervisors:
microstack.openstack hypervisor listDashboard Navigation:
Themes:

Users:
Access users:

Change user password:

Project Menu:
Project drop down:

The Project menu on the left is grouped into three sections:
API Access provides information about API endpoints of OpenStack services.
Compute provides access to project compute resources, such as instances.
Network provides access to project network resources, such as virtual networks.
List images for a project:

Admin Menu:
The Admin menu on the left is grouped into five sections:
Overview displays usage metrics across all projects.
Compute provides access to global compute resources, such as hypervisors.
Network provides access to global network resources, such as RBAC policies.
System provides access to various system information.
Optimization currently not used

Identity Menu:
The Identity menu on the left is grouped into six sections:
Domains provides acces to domains.
Projects provides access to project accounts.
Users provides access to user accounts.
Groups provides access to user groups.
Roles provides access to user roles.
Application Credentials provides access to application credentials.

Templates:
Create Image:
microstack.openstack image create --disk-format qcow2 --min-disk 8 --min-ram 512 --file ~/Downloads/focal-server-cloudimg-amd64-disk-kvm.img --private paul-focalList images:
microstack.openstack image list
Manage through dashboard:

Example upload:
Image Name - Type
ubuntu-focalFile - Click Browse and find the focal-server-cloudimg-amd64-disk-kvm.img file in your Downloads directory
Format - Select QCOW2 - QEMU Emulator
Minimum Disk (GB) - Type
8Minimum RAM (MB) - Type
512Visibility - Choose Private
Manage flavors:
Create a flavor:
microstack.openstack flavor create --ram 1024 --disk 10 --vcpus 1 paul-flavor
List flavors:
microstack.openstack flavor list
Manage flavors in dashboard:

To create the flavor, fill in the form as follows:
Name - Type
paul-flavorVCPUS - Type
1RAM (MB) - Type
1024Root Disk (GB) - Type
10
Identities:
Manage Domains:
Create domain:
microstack.openstack domain create --description "paul_domain" pauldomain
List domain:
microstack.openstack domain list
Create domain user:
microstack.openstack user create --domain pauldomain --password <password> admin
microstack.openstack role add --domain pauldomain --user-domain pauldomain --user admin adminOliver added the following code to enable domains:
add the following to "/var/snap/microstack/common/etc/horizon/local_settings.d/_05_snap_tweaks.py" to enable domains:
# Setup multidomain support
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"Additions seen added to _05_snap_tweaks.py:

Then ran:
sudo snap restart microstack.horizon-uwsgiTo login with domain user:

Domains:

Manage Roles:
Create role:
microstack.openstack role create _paulmember_List roles:
microstack.openstack role list
Project management:
Create project:
microstack.openstack project create --domain pauldomain paulprojectList project in domain:
microstack.openstack project list --domain pauldomain
User and group management:
Create new user:
microstack.openstack user create --domain pauldomain --password <password> admin2Create a new group:
microstack.openstack group create --domain pauldomain paulgroupList groups:
microstack.openstack group list --domain pauldomain
Membership and assignment management:
Add user to group:
microstack.openstack group add user --group-domain pauldomain --user-domain pauldomain paulgroup admin2Assign group to project:
microstack.openstack role add --project paulproject --project-domain pauldomain --group paulgroup --group-domain pauldomain memberMulti-tenancy:
Setup:
sudo apt install python3-pip python3.10-venv -y
python3 -m venv venv
source venv/bin/activate
pip install python-openstackclient
source ~/Downloads/pauldomain_admin2.shKeypair:
openstack --insecure keypair create --private-key ./mykeypair.pem --type ssh mykeypairNetworking:
Network:
Create network:
microstack.openstack network create paulnetworkList networks:
microstack.openstack network list
Subnet:
Create subnet:
microstack.openstack subnet create --network paulnetwork --subnet-range 10.5.0.0/24 --allocation-pool start=10.5.0.75,end=10.5.0.100 --dns-nameserver 1.1.1.1 paulsubnetList subnets:
microstack.openstack subnet list
Routers:
Create:
microstack.openstack router create paulrouterList:
microstack.openstack router list
Set external network:
microstack.openstack router set --external-gateway external-network paulrouterAdd subnet:
microstack.openstack router add subnet paulrouter paulsubnetFloating IPs:
Create:
microstack.openstack floating ip create externallist:
microstack.openstack floating ip listSecurity Groups:
Create:
microstack.openstack security group create paulsecuritygrouplist:
microstack.openstack security group list
All 22 to my security group:
microstack.openstack security group rule create --remote-ip 0.0.0.0/0 --dst-port 22:22 --protocol tcp --ingress paulsecuritygroupList rules:
microstack.openstack security group rule list paulsecuritygroup
Instances:
Launch instance:
launch:
microstack.openstack --insecure server create --flavor paul-flavor --image cirros --network paulnetwork --key-name mykeypair --min 2 --max 2 paulinstanceServer list:
microstack.openstack server listFloating IP to instance:
IP=$(openstack --insecure floating ip list | tail -n 2 | head -n 1 | awk '{print $4}')
microstack.openstack --insecure server add floating ip paulinstance $IPAttach security to instance:
microstack.openstack server add security group paulinstance paulsecuritygroupAttach security group:
chmod 0400 ~/Downloads/mykeypair.pemIP=$(openstack floating ip list | tail -n 2 | head -n 1 | awk '{print $4}')
ssh -i ~/Downloads/mykeypair.pem -o StrictHostKeyChecking=no cirros@$IPDelete Instance:
microstack.openstack server delete paulinstanceLast updated