| ... | ... |
@@ -187,6 +187,29 @@ cat > localrc <<LOCAL_EOF |
| 187 | 187 |
ROOTSLEEP=0 |
| 188 | 188 |
`cat $TOP_DIR/localrc` |
| 189 | 189 |
LOCAL_EOF |
| 190 |
+EOF |
|
| 191 |
+ |
|
| 192 |
+# Setup stack user with our key |
|
| 193 |
+if [ -e ~/.ssh/id_rsa.pub ]; then |
|
| 194 |
+ cat > $vm_dir/uec/user-data<<EOF |
|
| 195 |
+mkdir -p /opt/stack |
|
| 196 |
+useradd stack -s /bin/bash -d /opt/stack -G libvirtd || true |
|
| 197 |
+echo stack:pass | chpasswd |
|
| 198 |
+mkdir -p /opt/stack/.ssh |
|
| 199 |
+echo `cat ~/.ssh/id_rsa.pub` > /opt/stack/.ssh/authorized_keys |
|
| 200 |
+chown -R stack /opt/stack |
|
| 201 |
+chmod 700 /opt/stack/.ssh |
|
| 202 |
+chmod 600 /opt/stack/.ssh/authorized_keys |
|
| 203 |
+ |
|
| 204 |
+grep -q "^#includedir.*/etc/sudoers.d" /etc/sudoers || |
|
| 205 |
+ echo "#includedir /etc/sudoers.d" >> /etc/sudoers |
|
| 206 |
+( umask 226 && echo "stack ALL=(ALL) NOPASSWD:ALL" \ |
|
| 207 |
+ > /etc/sudoers.d/50_stack_sh ) |
|
| 208 |
+EOF |
|
| 209 |
+fi |
|
| 210 |
+ |
|
| 211 |
+# Run stack.sh |
|
| 212 |
+cat > $vm_dir/uec/user-data<<EOF |
|
| 190 | 213 |
./stack.sh |
| 191 | 214 |
EOF |
| 192 | 215 |
|
| ... | ... |
@@ -1,3 +1,8 @@ |
| 1 | 1 |
#!/bin/bash |
| 2 |
+# Echo commands, exit on error |
|
| 3 |
+set -o xtrace |
|
| 4 |
+set -o errexit |
|
| 2 | 5 |
|
| 3 |
-echo "$0 SUCCESS!" |
|
| 6 |
+TOP_DIR=$(cd ../../.. && pwd) |
|
| 7 |
+HEAD_IP=`cat $TOP_DIR/addresses | grep HEAD | cut -d "=" -f2` |
|
| 8 |
+ssh stack@$HEAD_IP 'cd devstack && source openrc && cd exercises && ./euca.sh' |
| ... | ... |
@@ -10,6 +10,13 @@ if [[ $EUID -ne 0 ]]; then |
| 10 | 10 |
exit 1 |
| 11 | 11 |
fi |
| 12 | 12 |
|
| 13 |
+# Make sure user has configured an ssh pubkey |
|
| 14 |
+if [ ! -e /root/.ssh/id_rsa.pub ]; then |
|
| 15 |
+ echo "Public key is missing. This is used to ssh into your instances." |
|
| 16 |
+ echo "Please run ssh-keygen before proceeding" |
|
| 17 |
+ exit 1 |
|
| 18 |
+fi |
|
| 19 |
+ |
|
| 13 | 20 |
# This directory |
| 14 | 21 |
CUR_DIR=$(cd $(dirname "$0") && pwd) |
| 15 | 22 |
|
| ... | ... |
@@ -49,10 +49,6 @@ grep -q "^#includedir.*/etc/sudoers.d" $STAGING_DIR/etc/sudoers || |
| 49 | 49 |
cp $TOP_DIR/files/sudo/* $STAGING_DIR/etc/sudoers.d/ |
| 50 | 50 |
sed -e "s,%USER%,$USER,g" -i $STAGING_DIR/etc/sudoers.d/* |
| 51 | 51 |
|
| 52 |
-# and has sudo ability (in the future this should be limited to only what |
|
| 53 |
-# stack requires) |
|
| 54 |
-echo "stack ALL=(ALL) NOPASSWD: ALL" >> $STAGING_DIR/etc/sudoers |
|
| 55 |
- |
|
| 56 | 52 |
# Gracefully cp only if source file/dir exists |
| 57 | 53 |
function cp_it {
|
| 58 | 54 |
if [ -e $1 ] || [ -d $1 ]; then |