| Dean Troyer | 0986a7b | 2014-10-29 22:08:13 -0500 | [diff] [blame] | 1 | ============== | 
 | 2 | Multi-Node Lab | 
 | 3 | ============== | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 4 |  | 
 | 5 | Here is OpenStack in a realistic test configuration with multiple | 
 | 6 | physical servers. | 
 | 7 |  | 
 | 8 | Prerequisites Linux & Network | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 9 | ============================= | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 10 |  | 
 | 11 | Minimal Install | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 12 | --------------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 13 |  | 
 | 14 | You need to have a system with a fresh install of Linux. You can | 
 | 15 | download the `Minimal | 
 | 16 | CD <https://help.ubuntu.com/community/Installation/MinimalCD>`__ for | 
 | 17 | Ubuntu releases since DevStack will download & install all the | 
 | 18 | additional dependencies. The netinstall ISO is available for | 
| Dean Troyer | ea3cdfa | 2014-11-08 08:29:16 -0600 | [diff] [blame] | 19 | `Fedora <http://mirrors.kernel.org/fedora/releases/>`__ | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 20 | and | 
| Dean Troyer | ea3cdfa | 2014-11-08 08:29:16 -0600 | [diff] [blame] | 21 | `CentOS/RHEL <http://mirrors.kernel.org/centos/>`__. | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 22 |  | 
 | 23 | Install a couple of packages to bootstrap configuration: | 
 | 24 |  | 
 | 25 | :: | 
 | 26 |  | 
 | 27 |     apt-get install -y git sudo || yum install -y git sudo | 
 | 28 |  | 
 | 29 | Network Configuration | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 30 | --------------------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 31 |  | 
 | 32 | The first iteration of the lab uses OpenStack's FlatDHCP network | 
 | 33 | controller so only a single network will be required. It should be on | 
 | 34 | its own subnet without DHCP; the host IPs and floating IP pool(s) will | 
 | 35 | come out of this block. This example uses the following: | 
 | 36 |  | 
 | 37 | -  Gateway: 192.168.42.1 | 
 | 38 | -  Physical nodes: 192.168.42.11-192.168.42.99 | 
 | 39 | -  Floating IPs: 192.168.42.128-192.168.42.254 | 
 | 40 |  | 
 | 41 | Configure each node with a static IP. For Ubuntu edit | 
 | 42 | ``/etc/network/interfaces``: | 
 | 43 |  | 
 | 44 | :: | 
 | 45 |  | 
 | 46 |     auto eth0 | 
 | 47 |     iface eth0 inet static | 
 | 48 |         address 192.168.42.11 | 
 | 49 |         netmask 255.255.255.0 | 
 | 50 |         gateway 192.168.42.1 | 
 | 51 |  | 
 | 52 | For Fedora and CentOS/RHEL edit | 
 | 53 | ``/etc/sysconfig/network-scripts/ifcfg-eth0``: | 
 | 54 |  | 
 | 55 | :: | 
 | 56 |  | 
 | 57 |     BOOTPROTO=static | 
 | 58 |     IPADDR=192.168.42.11 | 
 | 59 |     NETMASK=255.255.255.0 | 
 | 60 |     GATEWAY=192.168.42.1 | 
 | 61 |  | 
 | 62 | Installation shake and bake | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 63 | =========================== | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 64 |  | 
 | 65 | Add the DevStack User | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 66 | --------------------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 67 |  | 
 | 68 | OpenStack runs as a non-root user that has sudo access to root. There is | 
 | 69 | nothing special about the name, we'll use ``stack`` here. Every node | 
 | 70 | must use the same name and preferably uid. If you created a user during | 
 | 71 | the OS install you can use it and give it sudo privileges below. | 
 | 72 | Otherwise create the stack user: | 
 | 73 |  | 
 | 74 | :: | 
 | 75 |  | 
 | 76 |     groupadd stack | 
 | 77 |     useradd -g stack -s /bin/bash -d /opt/stack -m stack | 
 | 78 |  | 
 | 79 | This user will be making many changes to your system during installation | 
 | 80 | and operation so it needs to have sudo privileges to root without a | 
 | 81 | password: | 
 | 82 |  | 
 | 83 | :: | 
 | 84 |  | 
 | 85 |     echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers | 
 | 86 |  | 
 | 87 | From here on use the ``stack`` user. **Logout** and **login** as the | 
 | 88 | ``stack`` user. | 
 | 89 |  | 
 | 90 | Set Up Ssh | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 91 | ---------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 92 |  | 
 | 93 | Set up the stack user on each node with an ssh key for access: | 
 | 94 |  | 
 | 95 | :: | 
 | 96 |  | 
 | 97 |     mkdir ~/.ssh; chmod 700 ~/.ssh | 
 | 98 |     echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyYjfgyPazTvGpd8OaAvtU2utL8W6gWC4JdRS1J95GhNNfQd657yO6s1AH5KYQWktcE6FO/xNUC2reEXSGC7ezy+sGO1kj9Limv5vrvNHvF1+wts0Cmyx61D2nQw35/Qz8BvpdJANL7VwP/cFI/p3yhvx2lsnjFE3hN8xRB2LtLUopUSVdBwACOVUmH2G+2BWMJDjVINd2DPqRIA4Zhy09KJ3O1Joabr0XpQL0yt/I9x8BVHdAx6l9U0tMg9dj5+tAjZvMAFfye3PJcYwwsfJoFxC8w/SLtqlFX7Ehw++8RtvomvuipLdmWCy+T9hIkl+gHYE4cS3OIqXH7f49jdJf jesse@spacey.local" > ~/.ssh/authorized_keys | 
 | 99 |  | 
 | 100 | Download DevStack | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 101 | ----------------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 102 |  | 
 | 103 | Grab the latest version of DevStack: | 
 | 104 |  | 
 | 105 | :: | 
 | 106 |  | 
 | 107 |     git clone https://git.openstack.org/openstack-dev/devstack | 
 | 108 |     cd devstack | 
 | 109 |  | 
 | 110 | Up to this point all of the steps apply to each node in the cluster. | 
 | 111 | From here on there are some differences between the cluster controller | 
 | 112 | (aka 'head node') and the compute nodes. | 
 | 113 |  | 
 | 114 | Configure Cluster Controller | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 115 | ---------------------------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 116 |  | 
 | 117 | The cluster controller runs all OpenStack services. Configure the | 
 | 118 | cluster controller's DevStack in ``local.conf``: | 
 | 119 |  | 
 | 120 | :: | 
 | 121 |  | 
 | 122 |     [[local|localrc]] | 
 | 123 |     HOST_IP=192.168.42.11 | 
 | 124 |     FLAT_INTERFACE=eth0 | 
 | 125 |     FIXED_RANGE=10.4.128.0/20 | 
 | 126 |     FIXED_NETWORK_SIZE=4096 | 
 | 127 |     FLOATING_RANGE=192.168.42.128/25 | 
 | 128 |     MULTI_HOST=1 | 
 | 129 |     LOGFILE=/opt/stack/logs/stack.sh.log | 
 | 130 |     ADMIN_PASSWORD=labstack | 
 | 131 |     MYSQL_PASSWORD=supersecret | 
 | 132 |     RABBIT_PASSWORD=supersecrete | 
 | 133 |     SERVICE_PASSWORD=supersecrete | 
 | 134 |     SERVICE_TOKEN=xyzpdqlazydog | 
 | 135 |  | 
 | 136 | In the multi-node configuration the first 10 or so IPs in the private | 
 | 137 | subnet are usually reserved. Add this to ``local.sh`` to have it run | 
 | 138 | after every ``stack.sh`` run: | 
 | 139 |  | 
 | 140 | :: | 
 | 141 |  | 
 | 142 |     for i in `seq 2 10`; do /opt/stack/nova/bin/nova-manage fixed reserve 10.4.128.$i; done | 
 | 143 |  | 
 | 144 | Fire up OpenStack: | 
 | 145 |  | 
 | 146 | :: | 
 | 147 |  | 
 | 148 |     ./stack.sh | 
 | 149 |  | 
 | 150 | A stream of activity ensues. When complete you will see a summary of | 
 | 151 | ``stack.sh``'s work, including the relevant URLs, accounts and passwords | 
 | 152 | to poke at your shiny new OpenStack. The most recent log file is | 
 | 153 | available in ``stack.sh.log``. | 
 | 154 |  | 
 | 155 | Configure Compute Nodes | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 156 | ----------------------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 157 |  | 
 | 158 | The compute nodes only run the OpenStack worker services. For additional | 
 | 159 | machines, create a ``local.conf`` with: | 
 | 160 |  | 
 | 161 | :: | 
 | 162 |  | 
