diff --git a/doc/openstack.md b/doc/openstack.md deleted file mode 100644 index 7509a16e5b..0000000000 --- a/doc/openstack.md +++ /dev/null @@ -1,182 +0,0 @@ -# OpenStack CTS setup - -If we ever get the OpenStack networking sorted out to the point where -Corosync can use it, this documents the process of getting a Pacemaker -cluster set up for testing with CTS. - -## Prep - -Install python-novaclient - - yum install -y python-novaclient - -Export your OpenStack credentials - - export OS_REGION_NAME=... - export OS_TENANT_NAME=... - export OS_AUTH_URL=... - export OS_USERNAME=... - export OS_PASSWORD=... - - export IMAGE_USER=fedora - -Allocate 5 floating IPs. For the purposes of the setup instructions -(and probably your sanity), they need to be consecutive and to remain -sane, should ideally start with a multiple of 10. Below we will assume -10.16.16.60-64 - - for n in `seq 1 5`; do nova floating-ip-create; done - -Create some variables based on the IP addresses nova created for you: - - export IP_BASE=10.16.16.60 - -and a function for calculating offsets - - function nth_ipaddr() { - echo $IP_BASE | awk -F. -v offset=$1 '{ printf "%s.%s.%s.%s\n", $1, $2, $3, $4 + offset }' - } - - function ip_net() { - echo $IP_BASE | awk -F. '{ printf "%s.%s.%s.*\n", $1, $2, $3 }' - } - -Upload a public key that we can use to log into the images we create. -I created one especially for cluster testing and left it without a password. - - nova keypair-add --pub-key ~/.ssh/cluster Cluster - -Make sure it gets used when connecting to the CTS master - - cat << EOF >> ~/.ssh/config - Host cts-master \`echo $IP_BASE | awk -F. '{ printf "%s.%s.%s.*", \$1, \$2, \$3 }'\` - User root - IdentityFile ~/.ssh/cluster - UserKnownHostsFile ~/.ssh/known.openstack - EOF - -Punch a hole in the firewall for SSH access and ping - - nova secgroup-add-rule default tcp 23 23 10.0.0.0/8 - nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 - -Add the CTS master to /etc/hosts - - cat << EOF >> /etc/hosts - `nth_ipaddr 0` cts-master - EOF - -Create helper scripts on a local host - - cat << END > ./master.sh - - echo export OS_REGION_NAME=$OS_REGION_NAME >> ~/.bashrc - echo export OS_TENANT_NAME=$OS_TENANT_NAME >> ~/.bashrc - echo export OS_AUTH_URL=$OS_AUTH_URL >> ~/.bashrc - echo export OS_USERNAME=$OS_USERNAME >> ~/.bashrc - echo export OS_PASSWORD=$OS_PASSWORD >> ~/.bashrc - - function nth_ipaddr() { - echo $IP_BASE | awk -F. -v offset=\$1 '{ printf "%s.%s.%s.%s\n", \$1, \$2, \$3, \$4 + offset }' - } - - yum install -y python-novaclient git screen pdsh pdsh-mod-dshgroup - - git clone --depth 0 git://github.com/beekhof/fence_openstack.git - ln -s /root/fence_openstack/fence_openstack /sbin - - mkdir -p /root/.dsh/group/ - echo export cluster_name=openstack >> ~/.bashrc - - rm -f /root/.dsh/group/openstack - for n in `seq 1 4`; do - echo "cluster-\$n" >> /root/.dsh/group/openstack - echo \`nth_ipaddr \$n\` cluster-\$n >> /etc/hosts - done - - cat << EOF >> /root/.ssh/config - Host cts-master \`echo $IP_BASE | awk -F. '{ printf "%s.%s.%s.*", \$1, \$2, \$3 }'\` - User root - IdentityFile ~/.ssh/cluster - EOF - - END - -Some images do not allow root to log in by default and insist on a -'fedora' user. Create a script to disable this "feature": - - cat << EOF > fix-guest.sh - #!/bin/bash - # Re-allow root to log in - sudo sed -i s/.*ssh-/ssh-/ /root/.ssh/authorized_keys - EOF - -## CTS master (Fedora-18) - -Create and update the master - - nova boot --poll --image "Fedora 18" --key_name Cluster --flavor m1.tiny cts-master - nova add-floating-ip cts-master `nth_ipaddr 0` - -If your image does not allow root to log in by default, disable this -"feature" with the script we created earlier: - - scp fix-guest.sh $IMAGE_USER@cts-master: - ssh -l $IMAGE_USER -t cts-master -- bash ./fix-guest.sh - -Now we can set up the CTS master with the script we created earlier: - - scp ~/.ssh/cluster cts-master:.ssh/id_rsa - scp master.sh cts-master: - ssh cts-master -- bash ./master.sh - -### Create the Guests - -First create the guests - - for n in `seq 1 4`; do - nova boot --poll --image "Fedora 18" --key_name Cluster --flavor m1.tiny cluster-$n; - nova add-floating-ip cluster-$n `nth_ipaddr $n` - done - -Then wait for everything to settle - - sleep 10 - -### Fix the Guests - -If your image does not allow root to log in by default, disable this -"feature" with the script we created earlier: - - for n in `seq 1 4`; do - scp fix-guest.sh $IMAGE_USER@`nth_ipaddr $n`: - ssh -l $IMAGE_USER -t `nth_ipaddr $n` -- bash ./fix-guest.sh; - done - -## Run CTS - -### Prep - -Switch to the CTS master - - ssh cts-master - -Clone Pacemaker for the latest version of CTS: - - git clone --depth 0 git://github.com/ClusterLabs/pacemaker.git - echo 'export PATH=$PATH:/root/pacemaker/extra:/root/pacemaker/cts' >> ~/.bashrc - echo alias c=\'cluster-helper\' >> ~/.bashrc - . ~/.bashrc - -Now set up CTS to run from the local source tree - - cts local-init - -Configure a cluster (this will install all needed packages and configure corosync on the guests in the $cluster_name group) - - cluster-init -g openstack --yes --unicast --hosts fedora-18 - -### Run - - cd pacemaker - cts clean run --stonith openstack \ No newline at end of file