Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

Repository files navigation

Openstack CheatSheet



PRs Welcome

Main Components of OpenStack

ServiceCode nameDescriptionCore TechPort
Identity ServiceKeystoneUser Managementauthentication and authorization35357(adminurl) & 5000(publicurl)
Compute ServiceNovaVirtual Machine ManagementKVM, Qemu,Libvirtd
Image ServiceGlanceManages kernel image or disk image9191 & 9292
DashboardHorizonUI Dashboard for OpenStack Management
Object StorageSwiftProvides Cloud Object Storage(s3)6000,6001,6002
Block StorageCinderBlock StorageLVM,CEPH
Network ServiceNeutronNetworking serviceOpenVswitch,Linux Bridge9696
Load BalancingOctaviaLB serviceHAPROXY,keepalived,VRRP
Key Manager ServiceBarbicanKey service

Main concepts in openstack networking

ServiceCode name
TAP deviceA tap device is a software-only interface, that a userspace program can attach to itself and send/receive packets to it. TAP devices are they way that KVM/QEMU implement virtual NIC (vNIC) attached to the VMs , A TUN/TAP device is a virtual device where one end is a kernel network interface, and the other end is a user space file descriptor.
veth pairveth pair is a pair of virtual NIC cards connected via a virtual cable. If a packet is sent on one of them, it will come out of the other one and vise versa. veth are usually used to connect two entities.
Linux bridgeLinux bridge is a virtual switch implemented in Linux
Openvswitchopenvswitch is a more complicated vritual switch implemented in Linux. It allows openflow rules to be applied to traffic at layer 2 such that decisions are made on MAC addresses, VLAN ID of the traffic flow. Openvswitch provides native support for VXLAN tunnels
Network namespacesAn isolated network stack in Linux, where you can have isolated interfaces, routing tables and iptables rules. Network name spaces do not “see” each other’s traffic. This is vital for openstack since you let your users create their own VM networks and you need this level of isolation at layer
Patch interfaces in openvswitcha special kind of interface that is used to connect two openvswitch switches e.g patch-tun –> patch-int
neutron-where-did-my-packets-go

Common Commands

NameCommand
Official Cheatsheet OpenStack cli-cheat-sheet
OpenStack Glossary OpenStack Glossary
Issue keystone Tokenopenstack token issue -f value -c id
identity provider list.openstack identity provider list
Cinder Service listcinder service-list
Compute service listopenstack compute service list
Neutron agent listopenstack network agent list
Hypervisor listopenstack hypervisor list
Aggregate listopenstack aggregate list
Availability zone Listopenstack availability zone list
Project listopenstack project list
Project Quotaopenstack quota show $TENANT_NAME
Enable Compute service on specific Hypervisoropenstack compute service set --enable $COMPUTE_NAME nova-compute
Show n/w detailsopenstack network show $NETWORK_NAME
Show subnet detailsopenstack subnet show $SUBNET_NAME
Set quota on routeropenstack quota set --routers 3 $ROUTER_ID
Set quota on subnetopenstack quota set --subnets 25 $SUBNET_ID
rbac listneutron rbac-list
list openstack servicesopenstack service list
cinder listcinder list --all|grep kube|grep avail|awk '{print $2}'|xargs -L1 cinder delete
Show LB quotaopenstack loadbalancer quota show id
List useropenstack user list
List ERROR instancesopenstack server list --all-projects --status ERROR -c ID
list all tenant volumescinder list --all-tenants
list all volumes of specific tenantcinder --os-tenant-name $TENANT_NAME list
Increase Instance Quota for a projectopenstack quota set --instances 50 $TENANT_NAME
Check all Instance on a specific Hypervisoropenstack server list --all-projects --host $COMPUTE_NAME
List IP availability for projectopenstack ip availability list --project $TENANT_NAME
Launch a Instance on specific Hypervisornova boot --flavor 10 --image $IMAGE_NAME --nic net-id=$NETWORK_NAME --availability-zone nova:COMPUTE_NAME $INSTANCE_NAME
List Instance by Projectopenstack server list --all-projects --project $TENANT_NAME
Find Instance Projectopenstack server list --all-projects | grep -i $INSTANCE_NAME
Console Logsopenstack console log show $INSTANCE_ID
Create Floating IPopenstack floating ip create --project $TENANT_NAME --subnet $SUBNET_NAME $NETWORK_NAME
Show network IP availability detailsopenstack ip availability show $NETWORK_NAME
List IP availability for networksopenstack ip availability list
List L3 agentopenstack network agent list --agent-type l3
List openVswitch Agentopenstack network agent list --agent-type open-vswitch
Resource checkopenstack resource provider list
List OpenStack server by IPopenstack server list --ip 192.168.0.10 OR openstack server list --all-projects --ip 192.168.0.10
Resource detaild viewopenstack resource provider show --allocations $COMPUTE_ID -f json
Detach a volume from an instanceopenstack server remove volume $INSTANCE_ID $VOLUME_ID
Check role assignmentopenstack role assignment list --name --project $PROJECT_ID
Nagios directory/usr/share/check-mk-agent

