From 34a713afe35efb83c860ef366d587cbd0dd4f791 Mon Sep 17 00:00:00 2001 From: Ryan Brady Date: Wed, 19 Feb 2014 08:32:18 -0500 Subject: [PATCH] Adds nfs-server element This patch adds an element that installs and configures nfs services for testing the cinder nfs backend in an environment where no nfs services are present (e.g. CI) When added to an image, this element creates a directory at /mnt/state/var/lib/nfs and shares it to each node of the overcloud. This patch that handles the package mapping in diskimage-builder needs to be applied first: https://review.openstack.org/#/c/76398/. Change-Id: I4c425af64b866caa80b32b808e8a3b97d71ca81d --- elements/nfs-server/README.md | 9 +++++++++ elements/nfs-server/element-deps | 4 ++++ elements/nfs-server/install.d/68-nfs-server | 4 ++++ elements/nfs-server/os-apply-config/etc/exports | 3 +++ .../os-refresh-config/post-configure.d/74-nfs-server | 7 +++++++ .../os-refresh-config/pre-configure.d/97-nfs-iptables | 9 +++++++++ 6 files changed, 36 insertions(+) create mode 100644 elements/nfs-server/README.md create mode 100644 elements/nfs-server/element-deps create mode 100755 elements/nfs-server/install.d/68-nfs-server create mode 100644 elements/nfs-server/os-apply-config/etc/exports create mode 100755 elements/nfs-server/os-refresh-config/post-configure.d/74-nfs-server create mode 100755 elements/nfs-server/os-refresh-config/pre-configure.d/97-nfs-iptables diff --git a/elements/nfs-server/README.md b/elements/nfs-server/README.md new file mode 100644 index 000000000..08e5ddf2a --- /dev/null +++ b/elements/nfs-server/README.md @@ -0,0 +1,9 @@ +##nfs-server + +This element installs and configures nfs services for testing the +cinder nfs backend in an environment where no nfs services are +present (i.e. CI) + +When added to an image, this element creates a directory at +/mnt/state/var/lib/nfs and shares it to each node on the +overcloud. \ No newline at end of file diff --git a/elements/nfs-server/element-deps b/elements/nfs-server/element-deps new file mode 100644 index 000000000..a35cfdb7c --- /dev/null +++ b/elements/nfs-server/element-deps @@ -0,0 +1,4 @@ +iptables +os-apply-config +os-refresh-config +os-svc-install diff --git a/elements/nfs-server/install.d/68-nfs-server b/elements/nfs-server/install.d/68-nfs-server new file mode 100755 index 000000000..8bc392e07 --- /dev/null +++ b/elements/nfs-server/install.d/68-nfs-server @@ -0,0 +1,4 @@ +#!/bin/bash +set -eu + +install-packages nfs-kernel-server \ No newline at end of file diff --git a/elements/nfs-server/os-apply-config/etc/exports b/elements/nfs-server/os-apply-config/etc/exports new file mode 100644 index 000000000..4ec7cb96a --- /dev/null +++ b/elements/nfs-server/os-apply-config/etc/exports @@ -0,0 +1,3 @@ +{{#nfs_server.shares}} +/mnt/state/var/lib/nfs {{.}}(rw,async,no_root_squash) +{{/nfs_server.shares}} \ No newline at end of file diff --git a/elements/nfs-server/os-refresh-config/post-configure.d/74-nfs-server b/elements/nfs-server/os-refresh-config/post-configure.d/74-nfs-server new file mode 100755 index 000000000..21cdd1255 --- /dev/null +++ b/elements/nfs-server/os-refresh-config/post-configure.d/74-nfs-server @@ -0,0 +1,7 @@ +#!/bin/bash +set -eu + +[ -d /mnt/state/var/lib/nfs ] || install -d -m 0770 -o root -g root /mnt/state/var/lib/nfs +os-svc-enable -n nfs-server +os-svc-restart -n nfs-server +exportfs -a -r -v diff --git a/elements/nfs-server/os-refresh-config/pre-configure.d/97-nfs-iptables b/elements/nfs-server/os-refresh-config/pre-configure.d/97-nfs-iptables new file mode 100755 index 000000000..1b301a47d --- /dev/null +++ b/elements/nfs-server/os-refresh-config/pre-configure.d/97-nfs-iptables @@ -0,0 +1,9 @@ +#!/bin/bash +set -eu + +add-rule INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT +add-rule INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT +add-rule INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT +add-rule INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT +add-rule INPUT -m state --state NEW -m tcp -p tcp --dport 20048 -j ACCEPT +add-rule INPUT -m state --state NEW -m udp -p udp --dport 20048 -j ACCEPT \ No newline at end of file