From bb1c9f29eb8f96d7598e00db51028466092fce10 Mon Sep 17 00:00:00 2001 From: LinuxSquare Date: Thu, 22 Feb 2024 20:33:44 +0100 Subject: [PATCH] Add haproxy --- apps/generate-motd/init.sls | 1 - apps/noveriablcgen/init.sls | 1 - haproxy/files/haproxy_rcscript.initd.jinja | 56 ++++++++++++++++++++++ haproxy/init.sls | 3 ++ haproxy/map.jinja | 5 ++ haproxy/pkg.sls | 30 ++++++++++++ haproxy/service.sls | 9 ++++ network/files/network_loopback | 5 ++ network/init.sls | 21 ++++++++ nginx/files/matrix.conf | 2 +- podman/apps/certpod/init.sls | 4 ++ podman/apps/pms-cli/init.sls | 1 - podman/apps/poddoc/init.sls | 1 - top.sls | 1 + 14 files changed, 135 insertions(+), 5 deletions(-) create mode 100644 haproxy/files/haproxy_rcscript.initd.jinja create mode 100644 haproxy/init.sls create mode 100644 haproxy/map.jinja create mode 100644 haproxy/pkg.sls create mode 100644 haproxy/service.sls create mode 100644 network/files/network_loopback create mode 100644 podman/apps/certpod/init.sls diff --git a/apps/generate-motd/init.sls b/apps/generate-motd/init.sls index b52acb5..8ff6c34 100644 --- a/apps/generate-motd/init.sls +++ b/apps/generate-motd/init.sls @@ -2,7 +2,6 @@ include: - directories - - system.base apps_generate-motd_git: git.latest: diff --git a/apps/noveriablcgen/init.sls b/apps/noveriablcgen/init.sls index 3afa967..698ff40 100644 --- a/apps/noveriablcgen/init.sls +++ b/apps/noveriablcgen/init.sls @@ -2,7 +2,6 @@ include: - directories - - system.base apps_noveriablcgen_git: git.latest: diff --git a/haproxy/files/haproxy_rcscript.initd.jinja b/haproxy/files/haproxy_rcscript.initd.jinja new file mode 100644 index 0000000..8938e29 --- /dev/null +++ b/haproxy/files/haproxy_rcscript.initd.jinja @@ -0,0 +1,56 @@ +#!/sbin/openrc-run +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-proxy/haproxy/files/haproxy.initd-r1,v 1.2 2011/12/04 10:32:32 swegener Exp $ + +# This is file is managed by salt (state: {{ sls }}) + +extra_commands="checkconfig" +extra_started_commands="reload" +command=/usr/sbin/haproxy + +CONF=${HAPROXY_CONF:-/etc/haproxy/${SVCNAME}.cfg} +CONF_DIR=${HAPROXY_CONF_DIR:-{{ conf_dir }}} +PIDFILE=/var/run/${SVCNAME}.pid + +depend() { + need net + after firewall + use dns logger +} + +checkconfig() { + if [ ! -f "${CONF}" ] && [ ! -d "${CONF}" ]; then + eerror "${CONF} does not exist!" + return 1 + fi + + ebegin "Checking ${CONF}" + $command -q -c -f "${CONF}" + eend $? +} + +start() { + ebegin "Starting ${SVCNAME}" + start-stop-daemon --pidfile "${PIDFILE}" --exec $command \ + --start -- -D -p "${PIDFILE}" -f "${CONF}" -f "${CONF_DIR}" + eend $? +} + +stop() { + ebegin "Stopping ${SVCNAME}" + + if [ "${RC_CMD}" = "restart" ]; then + checkconfig || return 1 + fi + + start-stop-daemon --stop --pidfile "${PIDFILE}" + eend $? +} + +reload() { + ebegin "Reloading ${SVCNAME}" + checkconfig || { eerror "Reloading failed, please fix your ${CONF} first"; return 1; } + $command -D -p "${PIDFILE}" -f "${CONF}" -f "${CONF_DIR}" -sf $(cat "${PIDFILE}") + eend $? +} diff --git a/haproxy/init.sls b/haproxy/init.sls new file mode 100644 index 0000000..208d9a5 --- /dev/null +++ b/haproxy/init.sls @@ -0,0 +1,3 @@ +include: + - .pkg + - .service diff --git a/haproxy/map.jinja b/haproxy/map.jinja new file mode 100644 index 0000000..b487f5a --- /dev/null +++ b/haproxy/map.jinja @@ -0,0 +1,5 @@ +{% set dir = '/etc/haproxy' %} + +{% set haproxy = { + 'conf_dir': '%s/conf.d' % dir, +}%} diff --git a/haproxy/pkg.sls b/haproxy/pkg.sls new file mode 100644 index 0000000..efe6b4a --- /dev/null +++ b/haproxy/pkg.sls @@ -0,0 +1,30 @@ +{% from tpldir+"/map.jinja" import haproxy with context %} + +haproxy_pkg_pkgs: + pkg.installed: + - pkgs: + - haproxy + +haproxy_pkg_conf_dir: + file.directory: + - name: /etc/haproxy/conf.d + - user: root + - group: root + - file_mode: '0644' + - dir_mode: '0755' + - require: + - haproxy_pkg_pkgs + +haproxy_pkg_rc_script: + file.managed: + - name: /etc/init.d/haproxy + - source: salt://{{ tpldir }}/files/haproxy_rcscript.initd + - template: jinja + - context: + sls: {{ sls }} + conf_dir: {{ haproxy.conf_dir }} + - user: root + - group: root + - mode: '0755' + - require: + - haproxy_pkg_conf_dir diff --git a/haproxy/service.sls b/haproxy/service.sls new file mode 100644 index 0000000..6ec2ac2 --- /dev/null +++ b/haproxy/service.sls @@ -0,0 +1,9 @@ +include: + - .pkg + +haproxy_service_running: + service.running: + - name: haproxy + - enable: True + - require: + - haproxy_pkg_rc_script diff --git a/network/files/network_loopback b/network/files/network_loopback new file mode 100644 index 0000000..5919287 --- /dev/null +++ b/network/files/network_loopback @@ -0,0 +1,5 @@ +auto lo +iface lo inet loopback +iface lo inet static + address 127.0.0.2/24 + broadcast 0.0.0.0 diff --git a/network/init.sls b/network/init.sls index cb74da2..e08ef0c 100644 --- a/network/init.sls +++ b/network/init.sls @@ -12,6 +12,26 @@ network_interfaces: - require: - system_base_pkgs +network_interfaces_dir: + file.directory: + - name: /etc/network/interfaces.d + - user: root + - group: root + - dir_mode: '0755' + - file_mode: '0644' + - require: + - system_base_pkgs + +network_loopback_interfaces: + file.managed: + - name: /etc/network/interfaces.d/loopback + - source: salt://{{ tpldir }}/files/network_loopback + - user: root + - group: root + - mode: '0644' + - require: + - network_interfaces_dir + network_service_reload: service.running: - name: networking @@ -19,3 +39,4 @@ network_service_reload: - reload: True - watch: - network_interfaces + - network_loopback_interfaces diff --git a/nginx/files/matrix.conf b/nginx/files/matrix.conf index c509dd6..20f5800 100644 --- a/nginx/files/matrix.conf +++ b/nginx/files/matrix.conf @@ -11,6 +11,6 @@ server { proxy_set_header Host $host; client_max_body_size 50M; - proxy_http_version 1.1 + proxy_http_version 1.1; } } diff --git a/podman/apps/certpod/init.sls b/podman/apps/certpod/init.sls new file mode 100644 index 0000000..feb67f2 --- /dev/null +++ b/podman/apps/certpod/init.sls @@ -0,0 +1,4 @@ +{% from "map.jinja" import noveria with context %} + +include: + - directories diff --git a/podman/apps/pms-cli/init.sls b/podman/apps/pms-cli/init.sls index edfd4cd..4af8cea 100644 --- a/podman/apps/pms-cli/init.sls +++ b/podman/apps/pms-cli/init.sls @@ -2,7 +2,6 @@ include: - directories - - system.base podman_apps_pms-cli_git: git.latest: diff --git a/podman/apps/poddoc/init.sls b/podman/apps/poddoc/init.sls index 35dec51..e257a00 100644 --- a/podman/apps/poddoc/init.sls +++ b/podman/apps/poddoc/init.sls @@ -2,7 +2,6 @@ include: - directories - - system.base podman_apps_poddoc_git: git.latest: diff --git a/top.sls b/top.sls index de83a2b..08766ed 100644 --- a/top.sls +++ b/top.sls @@ -5,3 +5,4 @@ base: - network - apps - openssh + - haproxy