| ... | ... |
@@ -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 |