diff options
author | Tiago Gomes <tiago.gomes@codethink.co.uk> | 2015-04-01 09:04:02 +0000 |
---|---|---|
committer | Tiago Gomes <tiago.gomes@codethink.co.uk> | 2015-04-09 16:58:16 +0000 |
commit | 0099f4fa9ff7db3eccb73b929cb5a49999cae462 (patch) | |
tree | e3f49b9335b0a3e2a3871b46c56ac2f6a068c370 /openstack-ironic.configure | |
parent | b1412cf0e6263ac7b939396c867007d2db695082 (diff) | |
download | definitions-baserock/tiagogomes/openstack-v6/ironic.tar.gz |
Configure Ironicbaserock/tiagogomes/openstack-v6/ironic
Diffstat (limited to 'openstack-ironic.configure')
-rw-r--r-- | openstack-ironic.configure | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/openstack-ironic.configure b/openstack-ironic.configure new file mode 100644 index 00000000..57c57266 --- /dev/null +++ b/openstack-ironic.configure @@ -0,0 +1,87 @@ +#!/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_HOST##/$IRONIC_HOST/g +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/" # trailing slash is essential +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 -v -v -v -v -v --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 ^([^/]) $tftp_root\1" > "$ROOT/$tftp_root"/map-file +echo "r ^/tftpboot/ $tftp_root\2" >> "$ROOT/$tftp_root"/map-file + +cp "$ROOT"/usr/share/syslinux/pxelinux.0 "$ROOT/$tftp_root" |