| Kashyap Kopparam | cd1c3c7 | 2014-10-31 17:32:57 +0530 | [diff] [blame] | 163 |     [[local|localrc]] | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 164 |     HOST_IP=192.168.42.12 # change this per compute node | 
 | 165 |     FLAT_INTERFACE=eth0 | 
 | 166 |     FIXED_RANGE=10.4.128.0/20 | 
 | 167 |     FIXED_NETWORK_SIZE=4096 | 
 | 168 |     FLOATING_RANGE=192.168.42.128/25 | 
 | 169 |     MULTI_HOST=1 | 
 | 170 |     LOGFILE=/opt/stack/logs/stack.sh.log | 
 | 171 |     ADMIN_PASSWORD=labstack | 
 | 172 |     MYSQL_PASSWORD=supersecret | 
 | 173 |     RABBIT_PASSWORD=supersecrete | 
 | 174 |     SERVICE_PASSWORD=supersecrete | 
 | 175 |     SERVICE_TOKEN=xyzpdqlazydog | 
 | 176 |     DATABASE_TYPE=mysql | 
 | 177 |     SERVICE_HOST=192.168.42.11 | 
| Masaki Matsushita | 597c902 | 2015-08-15 11:35:20 +0900 | [diff] [blame] | 178 |     MYSQL_HOST=$SERVICE_HOST | 
 | 179 |     RABBIT_HOST=$SERVICE_HOST | 
 | 180 |     GLANCE_HOSTPORT=$SERVICE_HOST:9292 | 
