@@ -3,73 +3,81 @@ Provision a Deis Controller on Rackspace
33
441 . Install [ knife-rackspace] [ kniferack ] with ` gem install knife-rackspace ` or just ` bundle install ` from the root directory of your deis repository:
55
6- ``` console
7- $ cd $HOME /projects/deis
8- $ gem install knife-rackspace
9- Fetching: knife-rackspace-0.8.1.gem (100%)
10- Successfully installed knife-rackspace-0.8.1
11- 1 gem installed
12- Installing ri documentation for knife-rackspace-0.8.1...
13- Installing RDoc documentation for knife-rackspace-0.8.1...
14- ```
6+ ``` console
7+ $ cd $HOME/projects/deis
8+ $ gem install knife-rackspace
9+ Fetching: knife-rackspace-0.8.1.gem (100%)
10+ Successfully installed knife-rackspace-0.8.1
11+ 1 gem installed
12+ Installing ri documentation for knife-rackspace-0.8.1...
13+ Installing RDoc documentation for knife-rackspace-0.8.1...
14+ ```
1515
16- 2 . Export your Rackspace credentials as environment variables and edit knife.rb to read them:
16+ 1 . Export your Rackspace credentials as environment variables and edit knife.rb to read them:
1717
18- ``` console
19- $ cat << 'EOF ' >> $HOME/.bash_profile
20- export RACKSPACE_USERNAME=<your_rackspace_username>
21- export RACKSPACE_API_KEY=<your_rackspace_api_key>
22- EOF
23- $ source $HOME /.bash_profile
24- $ cat << 'EOF ' >> $HOME/.chef/knife.rb
25- knife[:rackspace_api_username] = "#{ENV['RACKSPACE_USERNAME']}"
26- knife[:rackspace_api_key] = "#{ENV['RACKSPACE_API_KEY']}"
27- EOF
28- $ knife rackspace server list
29- Instance ID Name Public IP Private IP Flavor Image State
30- ```
18+ ```console
19+ $ cat <<'EOF' >> $HOME/.bash_profile
20+ export RACKSPACE_USERNAME=<your_rackspace_username>
21+ export RACKSPACE_API_KEY=<your_rackspace_api_key>
22+ EOF
23+ $ source $HOME/.bash_profile
24+ $ cat <<'EOF' >> $HOME/.chef/knife.rb
25+ knife[:rackspace_api_username] = "#{ENV['RACKSPACE_USERNAME']}"
26+ knife[:rackspace_api_key] = "#{ENV['RACKSPACE_API_KEY']}"
27+ EOF
28+ $ knife rackspace server list
29+ Instance ID Name Public IP Private IP Flavor Image State
30+ ```
3131
32- 3 . Prepare an new image.
33- * This will be used as the image to create a new controller as well as new nodes in a formation.
32+ 1. Prepare a new server
33+ 1. Create a server named `deis_prepare_image` using the Ubuntu 12.04 LTS image, performance1-2, 1GB performance server
34+ 1. SSH in as root with the password shown
35+ 1. Install the 3.8 kernel with: ```apt-get update && apt-get install -yq linux-image-generic-lts-raring linux-headers-generic-lts-raring && reboot```
36+ 1. After reboot is complete, SSH back in as root and `uname -r` to confirm kernel is `3.8.0-35-generic`
37+ 1. Run the `prepare-rackspace-image.sh` script to optimize the image for fast boot times
3438
35- ``` console
36- $ ./contrib/rackspace/prepare-rackspace-image.sh
37- + dpkg -l 'linux-*'
38- + xargs sudo apt-get -y purge
39- ++ uname -r
40- ++ sed 's/\(.*\)-\([^0-9]\+\)/\1/'
41- ...
42- + rm -f /root/.ssh/authorized_keys
43- + find /var/log -type f
44- + xargs rm
45- + sync
46- ```
39+ ```console
40+ $ ./contrib/rackspace/prepare-rackspace-image.sh
41+ + dpkg -l 'linux-*'
42+ + xargs sudo apt-get -y purge
43+ ++ uname -r
44+ ++ sed 's/\(.*\)-\([^0-9]\+\)/\1/'
45+ ...
46+ + rm -f /root/.ssh/authorized_keys
47+ + find /var/log -type f
48+ + xargs rm
49+ + sync
50+ ```
4751
48- 4 . Run the provisioning script to create a new Deis controller:
49- * Change ``` <region> ``` to be one of:
52+ 1. Create a new image from the server named "deis-base-image".
53+ 1. In the server list in the Control Panel click the action cog for `deis_prepare_image`
54+ 1. Select "Create New Image" name that image "deis-base-image"
55+ 1. (optionally) Distribute the image to other regions
56+ 1. (optionally) Create/update your Deis flavors to use your new images
57+
58+ 1. Run the provisioning script to create a new Deis controller:
59+ * Change ```<region>``` to match the region your image is in:
5060 * dfw
5161 * ord
5262 * iad
5363 * lon
54- * syd
55- * hkg
5664
57- ``` console
58- $ ./contrib/rackspace/provision-rackspace-controller.sh < region>
59- Provisioning a deis controller on Rackspace...
60- Creating new SSH key: deis-controller
61- + ssh-keygen -f /home/myuser/.ssh/deis-controller -t rsa -N '' -C deis-controller
62- + set +x
63- Saved to /home/myuser/.ssh/deis-controller
64- Created data_bag[deis-users]
65- Created data_bag[deis-formations]
66- Created data_bag[deis-apps]
67- Provisioning deis-controller with knife rackspace...
68- + knife rackspace server create -y --server-create-timeout 1200 --server-name deis-controller --image 4b7c635d-89e1-44be-a15f-2877b5a660d1 --rackspace-region <region> --flavor 4 --identity-file /home/myuser/.ssh/deis-controller --bootstrap-version 11.4.4 --node-name deis-controller --run-list 'recipe[deis::controller]'
69- Instance ID: de17ca36-f186-4cdd-8969-4be58e7108ea
70- Name: deis-controller
71- Flavor: 2GB Standard Instance
72- ...
73- ```
65+ ```console
66+ $ ./contrib/rackspace/provision-rackspace-controller.sh <region>
67+ Provisioning a deis controller on Rackspace...
68+ Creating new SSH key: deis-controller
69+ + ssh-keygen -f /home/myuser/.ssh/deis-controller -t rsa -N '' -C deis-controller
70+ + set +x
71+ Saved to /home/myuser/.ssh/deis-controller
72+ Created data_bag[deis-users]
73+ Created data_bag[deis-formations]
74+ Created data_bag[deis-apps]
75+ Provisioning deis-controller with knife rackspace...
76+ + knife rackspace server create -y --server-create-timeout 1200 --server-name deis-controller --image 4b7c635d-89e1-44be-a15f-2877b5a660d1 --rackspace-region <region> --flavor 4 --identity-file /home/myuser/.ssh/deis-controller --bootstrap-version 11.4.4 --node-name deis-controller --run-list 'recipe[deis::controller]'
77+ Instance ID: de17ca36-f186-4cdd-8969-4be58e7108ea
78+ Name: deis-controller
79+ Flavor: 2GB Standard Instance
80+ ...
81+ ```
7482
7583[kniferack]: http://docs.opscode.com/plugin_knife_rackspace.html
0 commit comments