DevStack Notes
- What's in your simple DevStack setup? Note:
./stack.sh
takes me about 25 minutes.
$ git clone https://git.openstack.org/openstack-dev/devstack
$ cd devstack
$ cat local.conf
[local](/dianaclarke/openstack-notes/wiki/localrc)
DEST=/opt/stack/
LOGDIR=$DEST/logs
LOGFILE=$LOGDIR/stack.sh.log
RABBIT_PASSWORD=123456
MYSQL_PASSWORD=123456
SERVICE_TOKEN=123456
SERVICE_PASSWORD=123456
ADMIN_PASSWORD=123456
DATABASE_QUERY_LOGGING=True
[post-config](/dianaclarke/openstack-notes/wiki/$NOVA_CONF)
[database]
connection_debug=50
$ time ./stack.sh
$ . openrc admin demo
$ nova list
- A successful
./stack.sh
results in something like the following.
This is your host IP address: 192.168.122.97
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.122.97/dashboard
Keystone is serving at http://192.168.122.97:5000/
The default users are: admin and demo
The password: 123456
- Can I change
local.conf
values after running ./stack.sh
?
- Nope! You'll need to edit them in the resulting configuration files and then restart the relevant components via screen. For example, the nova conf can be found here:
$ cat /etc/nova/nova.conf
[DEFAULT]
flat_interface = ens3
flat_network_bridge = br100
vlan_interface = ens3
public_interface = br100
network_manager = nova.network.manager.FlatDHCPManager
firewall_driver = nova.virt.libvirt.firewall.IptablesFirewallDriver
compute_driver = libvirt.LibvirtDriver
default_ephemeral_format = ext4
dhcpbridge_flagfile = /etc/nova/nova-dhcpbridge.conf
graceful_shutdown_timeout = 5
metadata_workers = 2
osapi_compute_workers = 2
...
- How do I turn on database query logging in DevStack?
- This will log any queries taking longer than 0 seconds to the slow query log:
/var/log/mariadb/mariadb-slow.log
.
$ cat /home/diana/devstack/local.conf
[local](/dianaclarke/openstack-notes/wiki/localrc)
DATABASE_QUERY_LOGGING=True
...
- How do I turn on database query logging for Nova in DevStack?
- This will turn on SQLAlchemy logging in
/opt/stack/logs/
.
$ cat /home/diana/devstack/local.conf
...
[post-config](/dianaclarke/openstack-notes/wiki/$NOVA_CONF)
[database]
connection_debug=50
- How do I manually test a patch set? Answer: set
LIBS_FROM_GIT
, NOVA_REPO
, NOVA_BRANCH
, NOVACLIENT_BRANCH
, etc in local.conf
.
[local](/dianaclarke/openstack-notes/wiki/localrc)
DEST=/opt/stack/
LOGDIR=$DEST/logs
LOGFILE=$LOGDIR/stack.sh.log
RABBIT_PASSWORD=123456
MYSQL_PASSWORD=123456
SERVICE_TOKEN=123456
SERVICE_PASSWORD=123456
ADMIN_PASSWORD=123456
DATABASE_QUERY_LOGGING=True
LIBS_FROM_GIT=python-novaclient
NOVA_REPO=https://review.openstack.org/p/openstack/nova
NOVA_BRANCH=refs/changes/93/386093/3
NOVACLIENT_REPO=https://review.openstack.org/p/openstack/python-novaclient
NOVACLIENT_BRANCH=refs/changes/53/394653/4
[post-config](/dianaclarke/openstack-notes/wiki/$NOVA_CONF)
[database]
connection_debug=50
- How do I setup a DevStack at a specific release rather than master?
- Note that you'll probably need to use an older version of Fedora too.
$ git clone https://git.openstack.org/openstack-dev/devstack
$ cd devstack
$ git checkout stable/kilo
update local.conf
$ time ./stack.sh
$ . openrc admin demo
$ nova list
- What version of Fedora do I need for each stable release of DevStack?
- Here's what devstack's screen session looks like:
2016-04-19 09:21:46.576 INFO nova.metadata.wsgi.server [-] 10.0.0.2 "GET /latest/meta-data/local-hostname HTTP/1.0" status: 200 len: 158 time: 0.0010998
2016-04-19 09:21:46.577 DEBUG nova.api.metadata.handler [-] Using cached metadata for 10.0.0.2 from (pid=9135) get_metadata_by_remote_address /opt/stack/nova/nova/api/metadata/handler.py:85
2016-04-19 09:21:46.577 DEBUG nova.api.metadata.handler [-] Using cached metadata for 10.0.0.2 from (pid=9136) get_metadata_by_remote_address /opt/stack/nova/nova/api/metadata/handler.py:85
2016-04-19 09:21:46.578 INFO nova.metadata.wsgi.server [-] 10.0.0.2 "GET /latest/meta-data/local-hostname HTTP/1.0" status: 200 len: 158 time: 0.0008659
2016-04-19 09:21:46.579 DEBUG nova.api.metadata.handler [-] Using cached metadata for 10.0.0.2 from (pid=9136) get_metadata_by_remote_address /opt/stack/nova/nova/api/metadata/handler.py:85
2016-04-19 09:21:46.579 INFO nova.metadata.wsgi.server [-] 10.0.0.2 "GET /latest/meta-data/local-hostname HTTP/1.0" status: 200 len: 158 time: 0.0008540
2016-04-19 09:21:46.580 INFO nova.metadata.wsgi.server [-] 10.0.0.2 "GET /latest/meta-data/local-hostname HTTP/1.0" status: 200 len: 158 time: 0.0037520
2016-04-19 09:21:46.581 DEBUG nova.api.metadata.handler [-] Using cached metadata for 10.0.0.2 from (pid=9135) get_metadata_by_remote_address /opt/stack/nova/nova/api/metadata/handler.py:85
2016-04-19 09:21:46.582 INFO nova.metadata.wsgi.server [-] 10.0.0.2 "GET /latest/meta-data/local-hostname HTTP/1.0" status: 200 len: 158 time: 0.0012169
6$(L) n-api* 7$(L) n-cond 8$(L) n-net 9$(L) n-sch 10$(L) n-novnc 11$(L) n-
- How do you use the Nova client Python API to explore a running DevStack sandbox?
[diana@localhost ~]$ python
>>> from novaclient import client
>>> nova_client = client.Client('2.0', 'admin', '123456', 'admin', 'http://192.168.122.55:5000/v2.0')
>>> nova_client.flavors.list()
[
<Flavor: m1.tiny>,
<Flavor: m1.small>,
<Flavor: m1.medium>,
...
]
>>> nova_client = client.Client('2.40', username='admin', password='123456', project_name='admin', auth_url='http://192.168.122.132:5000/v2.0')
>>> nova_client.flavors.list()
[<Flavor: m1.tiny>, <Flavor: tempest-test_flavor-191144469>, <Flavor: m1.small>, <Flavor: m1.medium>, <Flavor: m1.large>, <Flavor: m1.nano>, <Flavor: m1.xlarge>, <Flavor: m1.micro>, <Flavor: cirros256>, <Flavor: ds512M>, <Flavor: ds1G>, <Flavor: ds2G>, <Flavor: ds4G>]
>>> nova_client = client.Client('2.40', username='admin', password='123456', project_id='21d99c25ed5d4e118cc22fa6b8b94e5d', auth_url='http://192.168.122.132:5000/v2.0')
>>> nova_client.flavors.list()
[<Flavor: m1.tiny>, <Flavor: tempest-test_flavor-191144469>, <Flavor: m1.small>, <Flavor: m1.medium>, <Flavor: m1.large>, <Flavor: m1.nano>, <Flavor: m1.xlarge>, <Flavor: m1.micro>, <Flavor: cirros256>, <Flavor: ds512M>, <Flavor: ds1G>, <Flavor: ds2G>, <Flavor: ds4G>]