initial commit
This commit is contained in:
commit
69f5baba5b
17 changed files with 615 additions and 0 deletions
61
.kitchen.yml
Normal file
61
.kitchen.yml
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
---
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
use_sudo: false
|
||||||
|
privileged: true
|
||||||
|
require_chef_omnibus: false
|
||||||
|
|
||||||
|
verifier:
|
||||||
|
name: inspec
|
||||||
|
inspec_tests:
|
||||||
|
- test/integration/fabio/inspec
|
||||||
|
|
||||||
|
platforms:
|
||||||
|
- name: ubuntu-14.04
|
||||||
|
driver_config:
|
||||||
|
disable_upstart: false
|
||||||
|
image: ubuntu-upstart:14.04
|
||||||
|
run_command: /sbin/init
|
||||||
|
|
||||||
|
- name: debian-9.4
|
||||||
|
driver_config:
|
||||||
|
run_command: /bin/systemd
|
||||||
|
|
||||||
|
- name: ubuntu-16.04
|
||||||
|
driver_config:
|
||||||
|
run_command: /sbin/init
|
||||||
|
|
||||||
|
- name: centos-7
|
||||||
|
driver_config:
|
||||||
|
run_command: /usr/lib/systemd/systemd
|
||||||
|
|
||||||
|
provisioner:
|
||||||
|
name: salt_solo
|
||||||
|
#log_level: quiet
|
||||||
|
require_chef: false
|
||||||
|
formula: fabio
|
||||||
|
state_top:
|
||||||
|
base:
|
||||||
|
'*':
|
||||||
|
- fabio
|
||||||
|
pillars-from-files:
|
||||||
|
base.sls: pillar.example
|
||||||
|
pillars:
|
||||||
|
top.sls:
|
||||||
|
base:
|
||||||
|
'*':
|
||||||
|
- base
|
||||||
|
- fabio
|
||||||
|
fabio.sls:
|
||||||
|
fabio:
|
||||||
|
register: []
|
||||||
|
scripts: []
|
||||||
|
|
||||||
|
suites:
|
||||||
|
- name: fabio-server
|
||||||
|
provisioner:
|
||||||
|
pillars:
|
||||||
|
fabio.sls:
|
||||||
|
fabio:
|
||||||
|
config:
|
||||||
|
server: True
|
16
.travis.yml
Normal file
16
.travis.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
sudo: required
|
||||||
|
language: python
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- bundle install
|
||||||
|
|
||||||
|
env:
|
||||||
|
matrix:
|
||||||
|
- INSTANCE: consul-server-ubuntu-1404
|
||||||
|
- INSTANCE: consul-server-ubuntu-1604
|
||||||
|
- INSTANCE: consul-server-centos-7
|
||||||
|
|
||||||
|
script:
|
||||||
|
- bundle exec kitchen verify ${INSTANCE}
|
6
Gemfile
Normal file
6
Gemfile
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
gem "test-kitchen"
|
||||||
|
gem "kitchen-docker"
|
||||||
|
gem "kitchen-salt"
|
||||||
|
gem "kitchen-inspec"
|
13
LICENSE
Normal file
13
LICENSE
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Copyright (c) 2013-2015 Salt Stack Formulas
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
48
README.rst
Normal file
48
README.rst
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
======
|
||||||
|
fabio
|
||||||
|
======
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
See the full `Salt Formulas installation and usage instructions
|
||||||
|
<http://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html>`_.
|
||||||
|
|
||||||
|
Available states
|
||||||
|
================
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
:local:
|
||||||
|
|
||||||
|
``fabio``
|
||||||
|
------------
|
||||||
|
|
||||||
|
Installs and configures the fabio service.
|
||||||
|
|
||||||
|
``fabio.install``
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Downloads and installs the fabio binary file.
|
||||||
|
|
||||||
|
``fabio.config``
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Provision the fabio configuration files and sources.
|
||||||
|
|
||||||
|
``fabio.service``
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Adds the fabio service startup configuration or script to an operating system.
|
||||||
|
|
||||||
|
To start a service during Salt run and enable it at boot time, you need to set following Pillar:
|
||||||
|
|
||||||
|
.. code:: yaml
|
||||||
|
|
||||||
|
fabio:
|
||||||
|
service: True
|
||||||
|
|
||||||
|
``fabio-template``
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Installs and configures fabio template.
|
||||||
|
|
||||||
|
.. vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want sts=4 sw=4 et
|
43
fabio/config.sls
Normal file
43
fabio/config.sls
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{%- from slspath + '/map.jinja' import fabio with context -%}
|
||||||
|
|
||||||
|
fabio-config:
|
||||||
|
file.serialize:
|
||||||
|
- name: /etc/fabio/config.json
|
||||||
|
- formatter: json
|
||||||
|
- dataset: {{ fabio.config }}
|
||||||
|
- user: {{ fabio.user }}
|
||||||
|
- group: {{ fabio.group }}
|
||||||
|
- mode: 0640
|
||||||
|
- require:
|
||||||
|
- user: fabio-user
|
||||||
|
{%- if fabio.service %}
|
||||||
|
- watch_in:
|
||||||
|
- service: fabio
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
|
{% for script in fabio.scripts %}
|
||||||
|
fabio-script-install-{{ loop.index }}:
|
||||||
|
file.managed:
|
||||||
|
- source: {{ script.source }}
|
||||||
|
- name: {{ script.name }}
|
||||||
|
- template: jinja
|
||||||
|
- context: {{ script.get('context', {}) | yaml }}
|
||||||
|
- user: {{ fabio.user }}
|
||||||
|
- group: {{ fabio.group }}
|
||||||
|
- mode: 0755
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
fabio-script-config:
|
||||||
|
file.serialize:
|
||||||
|
- name: /etc/fabio.d/services.json
|
||||||
|
{% if fabio.service != False %}
|
||||||
|
- watch_in:
|
||||||
|
- service: fabio
|
||||||
|
{% endif %}
|
||||||
|
- user: {{ fabio.user }}
|
||||||
|
- group: {{ fabio.group }}
|
||||||
|
- require:
|
||||||
|
- user: fabio-user
|
||||||
|
- formatter: json
|
||||||
|
- dataset:
|
||||||
|
services: {{ fabio.register }}
|
22
fabio/defaults.yaml
Normal file
22
fabio/defaults.yaml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
fabio:
|
||||||
|
version: 1.5.9
|
||||||
|
goversion: 1.10.2
|
||||||
|
download_host: github.com
|
||||||
|
|
||||||
|
service: false
|
||||||
|
|
||||||
|
user: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
config:
|
||||||
|
server: false
|
||||||
|
bind_addr: 0.0.0.0
|
||||||
|
data_dir: /var/fabio
|
||||||
|
ui: true
|
||||||
|
enable_debug: false
|
||||||
|
log_level: info
|
||||||
|
retry_join: []
|
||||||
|
retry_interval: 30s
|
||||||
|
datacenter: "main"
|
||||||
|
register: []
|
||||||
|
scripts: []
|
0
fabio/files/config.json
Normal file
0
fabio/files/config.json
Normal file
15
fabio/files/fabio.service
Normal file
15
fabio/files/fabio.service
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[Unit]
|
||||||
|
Description=fabio
|
||||||
|
Wants=network.target
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
EnvironmentFile=-/etc/{% if grains['os_family'] == 'Debian' %}default{% else %}sysconfig{% endif %}/fabio
|
||||||
|
ExecStart=/usr/local/bin/fabio agent -config-dir=/etc/fabio.d
|
||||||
|
ExecReload=/bin/kill -HUP $MAINPID
|
||||||
|
KillSignal=TERM
|
||||||
|
User={{ user }}
|
||||||
|
Group={{ group }}
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
196
fabio/files/fabio.sysvinit
Normal file
196
fabio/files/fabio.sysvinit
Normal file
|
@ -0,0 +1,196 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# fabio Manage the fabio agent
|
||||||
|
#
|
||||||
|
# chkconfig: 2345 95 95
|
||||||
|
# description: fabio is a tool for service discovery and configuration
|
||||||
|
# processname: fabio
|
||||||
|
# config: /etc/fabio.conf
|
||||||
|
# pidfile: /var/run/fabio.pid
|
||||||
|
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: fabio
|
||||||
|
# Required-Start: $local_fs $network
|
||||||
|
# Required-Stop:
|
||||||
|
# Should-Start:
|
||||||
|
# Should-Stop:
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Manage the fabio agent
|
||||||
|
# Description: fabio is a tool for service discovery and configuration
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
# source function library
|
||||||
|
. /etc/rc.d/init.d/functions
|
||||||
|
|
||||||
|
prog="fabio"
|
||||||
|
exec="/usr/local/bin/$prog"
|
||||||
|
pidfile="/var/run/$prog.pid"
|
||||||
|
lockfile="/var/lock/subsys/$prog"
|
||||||
|
logfile="/var/log/$prog"
|
||||||
|
confdir="/etc/fabio.d"
|
||||||
|
|
||||||
|
# pull in sysconfig settings
|
||||||
|
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
|
||||||
|
|
||||||
|
user=${fabio_USER:-fabio}
|
||||||
|
group=${fabio_GROUP:-fabio}
|
||||||
|
|
||||||
|
export GOMAXPROCS=${GOMAXPROCS:-2}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
[ -x $exec ] || exit 5
|
||||||
|
|
||||||
|
[ -d $confdir ] || exit 6
|
||||||
|
|
||||||
|
umask 077
|
||||||
|
|
||||||
|
touch $logfile $pidfile
|
||||||
|
chown "$user:$group" $logfile $pidfile
|
||||||
|
|
||||||
|
echo -n $"Starting $prog: "
|
||||||
|
|
||||||
|
## holy shell shenanigans, batman!
|
||||||
|
## daemon can't be backgrounded. we need the pid of the spawned process,
|
||||||
|
## which is actually done via runuser thanks to --user.
|
||||||
|
## you can't do "cmd &; action" but you can do "{cmd &}; action".
|
||||||
|
## fabio 0.2.1 added -pid-file; although the following creates $pidfile
|
||||||
|
## owned by fabio:fabio, using -pid-file results in a permission error.
|
||||||
|
daemon \
|
||||||
|
--pidfile=$pidfile \
|
||||||
|
--user="$user" \
|
||||||
|
" { $exec agent -config-dir=$confdir &>> $logfile & } ; echo \$! >| $pidfile "
|
||||||
|
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
|
||||||
|
[ $RETVAL -eq 0 ] && touch $lockfile
|
||||||
|
|
||||||
|
echo -n $"Waiting for fabio ready: "
|
||||||
|
|
||||||
|
## wait up to 60s for the rpc port to become listened-upon
|
||||||
|
## fabio 0.2.1 got much slower to start!
|
||||||
|
count=0
|
||||||
|
ready=0
|
||||||
|
pid=$( cat ${pidfile} )
|
||||||
|
while checkpid ${pid} && [ $count -lt 60 ] && [ $ready -ne 1 ]; do
|
||||||
|
count=$(( count + 1 ))
|
||||||
|
|
||||||
|
if netstat -lptn | egrep -q ":8400.*LISTEN +${pid}/" ; then
|
||||||
|
ready=1
|
||||||
|
else
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $ready -eq 1 ]; then
|
||||||
|
RETVAL=0
|
||||||
|
success
|
||||||
|
else
|
||||||
|
RETVAL=1
|
||||||
|
failure
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
echo -n $"Shutting down $prog: "
|
||||||
|
|
||||||
|
## graceful shutdown with leave
|
||||||
|
$exec leave &> /dev/null
|
||||||
|
RETVAL=$?
|
||||||
|
|
||||||
|
## wait up to 10s for the daemon to exit
|
||||||
|
if [ $RETVAL -eq 0 ]; then
|
||||||
|
count=0
|
||||||
|
stopped=0
|
||||||
|
pid=$( cat ${pidfile} )
|
||||||
|
while [ $count -lt 10 ] && [ $stopped -ne 1 ]; do
|
||||||
|
count=$(( count + 1 ))
|
||||||
|
|
||||||
|
if ! checkpid ${pid} ; then
|
||||||
|
stopped=1
|
||||||
|
else
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $stopped -ne 1 ]; then
|
||||||
|
RETVAL=125
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $RETVAL -eq 0 ]; then
|
||||||
|
success
|
||||||
|
rm -f $lockfile $pidfile
|
||||||
|
else
|
||||||
|
failure
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
reload() {
|
||||||
|
echo -n $"Reloading $prog: "
|
||||||
|
killproc -p $pidfile $exec -HUP
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
force_reload() {
|
||||||
|
restart
|
||||||
|
}
|
||||||
|
|
||||||
|
rh_status() {
|
||||||
|
status -p "$pidfile" -l $prog $exec
|
||||||
|
|
||||||
|
RETVAL=$?
|
||||||
|
|
||||||
|
[ $RETVAL -eq 0 ] && $exec members
|
||||||
|
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
rh_status_q() {
|
||||||
|
rh_status >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
rh_status_q && exit 0
|
||||||
|
$1
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
rh_status_q || exit 0
|
||||||
|
$1
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
$1
|
||||||
|
;;
|
||||||
|
reload)
|
||||||
|
rh_status_q || exit 7
|
||||||
|
$1
|
||||||
|
;;
|
||||||
|
force-reload)
|
||||||
|
force_reload
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
rh_status
|
||||||
|
;;
|
||||||
|
condrestart|try-restart)
|
||||||
|
rh_status_q || exit 0
|
||||||
|
restart
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
|
||||||
|
exit 2
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit $?
|
25
fabio/files/fabio.upstart
Normal file
25
fabio/files/fabio.upstart
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
description "fabio agent"
|
||||||
|
|
||||||
|
start on runlevel [2345]
|
||||||
|
stop on runlevel [!2345]
|
||||||
|
|
||||||
|
respawn
|
||||||
|
|
||||||
|
script
|
||||||
|
if [ -f /etc/default/fabio ]; then
|
||||||
|
. /etc/default/fabio
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure to use all our CPUs, because fabio can block a scheduler thread
|
||||||
|
export GOMAXPROCS=`nproc`
|
||||||
|
|
||||||
|
# Get the public IP
|
||||||
|
BIND=`ifconfig eth0 | grep "inet addr" | awk '{ print substr($2,6) }'`
|
||||||
|
|
||||||
|
exec start-stop-daemon --start \
|
||||||
|
--chuid ${fabio_USER:-fabio}:${fabio_GROUP:-fabio} \
|
||||||
|
--exec /usr/local/bin/fabio agent -- \
|
||||||
|
-config-dir="/etc/fabio.d" \
|
||||||
|
${fabio_FLAGS} \
|
||||||
|
>> /var/log/fabio.log 2>&1
|
||||||
|
end script
|
6
fabio/init.sls
Normal file
6
fabio/init.sls
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{% from slspath+"/map.jinja" import fabio with context %}
|
||||||
|
|
||||||
|
include:
|
||||||
|
- {{ slspath }}.install
|
||||||
|
- {{ slspath }}.config
|
||||||
|
- {{ slspath }}.service
|
73
fabio/install.sls
Normal file
73
fabio/install.sls
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
{%- from slspath + '/map.jinja' import fabio with context -%}
|
||||||
|
|
||||||
|
fabio-bin-dir:
|
||||||
|
file.directory:
|
||||||
|
- name: /usr/local/bin
|
||||||
|
- makedirs: True
|
||||||
|
|
||||||
|
|
||||||
|
{#
|
||||||
|
# Create fabio user
|
||||||
|
fabio-group:
|
||||||
|
group.present:
|
||||||
|
- name: {{ fabio.group }}
|
||||||
|
|
||||||
|
fabio-user:
|
||||||
|
user.present:
|
||||||
|
- name: {{ fabio.user }}
|
||||||
|
- groups:
|
||||||
|
- {{ fabio.group }}
|
||||||
|
- home: {{ salt['user.info'](fabio.user)['home']|default(fabio.config.data_dir) }}
|
||||||
|
- createhome: False
|
||||||
|
- system: True
|
||||||
|
- require:
|
||||||
|
- group: fabio-group
|
||||||
|
#}
|
||||||
|
|
||||||
|
# Create directories
|
||||||
|
fabio-config-dir:
|
||||||
|
file.directory:
|
||||||
|
- name: /etc/fabio
|
||||||
|
- user: {{ fabio.user }}
|
||||||
|
- group: {{ fabio.group }}
|
||||||
|
- mode: 0750
|
||||||
|
|
||||||
|
{#
|
||||||
|
fabio-data-dir:
|
||||||
|
file.directory:
|
||||||
|
- name: {{ fabio.config.data_dir }}
|
||||||
|
- makedirs: True
|
||||||
|
- user: {{ fabio.user }}
|
||||||
|
- group: {{ fabio.group }}
|
||||||
|
- mode: 0750
|
||||||
|
#}
|
||||||
|
|
||||||
|
# Install agent
|
||||||
|
fabio-download:
|
||||||
|
file.managed:
|
||||||
|
- name: /tmp/fabio-{{ fabio.version }}
|
||||||
|
- source: https://{{ fabio.download_host }}/fabiolb/fabio/releases/download/v{{ fabio.version }}/fabio{{ fabio.version }}-go{{ fabio.goversion }}-linux_{{ fabio.arch }}
|
||||||
|
- source_hash: https://github.com/fabiolb/fabio/releases/download/v{{ fabio.version }}/fabio-{{ fabio.version }}-go{{ fabio.goversion }}.sha256
|
||||||
|
- unless: test -f /usr/local/bin/fabio-{{ fabio.version }}
|
||||||
|
|
||||||
|
fabio-install:
|
||||||
|
file.rename:
|
||||||
|
- name: /usr/local/bin/fabio-{{ fabio.version }}
|
||||||
|
- source: /tmp/fabio-{{ fabio.version }}
|
||||||
|
- require:
|
||||||
|
- file: /usr/local/bin
|
||||||
|
- watch:
|
||||||
|
- file: fabio-download
|
||||||
|
|
||||||
|
fabio-clean:
|
||||||
|
file.absent:
|
||||||
|
- name: /tmp/fabio-{{ fabio.version }}
|
||||||
|
- watch:
|
||||||
|
- file: fabio-install
|
||||||
|
|
||||||
|
fabio-link:
|
||||||
|
file.symlink:
|
||||||
|
- target: fabio-{{ fabio.version }}
|
||||||
|
- name: /usr/local/bin/fabio
|
||||||
|
- watch:
|
||||||
|
- file: fabio-install
|
21
fabio/map.jinja
Normal file
21
fabio/map.jinja
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{% import_yaml slspath+"/defaults.yaml" as defaults %}
|
||||||
|
|
||||||
|
{% set fabio = salt['pillar.get']('fabio', default=defaults.fabio, merge=True) %}
|
||||||
|
|
||||||
|
{## Add any overrides based on CPU architecture. ##}
|
||||||
|
{% set fabio = salt['grains.filter_by']({
|
||||||
|
'armv6l': {
|
||||||
|
"arch": 'arm'
|
||||||
|
},
|
||||||
|
'armv7l': {
|
||||||
|
"arch": 'arm'
|
||||||
|
},
|
||||||
|
'x86_64': {
|
||||||
|
"arch": 'amd64'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
,grain="cpuarch"
|
||||||
|
,merge=fabio)
|
||||||
|
%}
|
||||||
|
|
||||||
|
{% do fabio.config.update({'retry_join': fabio.config.retry_join or []}) %}
|
51
fabio/service.sls
Normal file
51
fabio/service.sls
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
{%- from slspath+"/map.jinja" import fabio with context -%}
|
||||||
|
|
||||||
|
fabio-init-env:
|
||||||
|
file.managed:
|
||||||
|
{%- if grains['os_family'] == 'Debian' %}
|
||||||
|
- name: /etc/default/fabio
|
||||||
|
{%- else %}
|
||||||
|
- name: /etc/sysconfig/fabio
|
||||||
|
- makedirs: True
|
||||||
|
{%- endif %}
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 0644
|
||||||
|
- contents:
|
||||||
|
- fabio_USER={{ fabio.user }}
|
||||||
|
- fabio_GROUP={{ fabio.group }}
|
||||||
|
- fabio_UI_BETA={{ fabio.ui_beta }}
|
||||||
|
- GOMAXPROCS=2
|
||||||
|
- PATH=/usr/local/bin:/usr/bin:/bin
|
||||||
|
|
||||||
|
fabio-init-file:
|
||||||
|
file.managed:
|
||||||
|
{%- if salt['test.provider']('service') == 'systemd' %}
|
||||||
|
- source: salt://{{ slspath }}/files/fabio.service
|
||||||
|
- name: /etc/systemd/system/fabio.service
|
||||||
|
- template: jinja
|
||||||
|
- context:
|
||||||
|
user: {{ fabio.user }}
|
||||||
|
group: {{ fabio.group }}
|
||||||
|
- mode: 0644
|
||||||
|
{%- elif salt['test.provider']('service') == 'upstart' %}
|
||||||
|
- source: salt://{{ slspath }}/files/fabio.upstart
|
||||||
|
- name: /etc/init/fabio.conf
|
||||||
|
- mode: 0644
|
||||||
|
{%- else %}
|
||||||
|
- source: salt://{{ slspath }}/files/fabio.sysvinit
|
||||||
|
- name: /etc/init.d/fabio
|
||||||
|
- mode: 0755
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
|
{%- if fabio.service %}
|
||||||
|
|
||||||
|
fabio-service:
|
||||||
|
service.running:
|
||||||
|
- name: fabio
|
||||||
|
- enable: True
|
||||||
|
- watch:
|
||||||
|
- file: fabio-init-env
|
||||||
|
- file: fabio-init-file
|
||||||
|
|
||||||
|
{%- endif %}
|
15
pillar.example
Normal file
15
pillar.example
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
fabio:
|
||||||
|
# Start Fabio
|
||||||
|
service: True
|
||||||
|
|
||||||
|
# Set user and group for Fabio config files and running service
|
||||||
|
user: fabio
|
||||||
|
group: fabio
|
||||||
|
|
||||||
|
config:
|
||||||
|
server: True
|
||||||
|
bind_addr: 0.0.0.0
|
||||||
|
|
||||||
|
enable_debug: True
|
||||||
|
|
||||||
|
# vim: ft=yaml
|
4
test/integration/fabio/inspec/fabio_spec.rb
Normal file
4
test/integration/fabio/inspec/fabio_spec.rb
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
describe service('fabio') do
|
||||||
|
it { should be_enabled }
|
||||||
|
it { should be_running }
|
||||||
|
end
|
Loading…
Reference in a new issue