Adding Machines to an AppScale Deployment

Chris Donati edited this page May 25, 2015 · 4 revisions

This document describes how to dynamically add machines to an already running AppScale deployment. Please reach out to us on #appscale on IRC (freenode) if you run into any problems or have questions. In this example, we detail how to start AppScale in a four node deployment on VirtualBox, and then add two more nodes at a later time.

Step 1: Start AppScale

Begin by starting AppScale as usual. For our four node example, this means you would create an ips.yaml file that resembles the following:

---
controller: 192.168.1.2
servers:
- 192.168.1.3
- 192.168.1.4
- 192.168.1.5

Then, run appscale-add-keypair to synchronize your SSH keys:

$ appscale-add-keypair --ips ips.yaml --keyname appscale

Next, run AppScale on this four node deployment:

$ appscale-run-instances --ips ips.yaml -v --keyname appscale

Wait for your AppScale instance to finish deploying before you add more machines.

Step 2: Add more machines

Once AppScale has finished deploying on your initial number of machines, create a new ips file (that we'll call ips2.yaml) that indicates the number of nodes you'd like to add to your deployment and what you'd like them to do. The format follows the advanced deployment scheme, so you could add two AppServers by writing:

---
appengine:
- 192.168.1.6
- 192.168.1.7

Or you could add two database nodes by writing:

---
database:
- 192.168.1.6
- 192.168.1.7

Then, run appscale-add-keypair to synchronize your SSH keys on the new machines with the keys used on your old machines:

$ appscale-add-keypair --ips ips2.yaml --add_to_existing --keyname appscale

Finally, tell AppScale to add your new nodes to the existing deployment:

$ appscale-add-instances --ips ips2.yaml --keyname appscale

You'll notice that after the new machines join the AppScale deployment, you can see them on the status page on the AppLoadBalancer (located at http://192.168.1.2/status in our example). You'll need to be logged in as the AppScale cloud administrator to see this information.