DevStack

DevStack

DevStack is a series of extensible scripts used to quickly bring up a complete OpenStack environment based on the latest versions of everything from git master. It is used interactively as a development environment and as the basis for much of the OpenStack project’s functional testing. Homepage

xe1gyq@server:~$ sudo apt install git bridge-utils
xe1gyq@server:~$ sudo useradd -s /bin/bash -d /opt/stack -m stack
xe1gyq@server:~$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
xe1gyq@server:~$ sudo su - stack
stack@server:~$ git clone https://git.openstack.org/openstack-dev/devstack
Cloning into 'devstack'...
remote: Counting objects: 41006, done.
remote: Compressing objects: 100% (20359/20359), done.
remote: Total 41006 (delta 29114), reused 31408 (delta 20002)
Receiving objects: 100% (41006/41006), 8.32 MiB | 629.00 KiB/s, done.
Resolving deltas: 100% (29114/29114), done.
stack@server:~$ cd devstack/
stack@server:~/devstack$ ls
clean.sh     extras.d          HACKING.rst      Makefile    run_tests.sh  tests
data         files             inc              openrc      samples       tools
doc          functions         lib              pkg         setup.cfg     tox.ini
exerciserc   functions-common  LICENSE          playbooks   setup.py      unstack.sh
exercises    FUTURE.rst        local.conf       README.rst  stackrc
exercise.sh  gate              MAINTAINERS.rst  roles       stack.sh
stack@server:~/devstack$ nano local.conf
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
stack@server:~/devstack$ ./stack.sh

DevStack :: Succesful Run

=========================
DevStack Component Timing
 (times are in seconds)  
=========================
run_process           16
test_with_retry        2
apt-get-update       195
osc                  159
wait_for_service      16
git_timed            1357
dbsync                54
pip_install          616
apt-get              266
-------------------------
Unaccounted time     441
=========================
Total runtime        3122



This is your host IP address: 192.168.1.127
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.1.127/dashboard
Keystone is serving at http://192.168.1.127/identity/
The default users are: admin and demo
The password: devstack

WARNING: 
Using lib/neutron-legacy is deprecated, and it will be removed in the future


Services are running under systemd unit files.
For more information see: 
https://docs.openstack.org/devstack/latest/systemd.html

DevStack Version: queens
Change: 730ce45466a903c639554b2e70f6e40a02e9e29d Create NOVA_READY_TIMEOUT in is_nova_ready function 2018-02-23 16:52:23 -0500
OS Version: Ubuntu 17.10 artful

2018-02-24 22:26:29.052 | stack.sh completed in 3122 seconds.

DevStack :: Working Dashboard

API Access Service Service EndPoint

Block Storage     http://192.168.1.127/volume/
Compute     http://192.168.1.127/compute/v2.1
Compute_Legacy     http://192.168.1.127/compute/v2/42ec24a506d14f19aa9e8cccf89ff698
Identity     http://192.168.1.127/identity
Image     http://192.168.1.127/image
Network     http://192.168.1.127:9696/
Placement     http://192.168.1.127/placement
Volume     http://192.168.1.127/volume/v1/42ec24a506d14f19aa9e8cccf89ff698
Volumev2     http://192.168.1.127/volume/v2/42ec24a506d14f19aa9e8cccf89ff698
Volumev3     http://192.168.1.127/volume/v3/42ec24a506d14f19aa9e8cccf89ff698

DevStack :: Clonned Repositories

stack@server:~/devstack$ ls ..
bin     data      devstack.subunit  horizon   logs     nova   requirements
cinder  devstack  glance            keystone  neutron  noVNC  tempest
stack@server:~/devstack$

DevStack :: OpenRc

stack@server:~/devstack$ source openrc admin admin
WARNING: setting legacy OS_TENANT_NAME to support cli tools.
stack@server:~/devstack$

DevStack :: OpenStack Components

  • Keystone

  • Glance

  • Nova

  • Cinder

  • Neutron

  • Horizon

stack@server:~/devstack$ glance --version
2.9.1
stack@server:~/devstack$ nova --version
9.1.1
stack@server:~/devstack$ cinder --version
3.5.0
stack@server:~/devstack$ neutron --version
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
6.7.0

DevStack :: Opt Installation