| Sean Dague | a6db5e3 | 2015-08-04 06:23:28 -0400 | [diff] [blame] | 181 |     ENABLED_SERVICES=n-cpu,n-net,n-api-meta,c-vol | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 182 |     NOVA_VNC_ENABLED=True | 
| Masaki Matsushita | 597c902 | 2015-08-15 11:35:20 +0900 | [diff] [blame] | 183 |     NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html" | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 184 |     VNCSERVER_LISTEN=$HOST_IP | 
 | 185 |     VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN | 
 | 186 |  | 
| Sean Dague | a6db5e3 | 2015-08-04 06:23:28 -0400 | [diff] [blame] | 187 | **Note:** the ``n-api-meta`` service is a version of the api server | 
 | 188 | that only serves the metadata service. It's needed because the | 
 | 189 | computes created won't have a routing path to the metadata service on | 
 | 190 | the controller. | 
 | 191 |  | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 192 | Fire up OpenStack: | 
 | 193 |  | 
 | 194 | :: | 
 | 195 |  | 
 | 196 |     ./stack.sh | 
 | 197 |  | 
 | 198 | A stream of activity ensues. When complete you will see a summary of | 
 | 199 | ``stack.sh``'s work, including the relevant URLs, accounts and passwords | 
 | 200 | to poke at your shiny new OpenStack. The most recent log file is | 
 | 201 | available in ``stack.sh.log``. | 
 | 202 |  | 
 | 203 | Cleaning Up After DevStack | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 204 | -------------------------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 205 |  | 
 | 206 | Shutting down OpenStack is now as simple as running the included | 
 | 207 | ``unstack.sh`` script: | 
 | 208 |  | 
 | 209 | :: | 
 | 210 |  | 
 | 211 |     ./unstack.sh | 
 | 212 |  | 
 | 213 | A more aggressive cleanup can be performed using ``clean.sh``. It | 
 | 214 | removes certain troublesome packages and attempts to leave the system in | 
 | 215 | a state where changing the database or queue manager can be reliably | 
 | 216 | performed. | 
 | 217 |  | 
 | 218 | :: | 
 | 219 |  | 
 | 220 |     ./clean.sh | 
 | 221 |  | 
 | 222 | Sometimes running instances are not cleaned up. DevStack attempts to do | 
 | 223 | this when it runs but there are times it needs to still be done by hand: | 
 | 224 |  | 
 | 225 | :: | 
 | 226 |  | 
 | 227 |     sudo rm -rf /etc/libvirt/qemu/inst* | 
 | 228 |     sudo virsh list | grep inst | awk '{print $1}' | xargs -n1 virsh destroy | 
 | 229 |  | 
 | 230 | Options pimp your stack | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 231 | ======================= | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 232 |  | 
 | 233 | Additional Users | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 234 | ---------------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 235 |  | 
 | 236 | DevStack creates two OpenStack users (``admin`` and ``demo``) and two | 
