From ab997567a4420e39f8e04655e0a8e1876ce78b81 Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Fri, 3 Oct 2014 16:09:57 +0200 Subject: [PATCH 1/5] Add ironic-discoverd element --- elements/ironic-discoverd/README.md | 3 +++ elements/ironic-discoverd/element-deps | 2 ++ elements/ironic-discoverd/install.d/60-ironic-discoverd | 7 +++++++ .../os-apply-config/etc/ironic-discoverd/discoverd.conf | 5 +++++ 4 files changed, 17 insertions(+) create mode 100644 elements/ironic-discoverd/README.md create mode 100644 elements/ironic-discoverd/element-deps create mode 100644 elements/ironic-discoverd/install.d/60-ironic-discoverd create mode 100644 elements/ironic-discoverd/os-apply-config/etc/ironic-discoverd/discoverd.conf diff --git a/elements/ironic-discoverd/README.md b/elements/ironic-discoverd/README.md new file mode 100644 index 000000000..dfc9405af --- /dev/null +++ b/elements/ironic-discoverd/README.md @@ -0,0 +1,3 @@ +This an element for installing and configuring +[ironic-discoverd](https://pypi.python.org/pypi/ironic-discoverd) - +daemon for doing hardware parameters discovery using PXE and special ramdisk. diff --git a/elements/ironic-discoverd/element-deps b/elements/ironic-discoverd/element-deps new file mode 100644 index 000000000..c932e2538 --- /dev/null +++ b/elements/ironic-discoverd/element-deps @@ -0,0 +1,2 @@ +os-svc-install +os-apply-config diff --git a/elements/ironic-discoverd/install.d/60-ironic-discoverd b/elements/ironic-discoverd/install.d/60-ironic-discoverd new file mode 100644 index 000000000..a93dc0f6f --- /dev/null +++ b/elements/ironic-discoverd/install.d/60-ironic-discoverd @@ -0,0 +1,7 @@ +#!/bin/bash + +set -eux + +# TODO(dtantsur): replace with package +pip install ironic-discoverd +os-svc-deamon -n ironic-discoverd -i /usr -u root -c ironic-discoverd /etc/ironic-discoverd/discoverd.conf diff --git a/elements/ironic-discoverd/os-apply-config/etc/ironic-discoverd/discoverd.conf b/elements/ironic-discoverd/os-apply-config/etc/ironic-discoverd/discoverd.conf new file mode 100644 index 000000000..ba14b17d4 --- /dev/null +++ b/elements/ironic-discoverd/os-apply-config/etc/ironic-discoverd/discoverd.conf @@ -0,0 +1,5 @@ +[discoverd] +os_auth_url = http://{{keystone.host}}:5000/v2.0 +os_username = ironic +os_password = {{ironic.service-password}} +os_tenant_name = service From e249f45aeb1a5bd3d911d8f45dd29fbe40178368 Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Mon, 6 Oct 2014 10:52:20 +0000 Subject: [PATCH 2/5] Fixes for ironic-discoverd element based on real testing --- elements/ironic-discoverd/element-deps | 1 + elements/ironic-discoverd/install.d/60-ironic-discoverd | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) mode change 100644 => 100755 elements/ironic-discoverd/install.d/60-ironic-discoverd diff --git a/elements/ironic-discoverd/element-deps b/elements/ironic-discoverd/element-deps index c932e2538..3aaa11b1e 100644 --- a/elements/ironic-discoverd/element-deps +++ b/elements/ironic-discoverd/element-deps @@ -1,2 +1,3 @@ os-svc-install os-apply-config +os-refresh-config diff --git a/elements/ironic-discoverd/install.d/60-ironic-discoverd b/elements/ironic-discoverd/install.d/60-ironic-discoverd old mode 100644 new mode 100755 index a93dc0f6f..772ac73f4 --- a/elements/ironic-discoverd/install.d/60-ironic-discoverd +++ b/elements/ironic-discoverd/install.d/60-ironic-discoverd @@ -4,4 +4,5 @@ set -eux # TODO(dtantsur): replace with package pip install ironic-discoverd -os-svc-deamon -n ironic-discoverd -i /usr -u root -c ironic-discoverd /etc/ironic-discoverd/discoverd.conf +os-svc-daemon -n ironic-discoverd -i /usr -u root -c ironic-discoverd /etc/ironic-discoverd/discoverd.conf +install -d -m 0750 -o root -g root /etc/ironic-discoverd From 477135ef6736d5482e2e60cb375998f67a60aec3 Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Mon, 6 Oct 2014 11:12:16 +0000 Subject: [PATCH 3/5] Replace discovery-dhcp with ironic-discoverd --- .../install.d/50-discovery-dnsmasq | 37 +++++++++++++++++++ .../install.d/60-ironic-discoverd | 4 +- .../post-configure.d/50-restart-discovery | 9 +++++ json-files/fedora-20-undercloud-delorean.json | 2 +- json-files/fedora-20-undercloud-source.json | 2 +- 5 files changed, 51 insertions(+), 3 deletions(-) create mode 100755 elements/ironic-discoverd/install.d/50-discovery-dnsmasq create mode 100755 elements/ironic-discoverd/os-refresh-config/post-configure.d/50-restart-discovery diff --git a/elements/ironic-discoverd/install.d/50-discovery-dnsmasq b/elements/ironic-discoverd/install.d/50-discovery-dnsmasq new file mode 100755 index 000000000..62e690874 --- /dev/null +++ b/elements/ironic-discoverd/install.d/50-discovery-dnsmasq @@ -0,0 +1,37 @@ +#!/bin/bash +# just starts the discovery dnsmasq process +set -eux + +# TODO(marios): add systemd Environment or EnvironmentFile and upstart +# env for IFACE and DISCOVERY_POOL +# IFACE=br-ctlplane +# DISCOVERY_POOL=192.0.2.100,192.0.2.120 + +install-packages dnsmasq dnsmasq-utils +# make sure tftpboot is labelled correctly +mkdir -p /tftpboot +restorecon -R /tftpboot +cat > /lib/systemd/system/discovery-dhcp-dnsmasq.service << eof +[Unit] +Description=Discovery dhcp dnsmasq service +After=openvswitch.service + +[Service] +Type=forking +ExecStart=/sbin/dnsmasq --conf-file= \\ + --port=0 \\ + --enable-tftp \\ + --tftp-root=/tftpboot \\ + --dhcp-boot=pxelinux.0,localhost.localdomain,192.0.2.1 \\ + --bind-interfaces \\ + --pid-file=/var/run/dnsmasq.pid \\ + --interface=br-ctlplane \\ + --dhcp-range=192.0.2.100,192.0.2.120,29 + +[Install] +WantedBy=multi-user.target +Alias=discovery-dhcp-dnsmasq.service +eof + +# Enable the service +os-svc-enable -n discovery-dhcp-dnsmasq diff --git a/elements/ironic-discoverd/install.d/60-ironic-discoverd b/elements/ironic-discoverd/install.d/60-ironic-discoverd index 772ac73f4..7933f8074 100755 --- a/elements/ironic-discoverd/install.d/60-ironic-discoverd +++ b/elements/ironic-discoverd/install.d/60-ironic-discoverd @@ -2,7 +2,9 @@ set -eux -# TODO(dtantsur): replace with package pip install ironic-discoverd os-svc-daemon -n ironic-discoverd -i /usr -u root -c ironic-discoverd /etc/ironic-discoverd/discoverd.conf install -d -m 0750 -o root -g root /etc/ironic-discoverd + +# Enable the service +os-svc-enable -n ironic-discoverd diff --git a/elements/ironic-discoverd/os-refresh-config/post-configure.d/50-restart-discovery b/elements/ironic-discoverd/os-refresh-config/post-configure.d/50-restart-discovery new file mode 100755 index 000000000..5590f14a4 --- /dev/null +++ b/elements/ironic-discoverd/os-refresh-config/post-configure.d/50-restart-discovery @@ -0,0 +1,9 @@ +#!/bin/bash +# (re)starts the discovery dnsmasq process. This is just for +# plumbing... there is currently no configuration (eventually use +# os-apply-config to get a dnsmasq.conf) + +set -eux + +os-svc-restart -n discovery-dhcp-dnsmasq +os-svc-restart -n ironic-discoverd diff --git a/json-files/fedora-20-undercloud-delorean.json b/json-files/fedora-20-undercloud-delorean.json index 4a90f7edb..2052b4c30 100644 --- a/json-files/fedora-20-undercloud-delorean.json +++ b/json-files/fedora-20-undercloud-delorean.json @@ -46,7 +46,7 @@ "tuskar-ui", "glance-wsme", "dib-run-parts-update", - "discovery-dhcp", + "ironic-discoverd", "element-manifest", "tuskar" ], diff --git a/json-files/fedora-20-undercloud-source.json b/json-files/fedora-20-undercloud-source.json index 291a8a6c4..736452e62 100644 --- a/json-files/fedora-20-undercloud-source.json +++ b/json-files/fedora-20-undercloud-source.json @@ -42,7 +42,7 @@ "ceilometer-undercloud-config", "tuskar-ui", "dib-run-parts-update", - "discovery-dhcp", + "ironic-discoverd", "element-manifest", "tuskar" ], From 6d3c5d685938d76b93442ef5bfae8867b14faf8a Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Mon, 6 Oct 2014 14:34:07 +0200 Subject: [PATCH 4/5] Move default PXE configuration to ironic-discoverd --- .../ironic-discoverd/install.d/60-ironic-discoverd | 1 + .../os-apply-config/tftpboot/pxelinux.cfg/default | 7 +++++++ scripts/instack-prepare-discovery | 11 ----------- 3 files changed, 8 insertions(+), 11 deletions(-) create mode 100644 elements/ironic-discoverd/os-apply-config/tftpboot/pxelinux.cfg/default diff --git a/elements/ironic-discoverd/install.d/60-ironic-discoverd b/elements/ironic-discoverd/install.d/60-ironic-discoverd index 7933f8074..4e52cefd7 100755 --- a/elements/ironic-discoverd/install.d/60-ironic-discoverd +++ b/elements/ironic-discoverd/install.d/60-ironic-discoverd @@ -5,6 +5,7 @@ set -eux pip install ironic-discoverd os-svc-daemon -n ironic-discoverd -i /usr -u root -c ironic-discoverd /etc/ironic-discoverd/discoverd.conf install -d -m 0750 -o root -g root /etc/ironic-discoverd +install -d -m 0755 -o ironic -g ironic /tftpboot/pxelinux.cfg # Enable the service os-svc-enable -n ironic-discoverd diff --git a/elements/ironic-discoverd/os-apply-config/tftpboot/pxelinux.cfg/default b/elements/ironic-discoverd/os-apply-config/tftpboot/pxelinux.cfg/default new file mode 100644 index 000000000..2093566fc --- /dev/null +++ b/elements/ironic-discoverd/os-apply-config/tftpboot/pxelinux.cfg/default @@ -0,0 +1,7 @@ +default discover + +label discover +kernel discovery.kernel +append initrd=discovery.ramdisk ironic_callback_url=http://{{local-ipv4}}:5050/v1/continue +ipappend 3 + diff --git a/scripts/instack-prepare-discovery b/scripts/instack-prepare-discovery index 6139ede3d..1a8994dfc 100755 --- a/scripts/instack-prepare-discovery +++ b/scripts/instack-prepare-discovery @@ -24,14 +24,3 @@ mkdir -p "$TFTP_ROOT" glance image-download --file "$TFTP_ROOT/discovery.kernel" discovery-kernel glance image-download --file "$TFTP_ROOT/discovery.ramdisk" discovery-ramdisk - -mkdir -p "$TFTP_ROOT/pxelinux.cfg" - -cat > "$TFTP_ROOT/pxelinux.cfg/default" < Date: Mon, 6 Oct 2014 16:18:43 +0200 Subject: [PATCH 5/5] ironic-discoverd is expected to start after keystone --- .../{50-restart-discovery => 99-restart-discovery} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename elements/ironic-discoverd/os-refresh-config/post-configure.d/{50-restart-discovery => 99-restart-discovery} (100%) diff --git a/elements/ironic-discoverd/os-refresh-config/post-configure.d/50-restart-discovery b/elements/ironic-discoverd/os-refresh-config/post-configure.d/99-restart-discovery similarity index 100% rename from elements/ironic-discoverd/os-refresh-config/post-configure.d/50-restart-discovery rename to elements/ironic-discoverd/os-refresh-config/post-configure.d/99-restart-discovery