stack@server:~$ cd /opt/stack/
stack@server:~$ ls
bin     data      devstack.subunit  horizon   logs     nova   requirements
cinder  devstack  glance            keystone  neutron  noVNC  tempest
stack@server:~$

DevStack :: SystemCtl

stack@server:~$ sudo systemctl status | grep devstack
              ├─11834 grep --color=auto devstack
             ├─system-devstack.slice
              ├─devstack@dstat.service
               ├─15593 /bin/bash /opt/stack/devstack/tools/dstat.sh /opt/stack/logs
              ├─devstack@n-api.service
              ├─devstack@n-novnc.service
              ├─devstack@etcd.service
              ├─devstack@g-reg.service
              ├─devstack@q-dhcp.service
              ├─devstack@q-l3.service
              ├─devstack@keystone.service
              ├─devstack@q-meta.service
              ├─devstack@c-sch.service
              ├─devstack@c-vol.service
              ├─devstack@n-cpu.service
              ├─devstack@placement-api.service
              ├─devstack@n-sch.service
              ├─devstack@q-agt.service
              ├─devstack@q-svc.service
              ├─devstack@n-cond-cell1.service
              ├─devstack@g-api.service
              ├─devstack@n-api-meta.service
              ├─devstack@c-api.service
              ├─devstack@n-super-cond.service
              └─devstack@n-cauth.service
stack@server:~$

DevStack :: SystemCtl

