summaryrefslogtreecommitdiff
path: root/openstack-ironic.configure
diff options
context:
space:
mode:
Diffstat (limited to 'openstack-ironic.configure')
-rw-r--r--openstack-ironic.configure86
1 files changed, 86 insertions, 0 deletions
diff --git a/openstack-ironic.configure b/openstack-ironic.configure
new file mode 100644
index 00000000..91f52885
--- /dev/null
+++ b/openstack-ironic.configure
@@ -0,0 +1,86 @@
+#!/bin/bash
+
+# Copyright (C) 2014-2015 Codethink Limited
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+set -e
+
+ROOT="$1"
+
+##########################################################################
+# Substitutions in configuration files #
+##########################################################################
+
+cat <<EOF > "$ROOT"/etc/openstack-ironic-setup.sed
+s/##IRONIC_SERVICE_USER##/$IRONIC_SERVICE_USER/g
+s/##IRONIC_SERVICE_PASSWORD##/$IRONIC_SERVICE_PASSWORD/g
+s/##IRONIC_DB_USER##/$IRONIC_DB_USER/g
+s/##IRONIC_DB_PASSWORD##/$IRONIC_DB_PASSWORD/g
+s/##IRONIC_PUBLIC_URL##/$IRONIC_PUBLIC_URL/g
+s/##IRONIC_INTERNAL_URL##/$IRONIC_INTERNAL_URL/g
+s/##IRONIC_ADMIN_URL##/$IRONIC_ADMIN_URL/g
+s/##GLANCE_HOST##/$GLANCE_HOST/g
+s/##OPENSTACK_AUTH_HOST##/$OPENSTACK_AUTH_HOST/g
+s/##OPENSTACK_AUTH_PORT##/$OPENSTACK_AUTH_PORT/g
+s/##RABBITMQ_HOST##/$RABBITMQ_HOST/g
+s/##IDENTITY_URI##/$IDENTITY_URI/g
+
+EOF
+
+sed -f "$ROOT"/etc/openstack-ironic-setup.sed -i \
+ "$ROOT"/etc/ironic/ironic.conf \
+ "$ROOT"/usr/share/openstack/openstack-ironic-setup
+
+##########################################################################
+# Create the links to enable the ironic systemd services #
+##########################################################################
+
+services=("openstack-ironic-setup.service" \
+ "openstack-ironic-api.service" \
+ "openstack-ironic-conductor.service")
+
+for service in ${services[@]}; do
+ ln -sf "/etc/systemd/system/$service" \
+ "$ROOT/etc/systemd/system/multi-user.target.wants/$service"
+done
+
+
+##########################################################################
+# Configure the TFTP service #
+##########################################################################
+
+tftp_root="/srv/tftp_root"
+mkdir -p "$ROOT/$tftp_root"
+
+install -D /dev/stdin "$ROOT/usr/lib/systemd/system/tftp-hpa.service" <<EOF
+[Unit]
+Description=tftp service for booting kernels
+After=network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/udpsvd -E 0 69 /usr/sbin/in.tftpd --secure --map-file $tftp_root/map-file $tftp_root
+
+[Install]
+WantedBy=multi-user.target
+EOF
+
+ln -sf /usr/lib/systemd/system/tftp-hpa.service \
+ "$ROOT"/etc/systemd/system/multi-user.target.wants/tftp-hpa.service
+
+echo 'r ^([^/]) /tftpboot/\1' > "$ROOT/$tftp_root"/map-file
+echo 'r ^(/tftpboot/) /tftpboot/\2' >> "$ROOT/$tftp_root"/map-file
+
+cp "$ROOT"/usr/share/syslinux/pxelinux.0 "$ROOT/$tftp_root"