| Peter Stachowski | 9a80892 | 2015-04-08 19:48:09 +0000 | [diff] [blame] | 237 | projects (also ``admin`` and ``demo``). ``admin`` is exactly what it | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 238 | sounds like, a privileged administrative account that is a member of | 
| Peter Stachowski | 9a80892 | 2015-04-08 19:48:09 +0000 | [diff] [blame] | 239 | both the ``admin`` and ``demo`` projects. ``demo`` is a normal user | 
 | 240 | account that is only a member of the ``demo`` project. Creating | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 241 | additional OpenStack users can be done through the dashboard, sometimes | 
 | 242 | it is easier to do them in bulk from a script, especially since they get | 
 | 243 | blown away every time ``stack.sh`` runs. The following steps are ripe | 
 | 244 | for scripting: | 
 | 245 |  | 
 | 246 | :: | 
 | 247 |  | 
 | 248 |     # Get admin creds | 
 | 249 |     . openrc admin admin | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 250 |  | 
| Peter Stachowski | 9a80892 | 2015-04-08 19:48:09 +0000 | [diff] [blame] | 251 |     # List existing projects | 
 | 252 |     openstack project list | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 253 |  | 
 | 254 |     # List existing users | 
| Peter Stachowski | 9a80892 | 2015-04-08 19:48:09 +0000 | [diff] [blame] | 255 |     openstack user list | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 256 |  | 
| Peter Stachowski | 9a80892 | 2015-04-08 19:48:09 +0000 | [diff] [blame] | 257 |     # Add a user and project | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 258 |     NAME=bob | 
 | 259 |     PASSWORD=BigSecrete | 
| Peter Stachowski | 9a80892 | 2015-04-08 19:48:09 +0000 | [diff] [blame] | 260 |     PROJECT=$NAME | 
 | 261 |     openstack project create $PROJECT | 
 | 262 |     openstack user create $NAME --password=$PASSWORD --project $PROJECT | 
 | 263 |     openstack role add Member --user $NAME --project $PROJECT | 
 | 264 |     # The Member role is created by stack.sh | 
 | 265 |     # openstack role list | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 266 |  | 
 | 267 | Swift | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 268 | ----- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 269 |  | 
| Shilla Saebi | 2ed09d8 | 2015-04-21 15:02:13 -0400 | [diff] [blame] | 270 | Swift, OpenStack Object Storage, requires a significant amount of resources | 
| Sean Dague | a6db5e3 | 2015-08-04 06:23:28 -0400 | [diff] [blame] | 271 | and is disabled by default in DevStack. The support in DevStack is geared | 
| Shilla Saebi | 2ed09d8 | 2015-04-21 15:02:13 -0400 | [diff] [blame] | 272 | toward a minimal installation but can be used for testing. To implement a | 
 | 273 | true multi-node test of swift, additional steps will be required. Enabling it is as | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 274 | simple as enabling the ``swift`` service in ``local.conf``: | 
 | 275 |  | 
 | 276 | :: | 
 | 277 |  | 
 | 278 |     enable_service s-proxy s-object s-container s-account | 
 | 279 |  | 
| Shilla Saebi | 2ed09d8 | 2015-04-21 15:02:13 -0400 | [diff] [blame] | 280 | Swift, OpenStack Object Storage, will put its data files in ``SWIFT_DATA_DIR`` (default | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 281 | ``/opt/stack/data/swift``). The size of the data 'partition' created | 
 | 282 | (really a loop-mounted file) is set by ``SWIFT_LOOPBACK_DISK_SIZE``. The | 
| JordanP | a6dfe81 | 2014-11-20 18:06:23 +0100 | [diff] [blame] | 283 | Swift config files are located in ``SWIFT_CONF_DIR`` (default | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 284 | ``/etc/swift``). All of these settings can be overridden in (wait for | 
 | 285 | it...) ``local.conf``. | 
 | 286 |  | 
 | 287 | Volumes | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 288 | ------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 289 |  | 
 | 290 | DevStack will automatically use an existing LVM volume group named | 
 | 291 | ``stack-volumes`` to store cloud-created volumes. If ``stack-volumes`` | 