Controller services

NameCommand
HTTPDsystemctl status httpd
MEMCACHEDsystemctl status memcached
HAPROXYsystemctl status haproxy
KEEPALIVEDsystemctl status keepalived
MARIADBsystemctl status mariadb
RABBITMQsystemctl status rabbitmq-server
GLANCEsystemctl status openstack-glance-api openstack-glance-registry
NOVAsystemctl status openstack-nova-api openstack-nova-consoleauth openstack-nova-conductor openstack-nova-scheduler openstack-nova-novncproxy
NEUTRONsystemctl status neutron-server

Network services

NameCommand
NEUTRONsystemctl status neutron-dhcp-agent neutron-l3-agent neutron-metadata-agent neutron-openvswitch-agent

Compute services

NameCommand
NOVAsystemctl status openstack-nova-compute openvswitch neutron-openvswitch-agent

Octavia services

NameCommand
OCTAVIAsystemctl status octavia-api octavia-worker octavia-health-manager octavia-housekeeping

RabbitMQ

NameCommand
rabbitmq-diagnostics status
rabbitmqctl cluster_status
rabbitmqctl list_queues -p openstack | sort -k 2 -g
rabbitmqctl list_queues -p openstack name consumers messages
More InfoClustering Guide

CEPH services

NameCommand
Check Versionceph tell mon.* version
Check Health Statusceph health detail
ceph osd df
ceph osd pool ls detail
ceph osd pool get rbd all

OpenStack Port

NameComment
placement8778
neutron9696
nova8774
glance9292
keystone5000
nova-api port to retrive metadata8775

OpenStack metadata curl requests

NameQuery
retrive metadatacurl http://169.254.169.254/openstack/latest/meta_data.json
retirve userdatacurl 169.254.169.254/1.0/user-data
How OpenStack handels metadata More on OpenStack Metadata

Log & Conf Files

NameComment
/
==
==

Nova

NameCommand
List all VM.openstack server list
List all VM for all projectsopenstack server list --all-projects
Show VM detailsopenstack server show $INSTANCE_ID
Create VM from CLIopenstack server create --flavor 10 --image $IMAGE_ID --key-name $INSTANCE_ID --security-group $SECGRP_ID --nic net-id=$NETWORK_ID $INSTANCE_ID
Get Instance infoopenstack server show $INSTANCE_ID
Migrate Instance Live on Specific hypervisoropenstack server migrate $UUID --live Hypervisor-moon
Migrate Instance Liveopenstack server migrate $UUID --live-migration
Nova Migration article VM Migration some-useful-commands

Octavia LoadBalancer

NameCommand
Octavia glossaryOpenStack official glossary
List all LB.openstack loadbalancer list
View LB detailsopenstack loadbalancer show lb_uuid
Create LBopenstack loadbalancer create --name $LB_NAME --vip-subnet-id $SUBNET_ID
Create lb listeneropenstack loadbalancer listener create --name $LISTENER_NAME --protocol TCP --protocol-port 80 $LB_NAME
Show lb listeners detailsopenstack loadbalancer listener show $LB_ID
update lb parametersopenstack loadbalancer listener set --timeout-client-data 60000 --timeout-member-data 60000 $LISTENER_ID
create lb poolopenstack loadbalancer pool create --name $POOL_ID --lb-algorithm ROUND_ROBIN --listener $LISTENER_NAME --protocol TCP
Add member to lbopenstack loadbalancer member create --subnet-id $SUBNET_ID --address 192.168.0.151 --protocol-port 80 $LB_ID
List Amphora node of LoadBalanceropenstack loadbalancer amphora list --loadbalancer $LB_ID
List Octavia provideropenstack loadbalancer provider list
Find Octavia VM,(only in Service cloud)openstack server list --name .*octavia.*
Find out Error’d Amphora nodesopenstack loadbalancer amphora list | grep -v ALLOCATE
List LB poolopenstack loadbalancer pool list
List members in poolopenstack loadbalancer member list POOL_ID
LB failoveropenstack loadbalancer failover $LB_ID
LB Deleteopenstack loadbalancer delete --cascade $LB_ID
Get member Details.openstack loadbalancer member show $POOL_ID $MEMBER_ID
Check all Amphorae on services projectopenstack server list --all-projects --project services -c "Availability Zone" -c ID -c Name -c Host -c "Power State" --long
Test port Connection from Amphora namespaceip netns exec amphora-haproxy curl -v telnet://IP:443
Octavia CookbookOpenStack official LB Cookbook
How to fetch the client IP address at the backendFetch the client IP address at the backend
insert_headersopenstack loadbalancer listener set --insert-headers X-Forwarded-For true
LB statisticsopenstack loadbalancer stats show $LB_ID
LB Listener statisticsopenstack loadbalancer listener stats show $Listener_ID
List LB flavorsopenstack loadbalancer flavor list
Create LB with specific flavoropenstack loadbalancer create --name lb-flavor-test-1 --flavor Octavia_4vCPUx4GB --vip-network-id e33324cc-69d1-4b61-b4b5-9264f7ba0d92
Octavia FeaturesOctavia Load Balancer Features

