Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
# this can be used for non-ovn i.e ml2/ovs based deployment as well.
curl -o rhos-release-latest.noarch.rpm
yum install -y rhos-release-latest.noarch.rpm
rhos-release --help
rhos-release 13-director -p passed_phase2
yum update -y; reboot
yum install tmux -y
tmux new -s osp
useradd stack
passwd stack
echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack
chmod 0440 /etc/sudoers.d/stack
su - stack
mkdir ~/images
mkdir ~/templates
# update hostname in /etc/hosts and /etc/hostname
sudo yum install -y python-tripleoclient
cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf
# update local_interface and ntp servers in undercloud.conf
# local_interface = em2
# undercloud_ntp_servers =
openstack undercloud install
source ~/stackrc
sudo yum install rhosp-director-images rhosp-director-images-ipa
cd ~/images
for i in /usr/share/rhosp-director-images/overcloud-full-latest-13.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-13.0.tar; do tar -xvf $i; done
openstack overcloud image upload --image-path /home/stack/images/
openstack image list
cat /etc/resolv.conf
openstack subnet list
openstack subnet set --dns-nameserver --dns-nameserver --dns-nameserver aa3c59e3-7239-4696-bb41-1fcda1de777b
vi ~/instackenv.json
openstack overcloud node import ~/instackenv.json
openstack overcloud node introspect --all-manageable --provide
# note while preparing nic-configs/controller.yaml and compute.yaml. In osp14 we have new ExternalInterfaceDefaultRoute paramters
# also change get_file to complete path in osp14 like below in these files
# get_file: /usr/share/openstack-tripleo-heat-templates/network/scripts/
# prepare network-environment.yaml templates/nic-configs/controller.yaml compute.yaml
# Before below command add to /etc/sysconfig/docker
cat /etc/sysconfig/docker
#INSECURE_REGISTRY='--insecure-registry --insecure-registry --insecure-registry --insecure-registry --insecure-registry'
# otherwise will get this error - "docker pull failed: Get http: server gave HTTP response to HTTPS client" for 'openstack tripleo container image prepare' command
sudo systemctl restart docker
Use these nic configs
# for non ovn based deployments i.e ml2/ovs, remove neutron-ovn-ha.yaml from "openstack overcloud container image prepare" and "openstack overcloud deploy" commands
openstack overcloud container image prepare \
--environment-file=/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-dvr-ha.yaml \ \
--push-destination= \
--prefix=openstack- \
--tag=latest \
--output-env-file=/home/stack/templates/overcloud_images.yaml \
--output-images-file /home/stack/local_registry_images.yaml
sudo openstack overcloud container image upload --config-file /home/stack/local_registry_images.yaml --verbose
ip a a brd dev em3 <i.e interface which is added to br-ex in nic-configs controller.yml>
# note: if above ip is not set then below deployment will fail at ping validations
# most of the time above non-vlan based address add is sufficient. But some times when external network is valn based( external network shares interface with internal/tenant/stroage/storagemgmt/ctlplane network using vlans in nic-configs i.e external network is configured with vlans, then you need to add vlan interface on undercloud like below 3 steps).
# ovs-vsctl add-port br-ctlplane vlan10 tag=10 -- set interface vlan10 type=internal
# ip a a brd dev vlan10
# ip l set vlan10 up
# don't try adding tap interface and then adding this tap to br-ctlpane with vlan tag, that doesn't work.
# non ovs based
# sudo ip link add link em1 name em1.10 type vlan id 10
# sudo ip link set dev em1.10 up
# sudo ip a a brd dev em1.10
cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack
vi /home/stack/roles_data.yaml
# And add below External network related stuff to compute role ( this is needed for dvr ha)
- name: Compute
description: |
Basic Compute Node role
- External
default_route_networks: ['External']
openstack overcloud deploy --templates -r /home/stack/roles_data.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e /home/stack/nic-configs/network-environment.yaml -e /home/stack/templates/overcloud_images.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/disable-telemetry.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-dvr-ha.yaml --control-scale 3 --compute-scale 3 --ntp-server 2>&1 | tee deploy_ovn_dvr_ha1.log
ml2/ovs dvr
(undercloud) [stack@f27-h32-000-r630 ~]$ cat
openstack overcloud container image prepare \
--environment-file=/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs-dvr.yaml \ \
--push-destination= \
--prefix=openstack- \
--tag=latest \
--output-env-file=/home/stack/templates/overcloud_images.yaml \
--output-images-file /home/stack/local_registry_images.yaml
sudo openstack overcloud container image upload --config-file /home/stack/local_registry_images.yaml --verbose
openstack overcloud deploy --templates -r /home/stack/roles_data.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e /home/stack/nic-configs/network-environment.yaml -e /home/stack/templates/overcloud_images.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/disable-telemetry.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs-dvr.yaml --control-scale 3 --compute-scale 3 --ntp-server 2>&1 | tee deploy_ovs_dvr_ha1.log
# creating external network
openstack network create --external --default --provider-network-type flat --provider-physical-network datacentre --share external
neutron subnet-create --gateway --allocation-pool start=,end= --disable-dhcp external
# openstack network create --external --default --provider-network-type vlan --provider-segment 10 --provider-physical-network datacentre --share external
git clone
cd browbeat/ansible
./ -l
edit ansible/install/group_vars/all.yml
dns_server: (take first entry from undercloud /etc/resolv.conf)
collectd_compute: true
iostat_controller_collectd_plugin: true
rabbitmq_controller_collectd_plugin: true
graphite_prefix: ovn_dvr_osp13_2_11
grafana_password: 100yard-
grafana_apikey: eyJrIjoiSVpNMkZxb2pVMFlYbk1BNno3enhhRWxwbmN2YkhYWloiLCJuIjoic2FpLWFkbWluIiwiaWQiOjF9
ansible-playbook -i hosts install/browbeat.yml
ansible-playbook -i hosts install/collectd-openstack.yml
Edit browbeat-config.yaml
cloud_name: ovn_osp13_2_11
enabled: true
#rally in debug mode
vi ./.rally-venv/etc/rally/rally.conf
debug = true
flush arp cache in undercloud
arp -na
ip -s -s neigh flush all
cat ./.rally-venv/lib/python2.7/site-packages/rally_openstack/cfg/
cat ./.rally-venv/lib/python2.7/site-packages/rally_openstack/cfg/
change vm_ping_timeout to 240 secs
#open new tmux window and take tcpdump
sudo tcpdump -vvv -n -e -i em4 arp or icmp -w ping500vms.pcap
on each node,
ovs-vsctl set open . external_ids:ovn-openflow-probe-interval=180
ovs-vsctl set open . external_ids:ovn-remote-probe-interval=180000
cd ~/browbeat
source .browbeat-venv/bin/activate
./ -s <neutron.yaml> rally --debug
Deleting overcloud to rerun "overcloud deploy" command
openstack stack delete overcloud -y --wait
swift delete overcloud
source overcloudrc
neutron net-create public --provider:network_type vlan --router:external true --provider:physical_network datacentre --provider:segmentation_id 10 --shared
neutron subnet-create --name subnet-public public --enable-dhcp --gateway
openstack router create router1
openstack router set router1 --external-gateway public
openstack network create private
openstack subnet create --network private --subnet-range private
openstack router add subnet router1 private
openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public;
openstack flavor create --vcpus 1 --ram 64 --disk 1 m1.nano
# delete all security groups
openstack security group delete <security group id>
openstack security group create sg1
openstack security group rule create --proto icmp sg1
openstack security group rule create 3401b115-e009-453d-a4ab-5b1bd7d0acec --protocol tcp --dst-port 22:22 --remote-ip
openstack server create --image ba1ce07c-0ceb-4b59-9ffb-6892a34e9ca0 --nic net-id=c6761f4c-5342-4b80-a6ba-7c25ab4ceb03 --flavor m1.nano --security-group 92b60acc-2dc8-4407-aae5-419a2b767bb7 vm1
openstack floating ip create public
openstack server add floating ip vm1 98e7179e-b317-4e42-8d4f-33ace7c149a1
============= deletion============
openstack floating ip delete a07080bd-d750-414e-a7df-c83811bf5b54
nova delete vm1
openstack security group delete <security group id>
manually patch OVS in (all) nodes
[heat-admin@overcloud-controller-2 ~]$ ls
openvswitch2.11-2.11.0-24.el7fdp.x86_64.rpm python-rhosp-openvswitch-2.11-0.1.el7ost.noarch.rpm
python-openvswitch2.11-2.11.0-24.el7fdp.x86_64.rpm rhosp-openvswitch-2.11-0.1.el7ost.noarch.rpm
curl -L -O
sudo yum install rhosp-openvswitch-2.11-0.1.el7ost.noarch.rpm python-rhosp-openvswitch-2.11-0.1.el7ost.noarch.rpm -y openvswitch2.11-2.11.0-24.el7fdp.x86_64.rpm python-openvswitch2.11-2.11.0-24.el7fdp.x86_64.rpm
sudo systemctl restart openvswitch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.