Browse code

Merge "Xen: support Ubuntu Xenial for xen DevStack"

Jenkins authored on 2017/02/26 12:41:50
Showing 4 changed files
... ...
@@ -96,48 +96,27 @@ mkdir -p $STAGING_DIR/opt/stack/devstack
96 96
 tar xf /tmp/devstack.tar -C $STAGING_DIR/opt/stack/devstack
97 97
 cd $TOP_DIR
98 98
 
99
-# Create an upstart job (task) for devstack, which can interact with the console
100
-cat >$STAGING_DIR/etc/init/devstack.conf << EOF
101
-start on stopped rc RUNLEVEL=[2345]
102
-
103
-console output
104
-task
105
-
106
-pre-start script
107
-    rm -f /opt/stack/runsh.succeeded
108
-end script
109
-
110
-script
111
-    initctl stop hvc0 || true
112
-
113
-    # Read any leftover characters from standard input
114
-    while read -n 1 -s -t 0.1 -r ignored; do
115
-        true
116
-    done
117
-
118
-    clear
119
-
120
-    chown -R $STACK_USER /opt/stack
121
-
122
-    su -c "/opt/stack/run.sh" $STACK_USER
123
-
124
-    # Update /etc/issue
125
-    {
126
-        echo "OpenStack VM - Installed by DevStack"
127
-        IPADDR=\$(ip -4 address show eth0 | sed -n 's/.*inet \\([0-9\.]\\+\\).*/\1/p')
128
-        echo "  Management IP:   \$IPADDR"
129
-        echo -n "  Devstack run:    "
130
-        if [ -e /opt/stack/runsh.succeeded ]; then
131
-            echo "SUCCEEDED"
132
-        else
133
-            echo "FAILED"
134
-        fi
135
-        echo ""
136
-    } > /etc/issue
137
-    initctl start hvc0 > /dev/null 2>&1
138
-end script
99
+# Create an systemd task for devstack
100
+cat >$STAGING_DIR/etc/systemd/system/devstack.service << EOF
101
+[Unit]
102
+Description=Install OpenStack by DevStack
103
+
104
+[Service]
105
+Type=oneshot
106
+RemainAfterExit=yes
107
+ExecStartPre=/bin/rm -f /opt/stack/runsh.succeeded
108
+ExecStart=/bin/su -c "/opt/stack/run.sh" stack
109
+StandardOutput=tty
110
+StandardError=tty
111
+
112
+[Install]
113
+WantedBy=multi-user.target
114
+
139 115
 EOF
140 116
 
117
+# enable this service
118
+ln -s $STAGING_DIR/etc/systemd/system/devstack.service $STAGING_DIR/etc/systemd/system/multi-user.target.wants/devstack.service
119
+
141 120
 # Configure the hostname
142 121
 echo $GUEST_NAME > $STAGING_DIR/etc/hostname
143 122
 
... ...
@@ -178,6 +157,8 @@ set -eux
178 178
 (
179 179
   flock -n 9 || exit 1
180 180
 
181
+  sudo chown -R stack /opt/stack
182
+
181 183
   [ -e /opt/stack/runsh.succeeded ] && rm /opt/stack/runsh.succeeded
182 184
   echo \$\$ >> /opt/stack/run_sh.pid
183 185
 
... ...
@@ -187,7 +168,24 @@ set -eux
187 187
 
188 188
   # Got to the end - success
189 189
   touch /opt/stack/runsh.succeeded
190
+
191
+  # Update /etc/issue
192
+  (
193
+      echo "OpenStack VM - Installed by DevStack"
194
+      IPADDR=$(ip -4 address show eth0 | sed -n 's/.*inet \([0-9\.]\+\).*/\1/p')
195
+      echo "  Management IP:   $IPADDR"
196
+      echo -n "  Devstack run:    "
197
+      if [ -e /opt/stack/runsh.succeeded ]; then
198
+          echo "SUCCEEDED"
199
+      else
200
+          echo "FAILED"
201
+      fi
202
+      echo ""
203
+  ) > /opt/stack/issue
204
+  sudo cp /opt/stack/issue /etc/issue
205
+
190 206
   rm /opt/stack/run_sh.pid
191 207
 ) 9> /opt/stack/.runsh_lock
192 208
 EOF
209
+
193 210
 chmod 755 $STAGING_DIR/opt/stack/run.sh
... ...
@@ -424,7 +424,7 @@ else
424 424
     echo "looking at the console of your domU / checking the log files."
425 425
     echo ""
426 426
     echo "ssh into your domU now: 'ssh stack@$OS_VM_MANAGEMENT_ADDRESS' using your password"
427
-    echo "and then do: 'sudo service devstack status' to check if devstack is still running."
427
+    echo "and then do: 'sudo systemctl status devstack' to check if devstack is still running."
428 428
     echo "Check that /opt/stack/runsh.succeeded exists"
429 429
     echo ""
430 430
     echo "When devstack completes, you can visit the OpenStack Dashboard"
... ...
@@ -50,7 +50,7 @@ disk_size=$(($OSDOMU_VDI_GB * 1024 * 1024 * 1024))
50 50
 # however these need to be answered before the netinstall
51 51
 # is ready to fetch the preseed file, and as such must be here
52 52
 # to get a fully automated install
53
-pvargs="-- quiet console=hvc0 partman/default_filesystem=ext3 \
53
+pvargs="quiet console=hvc0 partman/default_filesystem=ext3 \
54 54
 console-setup/ask_detect=false locale=${UBUNTU_INST_LOCALE} \
55 55
 keyboard-configuration/layoutcode=${UBUNTU_INST_KEYBOARD} \
56 56
 netcfg/choose_interface=eth0 \
... ...
@@ -63,8 +63,8 @@ PUB_IP=${PUB_IP:-172.24.4.10}
63 63
 PUB_NETMASK=${PUB_NETMASK:-255.255.255.0}
64 64
 
65 65
 # Ubuntu install settings
66
-UBUNTU_INST_RELEASE="trusty"
67
-UBUNTU_INST_TEMPLATE_NAME="Ubuntu 14.04 (64-bit) for DevStack"
66
+UBUNTU_INST_RELEASE="xenial"
67
+UBUNTU_INST_TEMPLATE_NAME="Ubuntu 16.04 (64-bit) for DevStack"
68 68
 # For 12.04 use "precise" and update template name
69 69
 # However, for 12.04, you should be using
70 70
 # XenServer 6.1 and later or XCP 1.6 or later