Security Group

NameCommand
List all Security Groupopenstack security group list
Create security group e.g sshopenstack security group create ssh
Add a rule to allow ssh and icmp in the ssh security groupopenstack security group rule create --ingress --protocol tcp --dst-port 22 ssh
Add a rule to allow ssh and icmp in the ssh security groupopenstack security group rule create --ingress --protocol tcp --protocol icmp ssh

Cirros Tips and Tricks

NameCommand
Run Lighweight webserverwhile true; do (echo -e 'HTTP/1.1 200 OK\r\n'; echo -e "\n\tMy website has date function" ; echo -e "\t$(date)\n") | nc -lp 8080; done

Glance

NameCommand
Create a glance image webimage using a file centos.qcow2 available inside /tmpopenstack image create --disk-format qcow2 --file /tmp/cinder.qcow2 webimage
Download Image from Glanceglance image-download --file CENTOS-8 --progress $IMAGE_ID
Show Image detailsopenstack image show $IMAGE_ID
Import/Export of VM SnapshotsOpenStack official import/export Doc

Neutron

NameCommand
Check if IP belong to OpenStack DCopenstack port list | grep $IP_ADDRESS
Create VIP Portopenstack port create --project $PROJECT_ID --network $NW_ID --security-group $SEC_ID $VIP_NAME
Port setopenstack port set $VM_PORT_ID allowed-address mac-address=$VIP_PORT_ID,ip-address=$VIP_IP
Check floating IPopenstack floatingip list
disable port_security_enabled flagopenstack port set --disable-port-security $PORT_ID
check port in specific projectopenstack port list --project $PROJECT_ID
List all Security Groupopenstack security group list
Create security group e.g sshopenstack security group create ssh
Add a rule to allow ssh and icmp in the ssh security groupopenstack security group rule create --ingress --protocol tcp --dst-port 22 ssh
Add a rule to allow ssh and icmp in the ssh security groupopenstack security group rule create --ingress --protocol tcp --protocol icmp ssh

Nova

NameCommand
Check system metrics of Instancenova diagnostics $INSTANCE_ID

Cinder

NameCommand
List all volumesopenstack volume list --all-project
List all snapshotopenstack volume snapshot list --all-project
Show snapshot detailsopenstack volume snapshot show $VOLUME_ID
reset volume statecinder snapshot-reset-state $VOLUME_ID
delete volume snapshotopenstack volume snapshot delete $VOLUME_ID
Find out snapshot of a volumeopenstack volume snapshot list --volume $VOLUME_ID --all-project
Force delete cinder volumecinder force-delete $VOLUME_ID
Remove volume from Instanceopenstack server remove volume $INSTANCE_ID $VOLUME_ID
Add volume to Instanceopenstack server add volume $INSTANCE_ID $VOLUME_ID
Troubleshooting cinderTroubleshooting Doc

Systemd

NameCommand
Listing Running Services Under SystemDsystemctl --type=service
List all active Servicessystemctl --type=service --state=active
Displaying a Unit Filesystemctl cat nginx OR systemctl edit --full nginx.service
Check unit filessystemctl list-unit-files
Editing Unit Filessystemctl edit nginx.service
systemd file location/etc/systemd/system/
Reload systemd processsystemctl daemon-reload
Shows services that failed to runsystemctl --failed
see loaded but inactive unitssystemctl --failed --all
Systemd cheatsheetOfficial CheatSheet

journalctl

NameCommand
Show all journal entries:journalctl
See boot-related messages from the current boot:journalctl -b
To see the boots that systemd journal knows aboutjournalctl --list-boots
Display all messages generated by process IDjournalctl _PID=1115
Display all messages generated by current user ID (id -u):journalctl _UID=$(id -u)
Display all of the entries that involve the executable in question:journalctl /bin/bash
Displays all messages between two dates:journalctl --since "2020-07-05 21:30:01" --until "2021-07-05 21:30:02"
Printing the last 50 messages logged within the last hour:journalctl -n50 --since "1 hour ago"
Printing the last 50 messages logged within the last minutes:journalctl -n50 --since "5 minutes ago"
json-pretty outputjournalctl -u telegraf -f -o json-pretty
parse json outputjournalctl -u telegraf -f -o json-pretty | jq .MESSAGE
Filter logs based on priorityjournalctl -p 2
Filter kernel messagesjournalctl -k
View logs using journalctl in verbose modejournalctl -o verbose
journalctl cheatsheetOfficial CheatSheet

