diff options
Diffstat (limited to 'openstack-ironic.configure')
-rw-r--r-- | openstack-ironic.configure | 86 |
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" |