{"id":23524172,"url":"https://github.com/kimtth/openstack-dev-cloudshell","last_synced_at":"2026-01-24T14:45:07.252Z","repository":{"id":103355522,"uuid":"115600019","full_name":"kimtth/openstack-dev-cloudshell","owner":"kimtth","description":"📚 Openstack intergration with Quali Cloudshell","archived":false,"fork":false,"pushed_at":"2019-10-09T13:52:18.000Z","size":66,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-14T06:27:27.458Z","etag":null,"topics":["devstack","openstack","quali-cloudshell","ubuntu","virtualbox"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kimtth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-12-28T07:59:22.000Z","updated_at":"2020-08-22T07:46:48.000Z","dependencies_parsed_at":"2023-07-07T21:16:40.556Z","dependency_job_id":null,"html_url":"https://github.com/kimtth/openstack-dev-cloudshell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kimtth/openstack-dev-cloudshell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimtth%2Fopenstack-dev-cloudshell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimtth%2Fopenstack-dev-cloudshell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimtth%2Fopenstack-dev-cloudshell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimtth%2Fopenstack-dev-cloudshell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kimtth","download_url":"https://codeload.github.com/kimtth/openstack-dev-cloudshell/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimtth%2Fopenstack-dev-cloudshell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28730181,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devstack","openstack","quali-cloudshell","ubuntu","virtualbox"],"created_at":"2024-12-25T18:14:48.220Z","updated_at":"2026-01-24T14:45:07.245Z","avatar_url":"https://github.com/kimtth.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"![openstack-logo-1-300x150](https://user-images.githubusercontent.com/13846660/34405179-33a09ef4-ebf5-11e7-8530-9d60a26683c8.png)\n\u003c!-- ![cloudshell_logo](https://user-images.githubusercontent.com/13846660/34405299-ec92e066-ebf5-11e7-86b2-0aa943395a14.png) --\u003e\n\n# Openstack_dev\nOpenstack intergration with Quali Cloudshell\n\n# DevStack Installation\n\n1) install\n\n\u003e install ubuntu 16.04 LTS \u003cbr\u003e\n\u003e install virtualbox extension \u003e\u003e insert guest addition CD image \u003cbr\u003e\n\u003e Virtualbox \u003e\u003e Devices \u003e\u003e Shared .. \u003e\u003e bidirectional \u003cbr\u003e\n\n2) add user named \"devstack\"\n```sh\nsudo adduser devstack\ncat /etc/passwd | grep devstack\nsu -devstack\npwd\nexit\n```\n\n3) add sudo privilege to user named \"devstack\", if you do not this, the openstack service could not start.\n```sh\nls -l /etc/sudoers\nsudo visudo -f /etc/sudoers\ndevstack ALL=(ALL) NOPASSWD: ALL =\u003e add this line end of file\n```\n\n4) set NIC on the virtualbox\n\u003e Setting for 2 NIC \u003cbr\u003e\n\u003e Virtualbox \u003e\u003e settings \u003e\u003e network \u003cbr\u003e\n\u003e  * adpater 1: NAT \u003cbr\u003e\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Port Forwarding: SSH TCP 192.168.X.X 22 192.168.Y.Y 22 \u003cbr\u003e\n\u003e  * adapter 2: Bridged Adapter \u003cbr\u003e\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Promiscuous Mode: Allow All \u003cbr\u003e\u003cbr\u003e\nNAT(Network Address Translation): vRouter, VM ↔ Internet, different subnet, Port forwarding OK \u003cbr\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Bridged: vSwitch, same subnet, VM has it's own IP\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003cstrong\u003eor\u003c/strong\u003e \n\n\u003e Setting for 1 NIC \u003cbr\u003e\n\u003e virtualbox \u003e\u003e settings \u003e\u003e network \u003cbr\u003e\n\u003e * adpater 1: NAT \u003cbr\u003e\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;Port Forwarding: SSH TCP  2022  22 \u003cbr\u003e\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Dashboard TCP  2080  80 \u003cbr\u003e\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Console TCP  6080 6080\u003cbr\u003e\n\n5) update ubuntu\n```sh\nsudo apt-get update -y\nsudo apt-get upgrade -y\nsudo apt-get dist-upgrade -y\n```\n\n6) ssh \u0026 git\n```sh\nsudo apt-get install openssh-server git -y\n```\n\n7) change root pass\n\u003e Press ESC durling Boot \u003cbr\u003e\n\u003e Press e on ubuntu \u003cbr\u003e\n```sh\nlash $vt_handoff 1 =\u003e add num 1 end of lash $vt_handoff\n```\n\u003e Ctrl + x =\u003e save \u003cbr\u003e\n\u003e terminal\u003eLANG=C passwd root \u003cbr\u003e\n\n8) clone from git\n```sh\ngit clone https://git.openstack.org/openstack-dev/devstack\n```\n\n9) change privilege \u0026 check info\n```sh\nsudo chown -R devstack:devstack /path/devstack\nsudo chmod 770 /path/devstack\nifconfig enp0s8 =\u003e checking host ip\nex) terminal\u003e..inet addr: 192.168.0.168\n```\n\n10) make local.conf\n```sh\ncd devstack\nvi local.conf\n```\n\n11) setting of local.conf\n\n- Most simplest(=\u003e Setting for 1 NIC) \n\n```sh\n[[local|localrc]]\nALL_PASSWORD=a\nADMIN_PASSWORD=$ALL_PASSWORD\nDATABASE_PASSWORD=$ALL_PASSWORD\nRABBIT_PASSWORD=$ALL_PASSWORD\nSERVICE_PASSWORD=$ALL_PASSWORD\nHOST_IP=10.0.2.15\n```\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003cstrong\u003eor\u003c/strong\u003e \n\n- Setting for 2 NIC \n\n![2nic_setting_diagram](https://user-images.githubusercontent.com/13846660/35082412-082a2e2a-fc5d-11e7-9deb-5b02ea6c1680.png)\n\n```sh\n[[local|localrc]]\n# NIC information of Ubuntu on the Virtualbox\n# devstack@devstack-VirtualBox:~$ ifconfig\n# enp0s3    Link encap:Ethernet  HWaddr 08:00:27:2f:07:ee  \n#           inet addr:192.168.0.168  Bcast:192.168.0.255  Mask:255.255.255.0\n# enp0s8    Link encap:Ethernet  HWaddr 08:00:27:a2:d6:dd  \n#          inet addr:10.0.3.15  Bcast:10.0.3.255  Mask:255.255.255.0\n# lo        Link encap:Local Loopback  \n#          inet addr:127.0.0.1  Mask:255.0.0.0\n\n# Host pc subnet, Bridged Interface\nHOST_IP=192.168.0.168 \n\n# NAT Interface\nFLOATING_RANGE=10.0.3.0/24\n\n#Internal Network range in the VM \nFIXED_RANGE=192.168.1.0/24\n\n#Subnet mask 24 equals 256\nFIXED_NETWORK_SIZE=256\n\n# NAT Interface\nFLAT_INTERFACE=enp0s8 \n```\n\n- Turnoff the nova (Optional) \u003cbr\u003e\n\nhttps://wiki.openstack.org/wiki/NeutronDevstack \u003cbr\u003e\n neutron //support complex level network management \u003cbr\u003e\n nova //simple network management \u003cbr\u003e\n\n```sh\n[[local|localrc]]\ndisable_service n-net\nenable_service q-svc\nenable_service q-agt\nenable_service q-dhcp\nenable_service q-l3\nenable_service q-meta\n\n# Optional, to enable tempest configuration as part of devstack\nenable_service tempest\n\n# For Tempest\nAPI_RATE_LIMIT=False \n```\n\n12) run shell script\n```sh\n./stack.sh \u003e setup_log_stack.log\n```\n\n13) login dashboard\n```sh\nhttp://192.168.0.168/dashboard\n```\nor\n```sh\nhttp://127.0.0.1/dashboard\n```\n\n14) setting for CLI command (openstack compute (nova) “error”)\n\u003e download openrc file from WEB UI\n\n```sh\ncd devstack\nsource [project_name]-openrc.sh [user_id]\nex) \u003e\u003esource alt-demo-openrc.sh admin\n```\n\n15) *** ***Don't reboot devstack*** ***\n\u003e After every reboot you need to run ./stack.sh.\n\n# complete message\n```sh\n=========================\nDevStack Component Timing\n (times are in seconds)  \n=========================\nrun_process          156\ntest_with_retry       13\napt-get-update        57\npip_install          937\nosc                  691\nwait_for_service     153\ngit_timed            324\ndbsync               145\napt-get              310\n-------------------------\nUnaccounted time     2105\n=========================\nTotal runtime        4891\n\nThis is your host IP address: 192.168.0.168\nThis is your host IPv6 address: ::1\nHorizon is now available at http://192.168.0.168/dashboard\nKeystone is serving at http://192.168.0.168/identity/\nThe default users are: admin and demo\nThe password: a\n\nWARNING: \nUsing lib/neutron-legacy is deprecated, and it will be removed in the future\n\nServices are running under systemd unit files.\nFor more information see: \nhttps://docs.openstack.org/devstack/latest/systemd.html\n\nDevStack Version: queens\nChange: c5c7d8f37eff14f2943c88cbce3c835b14237507 Merge \"Switch to consolidated fetch-subunit-output role\" 2018-01-17 20:31:33 +0000\nOS Version: Ubuntu 16.04 xenial\n```\n\n# Remove DevStack and dependancies\n\n```sh\n./clean.sh \nrm -rf /opt/stack\nrm -rf /usr/local/bin \n```\n\n# Tip\n\n1) change mode in Ubuntu\n\u003e ctrl + alt + f1 : cmd mode \u003cbr\u003e\n\u003e ctrl + alt + f7 : gui mode\n\n2) setting for fixed ip\n```sh\nsudo vi /etc/network/interfaces\n```\n\n- The primary network interface\n```sh\nauto enp0s3\niface enp0s3 inet static\n  address 192.168.0.19\n  netmask 255.255.255.0\n  gateway 192.168.0.1\n  dns-nameservers 8.8.8.8\n```\n- restart NIC\n```sh\nsudo ip addr flush dev enp0s3\nsudo ifdown enp0s3\nsudo ifup enp0s3\n```\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003cstrong\u003eor\u003c/strong\u003e \n```sh\nsudo systemctl restart networking\n```\n3) Vi Editor\n- input mode\n```sh\ni on cursor\na after cursor\n```\n- delete\n```sh\ndelete one char\nx\n-delete line\ndd\n```\n- arrow key\n```sh\nh\nj\nk\nl\n```\n\n4) basic command\n```sh\nll\nls -l\nrm -r mydir\nrm -f sample.txt //delete file without asking. 確認なしで削除する場合。\nmv /home/user/oldname /home/user/newname\ncp -rp /home/user/oldname /home/user/newname\n  =\u003e r: recursive / p: keep properties\nifconfig\ncd \npwd\nchmod 777 mydir\nmkdir myfolder\ndf -h  =\u003e disk usages\n\n# remove repository\nsudo add-apt-repository -r ppa:\u003cppa to remove\u003e\n\n# recursive mkdir : \nmkdir -p /opt/stack/logs\n```\n\n5) network command\n```sh\nnmcli dev status\nnmcli dev show enp0s8 =\u003e check for gateway\nifconfig\n```\n\n6) find as a file name\n```sh\nfind . -name \"foo*\"\n```\n7) scroll in cli\n```sh\nls -l | more\n```\n\n8) Q: Virtualbox shared folder permissions? \u003cbr\u003e\nA: Try this (on the guest machine. i.e. the OS running in the Virtual box): \u003cbr\u003e\n```sh\n sudo adduser your-user vboxsf\n```\nNow reboot the OS running in the virtual box.\n\n9) Lightweight Browser Midori \u003cbr\u003e\nOpen terminal by pressing Ctrl+Alt+T and run the following commands, \u003cbr\u003e\n```sh\nsudo apt-add-repository ppa:midori/ppa\nsudo apt-get update\nsudo apt-get install midori\n```\nor\n```sh\nsudo apt-get -f install\nsudo dpkg -i midori-xxx.deb\n```\nor launch midori-xxx.deb on the gui\n\n\n# Sample Topology Configuration in Openstack\n```sh\n1) add 2 private network\n Network \u003e\u003e Create subnet \u003e\u003e Subnet Name: private1_subnet \u003e\u003e Network Address Source :: Enter Network Address manually \u003e\u003e Network Address :: 10.0.0.0/24 \u003e\u003e IP Version :: IPv4 \u003e\u003e Enable DHCP\n Network \u003e\u003e Create subnet \u003e\u003e Subnet Name: private2_subnet \u003e\u003e Network Address Source :: Enter Network Address manually \u003e\u003e Network Address :: 10.0.1.0/24 \u003e\u003e IP Version :: IPv4 \u003e\u003e Enable DHCP\n\n2) add 2 router\n Network \u003e\u003e Create rouer \u003e\u003e Router Name: router1 \u003e\u003e External Network: public\n Network \u003e\u003e Create rouer \u003e\u003e Router Name: router2 \u003e\u003e External Network: public\n\n3) add security group\n Network \u003e\u003e Security Groups \u003e\u003e default \u003e\u003e Manage Rules \u003e\u003e Rule : All ICMP \n Network \u003e\u003e Security Groups \u003e\u003e Add Rule \u003e\u003e Rule : SSH\n\n4) Set a Floating IP Pool\n Login to admin account\n Network \u003e\u003e Floating IPs \u003e\u003e Allocate IP to Project \u003e\u003e Pool : public \u003e\u003e Allocate IP \n\n5) Create Instance \u0026 Allocate Floating IP to Instance\n Compute \u003e\u003e Instances \u003e\u003e Launch Instance \u003e\u003e Instance Name: demo1 / cirros-0.3.5-x86_64-disk / m1.tiny / private_1 or private_2 \u003e\u003e Actions : Associate Floating IP\n\n6) Connect Instance from SSH\n For Japanese Layout Keyboard, Need to change Keyboard Layout to EN\n  1)Windows Control Panel \u003e\u003e Add Keyboard \u003e\u003e English(US) \n  2)Compute \u003e\u003e Instance \u003e\u003e select demo1 \u003e\u003e Console\n  3)demo1 login: cirros / Password: cubswin:) \n  4)Change Keyboard Layout to EN =\u003e For Input : Shift + ; / For Input ) Shift + 0  \n```\n\n\n# Intergration with Quali CloudShell\n[Openstack Guide][df1] Add OpenStack Cloud Provider Resource\n\nFirst Register Cloud controller and then Add App which wants to add.\n\n1) Portal \u003e\u003e Inventory \u003e\u003e Add New \u003e\u003e Select Shell \u003e\u003e Openstack\n```sh\nController URL: http://192.168.0.168/identity/v3 \nOpenStack Domain Name: default\nOpenStack Project Name: demo\nOpenStack Management Network ID: fdda07aa-6ff4-4d3a-92bf-b7190336362e (shared, not external, id not subnet id)\nOpenStack Reserved Networks : skip setting\nVLAN Type: VXLAN\nFloating IP Subnet ID: 26f3523c-92c4-4fc4-ac3e-c53c3e090240 (subnet id using in openstack dashboard \u003e\u003e network \u003e\u003e floating ips)\n```\n\n2) Managing Apps (Add Apps), maybe public or private's subnet id \u003cbr\u003e\n  Portal \u003e\u003e Manage \u003e\u003e Apps \u003e\u003e Add \u003e\u003e Openstack Deploy From Glance Image \u003e\u003e Create\n```sh\n http://help.quali.com/Online%20Help/8.1.0.4291/Rm/Content/CSP/MNG/Mng-Apps.htm#Adding\n \n DEPLOYMENT\n  CLOUD PROVIDER: select one from drop-down list\n  IMAGE ID: Select one from Openstack dashboard \u003e\u003e Project \u003e\u003e compute \u003e\u003e Images\n  INSTANCE FLAVOR: m1.tiny \n  ADD FLOATING IP: True or False =\u003e I choose False. It can choose on the openstack.\n  FLOATING IP SUBNET ID: 26f3523c-92c4-4fc4-ac3e-c53c3e090240\n```\n- OpenStack Configuration Requirements\n http://help.quali.com/Online%20Help/8.0.0.7229_CE/Content/Admn/OpenStack-Cnfg-Rqrs.htm\n```sh\n- Project Management Network\t\nA network needs to be created to store instances deployed by CloudShell Apps:\n\n1) Assign a subnet to the network.\n2) Make sure the network is not external. Every instance will have a network port on the management network.\n3) Set the network's shared flag to True. The network will be shared by instances.\n4) Make sure QualiX Server has a floating IP and is part of this network so that it can be accessed from external networks.\n ```\n- CloudShell \u003e\u003e Cloud Provider \u003e\u003e Floating IP Subnet ID \u0026 OpenStack Management Network ID\n\n![cloudshell_provider_mapping](https://user-images.githubusercontent.com/13846660/37954473-d957a622-31e0-11e8-81da-682570d9bae9.png)\n\n# Trouble Shooting\n```sh\n1) Set a Enviroment variable\n\u003e Download RC file from the Dashboard, And Run a [project_name]-openrc.sh\n\n2) Permission denied on the Root privilege\n bash -x demo-openrc.sh //this command is not working\n\n3) Missing value auth-url required for auth plugin password\n source demo-openrc.sh\n \n# Setup endpoint URL (not necessary)\n\ncat /etc/keystone/keystone.conf\n- admin_endpoint = http://192.168.0.157/identity\n```\n\n# the difference between NAT / Bridged / Host-Only networking?\n```sh\n=\u003e https://superuser.com/questions/227505/what-is-the-difference-between-nat-bridged-host-only-networking\n   Host-Only: The VM will be assigned one IP, but it's only accessible by the box VM is running on. No other computers can access it.\n   NAT: Just like your home network with a wireless router, the VM will be assigned in a separate subnet, like 192.168.6.1 is your host computer, and VM is 192.168.6.3, then your VM can access outside network like your host, but no outside access to your VM directly, it's protected.\n   Bridged: Your VM will be in the same network as your host, if your host IP is 172.16.120.45 then your VM will be like 172.16.120.50. It can be accessed by all computers in your host network.\n\n=\u003e https://serverfault.com/questions/490043/differences-between-bridged-and-nat-networking\n   Bridged connections are just that, essentially a virtual switch is connected between the VM and your physical network connection.\n   NAT'd connections are also just that, instead of a switch a NAT router is between the VM and your physical network connection.  \n```\n\n# What IP address starts with 10?\n```sh\n=\u003e The Internet Assigned Numbers Authority (IANA) has reserved thefollowing three blocks of the IP address space for private internets:\n\n10.0.0.0 - 10.255.255.255 (10/8 prefix)\n172.16.0.0 - 172.31.255.255 (172.16/12 prefix)\n192.168.0.0 - 192.168.255.255 (192.168/16 prefix)\n```\n\n[df1]: \u003chttp://help.quali.com/Online%20Help/8.1.0.4291/Rm/Content/Admn/OpenStack-Cld-Prvdr-Rsc.htm\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkimtth%2Fopenstack-dev-cloudshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkimtth%2Fopenstack-dev-cloudshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkimtth%2Fopenstack-dev-cloudshell/lists"}