Tcpdump

NameCommand
Capture All incoming HTTP POST requeststcpdump -i eth0 -s 0 -A ‘tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504F5354’
Capture All incoming HTTP GET requeststcpdump -i eth0 -s 0 -A ‘tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420’
Capturing packets with human readable timestamptcpdump -c 8 -tttt -i enp0s3
Capturing and saving packets to a filetcpdump -w enp0s3-26082018.pcap -i enp0s3
Capturing and Saving the packets whose size greater than N bytes.tcpdump -w enp0s3-26082018-2.pcap greater 1024
Capturing and Saving the packets whose size less than N bytestcpdump -w enp0s3-26082018-3.pcap less 1024
Reading packets from the saved filetcpdump -r enp0s3-26082018.pcap
Find the leaf switchtcpdump -c 2 -i bond0 -nn "ether[20:2]==0x2000"
Find the leaf switch for eth0tcpdump -c 2 -i eth0 -nn "ether[20:2]==0x2000"
Capture outgoing port traffictcpdump -enni tap-interface-id dst port 443
Capture outgoing src and port traffictcpdump -enni tap-interface-id src 192.168.0.1 and dstport 443
DNS tracedig +trace google.com
DNS tcpdumptcpdump -enni eth0 dst port 53

IP-NETNS

NameCommand
List namespacesip netns
GET namespace PIDip netns pids

Virsh commands

NameCommand
List active guestsvirsh list
List all Guests.virsh list --all
Edit Guestvirsh edit GUEST_ID
check GUEST xml datavirsh dumpxml GUEST_ID
Find the tap interface of VMvirsh dumpxml GUEST_ID | grep -i tap
Get the CPU Pinning Settings for a Guestvirsh vcpupin GUEST_ID
Discover CPU Scheduling Parametersvirsh schedinfo GUEST_ID
stats of virtualized domainsvirt-top
check attached diskvirsh domblklist GUEST_ID --details
Detach Diskvirsh detach-disk GUEST_ID sdc --config --live
More Info RedHat Docs And Virsh_Command_Reference

MariDB commands

NameCommand
assign privilegesGRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
show processlistshow processlist\G;" | egrep "db\:" | awk -F: '{ print $2 }' | sort | uniq -c
Check connected Threadsshow status like "%Threads_connected%";
MySQL Thread Connected statusselect user, count(user) from information_schema.processlist group by user ;
Check log Infoshow variables like 'log_warnings';
MariaDB Cheatsheet CheetSheet

Monitoring and LoadTesting

NameCommand
To create 100M size, enterfallocate -l 100M file.out
Stress Memory/CPUstress-ng --cpu 18 -m 18 --vm-bytes 17000M -t 36000
Stress Memorystress-ng --cpu 2 --malloc 1 --malloc-bytes 150%
Top Process.ps -eo pid,ppid,cmd,%cpu,%mem --sort-%cpu=

Trace Linux System Calls

NameCommand
To see which commands made the most system callsperf top -F 49 -e raw_syscalls:sys_enter --sort comm,dso --show-nr-samples
To see latencies longer than a specific durationperf trace --duration 200
system calls within a period of timeperf trace -p $PID -s
trace-cmd More Info on https://opensource.com/

General Linux Commands

NameCommand
check cpu corelscpu -e
check Hardware detailsdmidecode -t system
Show HaProxy metricsecho "show stat" | nc -U /var/lib/haproxy/stats-1
What if nc command is not installedtimeout 1 bash -c "</dev/tcp/IP_ADDRESS/80" && echo Port open. || echo Port closed
What if nc command is not installed, without timeout cmdbash -c "</dev/tcp/IP_ADDRESS/80" && echo Port open. || echo Port closed
Check remote SSL cert validityopenssl s_client -showcerts -connect cloud-svldev-1-storage.cisco.com:443 < /dev/null|openssl x509 -noout -text 2>/dev/null | grep After
Check local SSL cert validitycat kubelet.crt | openssl x509 -noout -enddate
netstat connections sorted according to their statenetstat -ant | grep :$PORT | awk '{print $6}' | sort | uniq -c | sort -n
netstat check local connectionsnetstat -anp | grep -c $(hostname -i):5672
Check iptables NAT rulesiptables -L -v -n
Find Large Files in Linuxdu -a /dir/ | sort -n -r | head -n 20
silent curlcurl -s https://openstack.com/v2/nova

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages