UPDATING.rst 3.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
Updating a running OpenStack-TCloud Cloudlab experiment
-------------------------------------------------------

If you want to update a running Cloudlab experiment to pull in recent
source code changes, you can update using the following instructions.

SSH to the ``ctl`` node, and do::

    sudo su -

    # (to pick up controller/protocol changes)

    cd /root/setup/capnet/capnet
    git pull
    cd ../capnet.obj
    make install

    # to pick up capnet Neutron plugin server-side changes)

    cd /root/setup/capnet/networking-capnet
    git pull
    cp -p /etc/neutron/plugins/ml2/ml2_conf_capnet.ini \
        /etc/neutron/plugins/ml2/ml2_conf_capnet.ini.bak ; \
      rm -rf build/ networking_capnet.egg-info/ ; \
      python setup.py install --install-layout=deb --install-data / -v -f ; \
      diff -u /etc/neutron/plugins/ml2/ml2_conf_capnet.ini.bak \
        /etc/neutron/plugins/ml2/ml2_conf_capnet.ini ; \
      cp -p /etc/neutron/plugins/ml2/ml2_conf_capnet.ini.bak \
        /etc/neutron/plugins/ml2/ml2_conf_capnet.ini ; \
      rm -f /var/log/neutron/neutron-server.log ; \
      sleep 1 ; \
      systemctl restart neutron-server.service

    # (Note: we save the current ml2 capnet config file; force the python
    # module(s) install; restore the old config that is blown away by
    # module install; wipe the Neutron log file; and restart the service.
    # Change to your liking... i.e. don't wipe the logfile if you prefer
    # to save it.)


If the ``capnet`` library fails to compile, or if you've been told
specifically that you need an update due to a bug or feature, you may
need to pull in updates from the ``libcap`` or ``openmul``
repositories::

    cd /root/setup/capnet/libcap
    git pull
    cd ../libcap.obj
    make install

    cd /root/setup/capnet/openmul
    git pull
    cd ../openmul.obj
    make install


Next, SSH to the ``nm`` node, and do::

    sudo su -

    # (to pick up controller/protocol changes:)

    cd /root/setup/capnet/capnet
    git pull
    cd ../capnet.obj
    make install

    # (to pick up capnet Neutron plugin server-side changes:)

    cd /root/setup/capnet/networking-capnet
    git pull

    cp -p /etc/neutron/plugins/ml2/ml2_conf_capnet.ini \
        /etc/neutron/plugins/ml2/ml2_conf_capnet.ini.bak ; \
      rm -rf build/ networking_capnet.egg-info/ ; \
      python setup.py install --install-layout=deb --install-data / -v -f ; \
      diff -u /etc/neutron/plugins/ml2/ml2_conf_capnet.ini.bak \
        /etc/neutron/plugins/ml2/ml2_conf_capnet.ini ; \
      cp -p /etc/neutron/plugins/ml2/ml2_conf_capnet.ini.bak \
        /etc/neutron/plugins/ml2/ml2_conf_capnet.ini ; \
      rm -f /var/log/neutron/neutron-plugin-capnet-agent.log ; \
      sleep 1 ; \
      service neutron-plugin-capnet-agent restart


The instructions for the compute nodes are the same as the NM node, but
you don't have to reinstall the controller/protocol stuff, because we
don't run controllers on the compute nodes yet.

In fact, updating anything on the compute nodes is almost never
necessary.  Right now, it almost always suffices to update only the NM
because we don't have a distributed controller yet.