xe1gyq@server:~$ ifconfig
br-ex: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.24.4.1  netmask 255.255.255.0  broadcast 0.0.0.0
        inet6 fe80::34ab:3bff:fed8:554a  prefixlen 64  scopeid 0x20<link>
        inet6 2001:db8::2  prefixlen 64  scopeid 0x0<global>
        ether 36:ab:3b:d8:55:4a  txqueuelen 1000  (Ethernet)
        RX packets 32  bytes 2090 (2.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 93  bytes 11626 (11.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.127  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::56ee:75ff:fe2d:1df4  prefixlen 64  scopeid 0x20<link>
        ether 54:ee:75:2d:1d:f4  txqueuelen 1000  (Ethernet)
        RX packets 696589  bytes 1016574577 (1.0 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 412919  bytes 33444162 (33.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xf1600000-f1620000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 402940  bytes 188780888 (188.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 402940  bytes 188780888 (188.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

qbr3d975c95-ea: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 1e:28:15:95:48:73  txqueuelen 1000  (Ethernet)
        RX packets 32  bytes 3657 (3.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

qvb3d975c95-ea: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet6 fe80::1c28:15ff:fe95:4873  prefixlen 64  scopeid 0x20<link>
        ether 1e:28:15:95:48:73  txqueuelen 1000  (Ethernet)
        RX packets 25  bytes 3305 (3.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 29  bytes 3817 (3.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

qvo3d975c95-ea: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet6 fe80::7444:feff:fe12:7301  prefixlen 64  scopeid 0x20<link>
        ether 76:44:fe:12:73:01  txqueuelen 1000  (Ethernet)
        RX packets 29  bytes 3817 (3.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 25  bytes 3305 (3.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tap3d975c95-ea: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fc16:3eff:fef5:b316  prefixlen 64  scopeid 0x20<link>
        ether fe:16:3e:f5:b3:16  txqueuelen 1000  (Ethernet)
        RX packets 7  bytes 800 (800.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28  bytes 3680 (3.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:92:0d:0a  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp4s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether e8:b1:fc:08:6b:b4  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

xe1gyq@server:~$

DevStack :: OpenStack Command Line

stack@server:~/tempest$ openstack help
usage: openstack [--version] [-v | -q] [--log-file LOG_FILE] [-h] [--debug]
                 [--os-cloud <cloud-config-name>]
                 [--os-region-name <auth-region-name>]
                 [--os-cacert <ca-bundle-file>] [--os-cert <certificate-file>]
                 [--os-key <key-file>] [--verify | --insecure]
...
...
stack@server:~$ openstack server list

stack@server:~$
stack@server:~$ cat /etc/openstack/clouds.yaml 
clouds:
  devstack:
    auth:
      auth_url: http://192.168.1.127/identity
      password: devstack
      project_domain_id: default
      project_name: demo
      user_domain_id: default
      username: demo
    identity_api_version: '3'
    region_name: RegionOne
    volume_api_version: '2'
  devstack-admin:
    auth:
      auth_url: http://192.168.1.127/identity
      password: devstack
      project_domain_id: default
      project_name: admin
      user_domain_id: default
      username: admin
    identity_api_version: '3'
    region_name: RegionOne
    volume_api_version: '2'
  devstack-alt:
    auth:
      auth_url: http://192.168.1.127/identity
      password: devstack
      project_domain_id: default
      project_name: alt_demo
      user_domain_id: default
      username: alt_demo
    identity_api_version: '3'
    region_name: RegionOne
    volume_api_version: '2'
stack@server:~$

DevStack :: OpenStackClient :: Image

stack@server:~/devstack$ openstack image list
+--------------------------------------+--------------------------+--------+
| ID                                   | Name                     | Status |
+--------------------------------------+--------------------------+--------+
| aac2d54d-275b-4b21-9ee7-33313a6dbc9d | cirros-0.3.5-x86_64-disk | active |
+--------------------------------------+--------------------------+--------+
stack@server:~/devstack$ openstack image show aac2d54d-275b-4b21-9ee7-33313a6dbc9d
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | f8ab98ff5e73ebab884d80c9dc9c7290                     |
| container_format | bare                                                 |
| created_at       | 2018-02-24T22:23:17Z                                 |
| disk_format      | qcow2                                                |
| file             | /v2/images/aac2d54d-275b-4b21-9ee7-33313a6dbc9d/file |
| id               | aac2d54d-275b-4b21-9ee7-33313a6dbc9d                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | cirros-0.3.5-x86_64-disk                             |
| owner            | 42ec24a506d14f19aa9e8cccf89ff698                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 13267968                                             |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2018-02-24T22:23:17Z                                 |
| virtual_size     | None                                                 |
| visibility       | public                                               |
+------------------+------------------------------------------------------+
stack@server:~/devstack$

DevStack :: OpenStackClient :: Compute

stack@server:~/devstack$ openstack compute service list
+----+------------------+--------+----------+---------+-------+----------------------------+
| ID | Binary           | Host   | Zone     | Status  | State | Updated At                 |
+----+------------------+--------+----------+---------+-------+----------------------------+
|  3 | nova-scheduler   | server | internal | enabled | up    | 2018-02-24T23:58:43.000000 |
|  5 | nova-consoleauth | server | internal | enabled | up    | 2018-02-24T23:58:47.000000 |
|  6 | nova-conductor   | server | internal | enabled | up    | 2018-02-24T23:58:48.000000 |
|  1 | nova-conductor   | server | internal | enabled | up    | 2018-02-24T23:58:47.000000 |
|  2 | nova-compute     | server | nova     | enabled | up    | 2018-02-24T23:58:41.000000 |
+----+------------------+--------+----------+---------+-------+----------------------------+
stack@server:~/devstack$

DevStack :: OpenStackClient :: Flavor

stack@server:~/devstack$ openstack flavor list
+----+-----------+-------+------+-----------+-------+-----------+
| ID | Name      |   RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+-------+------+-----------+-------+-----------+
| 1  | m1.tiny   |   512 |    1 |         0 |     1 | True      |
| 2  | m1.small  |  2048 |   20 |         0 |     1 | True      |
| 3  | m1.medium |  4096 |   40 |         0 |     2 | True      |
| 4  | m1.large  |  8192 |   80 |         0 |     4 | True      |
| 42 | m1.nano   |    64 |    0 |         0 |     1 | True      |
| 5  | m1.xlarge | 16384 |  160 |         0 |     8 | True      |
| 84 | m1.micro  |   128 |    0 |         0 |     1 | True      |
| c1 | cirros256 |   256 |    0 |         0 |     1 | True      |
| d1 | ds512M    |   512 |    5 |         0 |     1 | True      |
| d2 | ds1G      |  1024 |   10 |         0 |     1 | True      |
| d3 | ds2G      |  2048 |   10 |         0 |     2 | True      |
| d4 | ds4G      |  4096 |   20 |         0 |     4 | True      |
+----+-----------+-------+------+-----------+-------+-----------+
stack@server:~/devstack$

Last updated