Skip to content

Instantly share code, notes, and snippets.

@max-lobur
Last active January 2, 2021 23:44
Show Gist options
  • Save max-lobur/7179af5dcd47b20ffd05 to your computer and use it in GitHub Desktop.
Save max-lobur/7179af5dcd47b20ffd05 to your computer and use it in GitHub Desktop.
devstack tweaks
. ~/devstack/openrc admin demo
for id in $(glance image-list | grep cirros | cut -d'|' -f2); do glance image-delete id; done
wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-i386-disk.img
glance image-create --name cirros --disk-format qcow2 --container-format bare --file cirros-0.3.4-i386-disk.img --is-public=True --progress
[[post-config|$NOVA_CONF]]
[DEFAULT]
remove_unused_base_images = True
mage_cache_manager_interval = 0
novncproxy_base_url = http://<IP>:6080/vnc_auto.html
[[local|localrc]]
KEYSTONE_USE_MOD_WSGI="False"
#RECLONE=yes # For subsequent Devstack rebuilds
HOST_IP=<IP>
# Enable Neutron
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
disable_service tempest
enable_service n-api-meta
enable_service n-novnc
enable_service heat h-api h-api-cfn h-api-cw h-eng
enable_service ceilometer-acompute ceilometer-acentral ceilometer-collector ceilometer-api
enable_service cinder c-api c-vol c-sch c-bak
#enable_service s-proxy s-object s-container s-account
# You can replace password with your own one.
ADMIN_PASSWORD=111
MYSQL_PASSWORD=111
RABBIT_PASSWORD=111
SERVICE_PASSWORD=111
SERVICE_TOKEN=111
# Swift Configuration
#SWIFT_REPLICAS=1
#SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
# Enable Logging
LOGFILE=/opt/stack/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=/opt/stack/logs
sessionname stack
hardstatus alwayslastline '%{= .} %-Lw%{= .}%> %n%f %t*%{= .}%+Lw%< %-=%{g}(%{d}%H/%l%{g})'
setenv PROMPT_COMMAND /bin/true
screen -t shell bash
screen -t key bash
"tuff "/opt/stack/keystone/bin/keystone-all --config-file /etc/keystone/keystone.conf --debug
logfile /opt/stack/logs/screen-key.2015-04-03-114749.log
log on
screen -t horizon bash
"tuff "cd /opt/stack/horizon && python manage.py runserver 0.0.0.0:8888
logfile /opt/stack/logs/screen-horizon.2015-04-03-114749.log
log on
screen -t s-proxy bash
"tuff "/opt/stack/swift/bin/swift-proxy-server /etc/swift/proxy-server.conf -v
logfile /opt/stack/logs/screen-s-proxy.2015-04-03-114749.log
log on
screen -t s-object bash
"tuff "/opt/stack/swift/bin/swift-object-server /etc/swift/object-server/1.conf -v
logfile /opt/stack/logs/screen-s-object.2015-04-03-114749.log
log on
screen -t s-container bash
"tuff "/opt/stack/swift/bin/swift-container-server /etc/swift/container-server/1.conf -v
logfile /opt/stack/logs/screen-s-container.2015-04-03-114749.log
log on
screen -t s-account bash
"tuff "/opt/stack/swift/bin/swift-account-server /etc/swift/account-server/1.conf -v
logfile /opt/stack/logs/screen-s-account.2015-04-03-114749.log
log on
screen -t g-reg bash
"tuff "/usr/local/bin/glance-registry --config-file=/etc/glance/glance-registry.conf
logfile /opt/stack/logs/screen-g-reg.2015-04-03-114749.log
log on
screen -t g-api bash
"tuff "/usr/local/bin/glance-api --config-file=/etc/glance/glance-api.conf
logfile /opt/stack/logs/screen-g-api.2015-04-03-114749.log
log on
screen -t n-api bash
"tuff "/usr/local/bin/nova-api
logfile /opt/stack/logs/screen-n-api.2015-04-03-114749.log
log on
screen -t q-svc bash
"tuff "python /usr/local/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
logfile /opt/stack/logs/screen-q-svc.2015-04-03-114749.log
log on
screen -t q-agt bash
"tuff "python /usr/local/bin/neutron-openvswitch-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
logfile /opt/stack/logs/screen-q-agt.2015-04-03-114749.log
log on
screen -t q-dhcp bash
"tuff "python /usr/local/bin/neutron-dhcp-agent --config-file /etc/neutron/neutron.conf --config-file=/etc/neutron/dhcp_agent.ini
logfile /opt/stack/logs/screen-q-dhcp.2015-04-03-114749.log
log on
screen -t q-l3 bash
"tuff "python /usr/local/bin/neutron-l3-agent --config-file /etc/neutron/neutron.conf --config-file=/etc/neutron/l3_agent.ini
logfile /opt/stack/logs/screen-q-l3.2015-04-03-114749.log
log on
screen -t q-meta bash
"tuff "python /usr/local/bin/neutron-metadata-agent --config-file /etc/neutron/neutron.conf --config-file=/etc/neutron/metadata_agent.ini
logfile /opt/stack/logs/screen-q-meta.2015-04-03-114749.log
log on
screen -t q-metering bash
"tuff "python /usr/local/bin/neutron-metering-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/services/metering/metering_agent.ini
logfile /opt/stack/logs/screen-q-metering.2015-04-03-114749.log
log on
screen -t n-cpu bash
"tuff "/usr/local/bin/nova-compute --config-file /etc/nova/nova.conf
logfile /opt/stack/logs/screen-n-cpu.2015-04-03-114749.log
log on
screen -t n-cond bash
"tuff "/usr/local/bin/nova-conductor --config-file /etc/nova/nova.conf
logfile /opt/stack/logs/screen-n-cond.2015-04-03-114749.log
log on
screen -t n-crt bash
"tuff "/usr/local/bin/nova-cert --config-file /etc/nova/nova.conf
logfile /opt/stack/logs/screen-n-crt.2015-04-03-114749.log
log on
screen -t n-sch bash
"tuff "/usr/local/bin/nova-scheduler --config-file /etc/nova/nova.conf
logfile /opt/stack/logs/screen-n-sch.2015-04-03-114749.log
log on
screen -t n-novnc bash
"tuff "/usr/local/bin/nova-novncproxy --config-file /etc/nova/nova.conf --web /opt/stack/noVNC
logfile /opt/stack/logs/screen-n-novnc.2015-04-03-114749.log
log on
screen -t n-xvnc bash
"tuff "/usr/local/bin/nova-xvpvncproxy --config-file /etc/nova/nova.conf
logfile /opt/stack/logs/screen-n-xvnc.2015-04-03-114749.log
log on
screen -t n-cauth bash
"tuff "/usr/local/bin/nova-consoleauth --config-file /etc/nova/nova.conf
logfile /opt/stack/logs/screen-n-cauth.2015-04-03-114749.log
log on
ADD N_API_META
screen -t n-obj bash
"tuff "/usr/local/bin/nova-objectstore --config-file /etc/nova/nova.conf
logfile /opt/stack/logs/screen-n-obj.2015-04-03-114749.log
log on
screen -t c-api bash
"tuff "/usr/local/bin/cinder-api --config-file /etc/cinder/cinder.conf
logfile /opt/stack/logs/screen-c-api.2015-04-03-114749.log
log on
screen -t c-sch bash
"tuff "/usr/local/bin/cinder-scheduler --config-file /etc/cinder/cinder.conf
logfile /opt/stack/logs/screen-c-sch.2015-04-03-114749.log
log on
screen -t c-vol bash
"tuff "/usr/local/bin/cinder-volume --config-file /etc/cinder/cinder.conf
logfile /opt/stack/logs/screen-c-vol.2015-04-03-114749.log
log on
screen -t ceilometer-acentral bash
"tuff "ceilometer-agent-central --config-file /etc/ceilometer/ceilometer.conf
logfile /opt/stack/logs/screen-ceilometer-acentral.2015-04-03-114749.log
log on
screen -t ceilometer-collector bash
"tuff "ceilometer-collector --config-file /etc/ceilometer/ceilometer.conf
logfile /opt/stack/logs/screen-ceilometer-collector.2015-04-03-114749.log
log on
screen -t ceilometer-api bash
"tuff "ceilometer-api -d -v --log-dir=/var/log/ceilometer-api --config-file /etc/ceilometer/ceilometer.conf
logfile /opt/stack/logs/screen-ceilometer-api.2015-04-03-114749.log
log on
screen -t ceilometer-acompute bash
"tuff "ceilometer-agent-compute --config-file /etc/ceilometer/ceilometer.conf
logfile /opt/stack/logs/screen-ceilometer-acompute.2015-04-03-114749.log
log on
screen -t h-eng bash
"tuff "/opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf
logfile /opt/stack/logs/screen-h-eng.2015-04-03-114749.log
log on
screen -t h-api bash
"tuff "/opt/stack/heat/bin/heat-api --config-file=/etc/heat/heat.conf
logfile /opt/stack/logs/screen-h-api.2015-04-03-114749.log
log on
screen -t h-api-cfn bash
"tuff "/opt/stack/heat/bin/heat-api-cfn --config-file=/etc/heat/heat.conf
logfile /opt/stack/logs/screen-h-api-cfn.2015-04-03-114749.log
log on
screen -t h-api-cw bash
"tuff "/opt/stack/heat/bin/heat-api-cloudwatch --config-file=/etc/heat/heat.conf
logfile /opt/stack/logs/screen-h-api-cw.2015-04-03-114749.log
log on
#script /dev/null
sudo ovs-vsctl add-br br-int
sudo ovs-vsctl add-br br-ex
sudo service mysqld start
sudo service rabbitmq-server start
sudo service apache2 start
#http://docs.openstack.org/grizzly/openstack-block-storage/admin/content/cinder-install.html
sudo service tgt restart
touch /opt/stack/data/stack-volumes-lvmdriver-1-backing-file
sudo dd if=/dev/zero of=stack-volumes-lvmdriver-1 bs=1 count=0 seek=3G
sudo losetup /dev/loop2 stack-volumes-lvmdriver-1
sudo pvcreate /dev/loop2
sudo vgcreate stack-volumes-lvmdriver-1 /dev/loop2
sudo pvscan
cd ~/devstack
./rejoin-stack.sh
exit 0
# IRONIC SPECIFIC
sleep 10 # Wait for Neutron
BRIDGE_NAME=brbm
(sudo ovs-vsctl list-br | grep ${BRIDGE_NAME}$) || sudo ovs-vsctl add-br ${BRIDGE_NAME}
. openrc admin demo
ironic_net_id=$(neutron net-list | grep private | get_field 1)
IRONIC_VM_NETWORK_BRIDGE=$BRIDGE_NAME
tapdev=$(sudo ip netns exec qdhcp-${ironic_net_id} ip link list | grep " tap" | cut -d':' -f2 | cut -b2-)
tag_id=$(sudo ovs-vsctl show |grep ${tapdev} -A1 -m1 | grep tag | cut -d':' -f2 | cut -b2-)
# make sure veth pair is not existing, otherwise delete its links
sudo ip link show ovs-tap1 && sudo ip link delete ovs-tap1
sudo ip link show brbm-tap1 && sudo ip link delete brbm-tap1
# create veth pair for future interconnection between br-int and brbm
sudo ip link add brbm-tap1 type veth peer name ovs-tap1
sudo ip link set dev brbm-tap1 up
sudo ip link set dev ovs-tap1 up
sudo ovs-vsctl -- --if-exists del-port ovs-tap1 -- add-port br-int ovs-tap1 tag=$tag_id
sudo ovs-vsctl -- --if-exists del-port brbm-tap1 -- add-port $IRONIC_VM_NETWORK_BRIDGE brbm-tap1
IRONIC_SERVICE_PORT=6385
SWIFT_DEFAULT_BIND_PORT=8080
HOST_IP=10.211.55.5 # Your IP
# enable tftp natting for allowing connections to HOST_IP's tftp server
sudo modprobe nf_conntrack_tftp
sudo modprobe nf_nat_tftp
# nodes boot from TFTP and callback to the API server listening on $HOST_IP
sudo iptables -I INPUT -d $HOST_IP -p udp --dport 69 -j ACCEPT || true
sudo iptables -I INPUT -d $HOST_IP -p tcp --dport $IRONIC_SERVICE_PORT -j ACCEPT || true
# agent ramdisk gets instance image from swift
sudo iptables -I INPUT -d $HOST_IP -p tcp --dport ${SWIFT_DEFAULT_BIND_PORT:-8080} -j ACCEPT || true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment