diff --git a/elements/geard/README.md b/elements/geard/README.md new file mode 100644 index 000000000..97189ce1d --- /dev/null +++ b/elements/geard/README.md @@ -0,0 +1,4 @@ +Element to install gear and run geard + +geard is a python implementation of the gearman protocol server +https://pypi.python.org/pypi/gear diff --git a/elements/geard/element-deps b/elements/geard/element-deps new file mode 100644 index 000000000..6fee94ec1 --- /dev/null +++ b/elements/geard/element-deps @@ -0,0 +1,2 @@ +os-svc-install +os-refresh-config diff --git a/elements/geard/install.d/44-geard b/elements/geard/install.d/44-geard new file mode 100755 index 000000000..a1cd186b0 --- /dev/null +++ b/elements/geard/install.d/44-geard @@ -0,0 +1,12 @@ +#!/bin/bash +set -eux + +install-packages python-virtualenv + +mkdir -p /opt/stack/venvs +virtualenv /opt/stack/venvs/gear + +/opt/stack/venvs/gear/bin/pip install gear + +useradd gear +os-svc-daemon -n geard -u gear -c geard -- -d diff --git a/elements/geard/os-refresh-config/pre-configure.d/97-gearman-iptables b/elements/geard/os-refresh-config/pre-configure.d/97-gearman-iptables new file mode 100755 index 000000000..cb1adb477 --- /dev/null +++ b/elements/geard/os-refresh-config/pre-configure.d/97-gearman-iptables @@ -0,0 +1,30 @@ +#!/bin/bash +set -eu + +OK=/opt/stack/gearman-iptables.ok + +if [ -e $OK ] ; then + exit 0 +fi + +DISTRO=`lsb_release -si` || true + +if [[ "Fedora" = $DISTRO ]]; then + + # Check if the iptables service is active + if systemctl is-active iptables.service ; then + IPT_FILE=/etc/sysconfig/iptables + if [ -f $IPT_FILE ]; then + iptables-restore < $IPT_FILE + fi + + # Gearman server + iptables -I INPUT -p tcp --dport 4730 -j ACCEPT + + iptables-save > $IPT_FILE + + fi + +fi + +touch $OK