| Dean Troyer | ea3cdfa | 2014-11-08 08:29:16 -0600 | [diff] [blame] | 292 | doesn't exist, DevStack will set up a 10Gb loop-mounted file to contain | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 293 | it. This obviously limits the number and size of volumes that can be | 
 | 294 | created inside OpenStack. The size can be overridden by setting | 
 | 295 | ``VOLUME_BACKING_FILE_SIZE`` in ``local.conf``. | 
 | 296 |  | 
 | 297 | ``stack-volumes`` can be pre-created on any physical volume supported by | 
 | 298 | Linux's LVM. The name of the volume group can be changed by setting | 
 | 299 | ``VOLUME_GROUP`` in ``localrc``. ``stack.sh`` deletes all logical | 
 | 300 | volumes in ``VOLUME_GROUP`` that begin with ``VOLUME_NAME_PREFIX`` as | 
 | 301 | part of cleaning up from previous runs. It is recommended to not use the | 
 | 302 | root volume group as ``VOLUME_GROUP``. | 
 | 303 |  | 
 | 304 | The details of creating the volume group depends on the server hardware | 
 | 305 | involved but looks something like this: | 
 | 306 |  | 
 | 307 | :: | 
 | 308 |  | 
 | 309 |     pvcreate /dev/sdc | 
 | 310 |     vgcreate stack-volumes /dev/sdc | 
 | 311 |  | 
 | 312 | Syslog | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 313 | ------ | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 314 |  | 
 | 315 | DevStack is capable of using ``rsyslog`` to aggregate logging across the | 
 | 316 | cluster. It is off by default; to turn it on set ``SYSLOG=True`` in | 
 | 317 | ``local.conf``. ``SYSLOG_HOST`` defaults to ``HOST_IP``; on the compute | 
 | 318 | nodes it must be set to the IP of the cluster controller to send syslog | 
 | 319 | output there. In the example above, add this to the compute node | 
 | 320 | ``local.conf``: | 
 | 321 |  | 
 | 322 | :: | 
 | 323 |  | 
 | 324 |     SYSLOG_HOST=192.168.42.11 | 
 | 325 |  | 
 | 326 | Using Alternate Repositories/Branches | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 327 | ------------------------------------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 328 |  | 
 | 329 | The git repositories for all of the OpenStack services are defined in | 
 | 330 | ``stackrc``. Since this file is a part of the DevStack package changes | 
 | 331 | to it will probably be overwritten as updates are applied. Every setting | 
 | 332 | in ``stackrc`` can be redefined in ``local.conf``. | 
 | 333 |  | 
 | 334 | To change the repository or branch that a particular OpenStack service | 
 | 335 | is created from, simply change the value of ``*_REPO`` or ``*_BRANCH`` | 
 | 336 | corresponding to that service. | 
 | 337 |  | 
 | 338 | After making changes to the repository or branch, if ``RECLONE`` is not | 
 | 339 | set in ``localrc`` it may be necessary to remove the corresponding | 
 | 340 | directory from ``/opt/stack`` to force git to re-clone the repository. | 
 | 341 |  | 
| Shilla Saebi | 2ed09d8 | 2015-04-21 15:02:13 -0400 | [diff] [blame] | 342 | For example, to pull nova, OpenStack Compute, from a proposed release candidate | 
 | 343 | in the primary nova repository: | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 344 |  | 
 | 345 | :: | 
 | 346 |  | 
 | 347 |     NOVA_BRANCH=rc-proposed | 
 | 348 |  | 
| Shilla Saebi | 2ed09d8 | 2015-04-21 15:02:13 -0400 | [diff] [blame] | 349 | To pull glance, OpenStack Image service, from an experimental fork: | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 350 |  | 
 | 351 | :: | 
 | 352 |  | 
 | 353 |     GLANCE_BRANCH=try-something-big | 
 | 354 |     GLANCE_REPO=https://github.com/mcuser/glance.git | 
 | 355 |  | 
 | 356 | Notes stuff you might need to know | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 357 | ================================== | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 358 |  | 
 | 359 | Reset the Bridge | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 360 | ---------------- | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 361 |  | 
 | 362 | How to reset the bridge configuration: | 
 | 363 |  | 
 | 364 | :: | 
 | 365 |  | 
 | 366 |     sudo brctl delif br100 eth0.926 | 
 | 367 |     sudo ip link set dev br100 down | 
 | 368 |     sudo brctl delbr br100 | 
 | 369 |  | 
 | 370 | Set MySQL Password | 
| Sean Dague | 3293046 | 2014-11-18 06:51:16 -0500 | [diff] [blame] | 371 | ------------------ | 
| Sean M. Collins | 09e550c | 2014-10-21 11:40:08 -0400 | [diff] [blame] | 372 |  | 
 | 373 | If you forgot to set the root password you can do this: | 
 | 374 |  | 
 | 375 | :: | 
 | 376 |  | 
 | 377 |     mysqladmin -u root -pnova password 'supersecret' |