diff options
Diffstat (limited to 'puppet/modules/obfsproxy')
| -rwxr-xr-x | puppet/modules/obfsproxy/files/obfsproxy_init | 93 | ||||
| -rw-r--r-- | puppet/modules/obfsproxy/files/obfsproxy_logrotate | 14 | ||||
| -rw-r--r-- | puppet/modules/obfsproxy/manifests/init.pp | 86 | ||||
| -rw-r--r-- | puppet/modules/obfsproxy/templates/etc_conf.erb | 11 | 
4 files changed, 204 insertions, 0 deletions
| diff --git a/puppet/modules/obfsproxy/files/obfsproxy_init b/puppet/modules/obfsproxy/files/obfsproxy_init new file mode 100755 index 00000000..01c8013a --- /dev/null +++ b/puppet/modules/obfsproxy/files/obfsproxy_init @@ -0,0 +1,93 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides:          obfsproxy daemon +# Required-Start:    $remote_fs $syslog +# Required-Stop:     $remote_fs $syslog +# Default-Start:     2 3 4 5 +# Default-Stop:      0 1 6 +# Short-Description: obfsproxy daemon +# Description:       obfsproxy daemon +### END INIT INFO + +. /lib/lsb/init-functions + +DAEMON=/usr/bin/obfsproxy +NAME=obfsproxy +DESC="obfsproxy daemon" +USER=obfsproxy +DATDIR=/etc/obfsproxy +PIDFILE=/var/run/obfsproxy.pid +CONF=$DATDIR/obfsproxy.conf +LOGFILE=/var/log/obfsproxy.log + +# If the daemon is not there, then exit. +test -x $DAEMON || exit 0 + +if [ -f $CONF ] ; then +  . $CONF +else +  echo "Obfsproxy configuration file is missing, aborting..." +  exit 2 +fi + +DAEMONARGS=" --log-min-severity=$LOG --log-file=$LOGFILE --data-dir=$DATDIR \ +            $TRANSPORT $PARAM --dest=$DEST_IP:$DEST_PORT server $BINDADDR:$PORT" + +start_obfsproxy() { +  start-stop-daemon --start --quiet --oknodo -m --pidfile $PIDFILE \ +		-b -c $USER --startas $DAEMON --$DAEMONARGS +} + +stop_obfsproxy() { +  start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE +} + +status_obfsproxy() { +  status_of_proc -p $PIDFILE $DAEMON $NAME +} + +case $1 in + start) +  if [ -e $PIDFILE ]; then +   status_obfsproxy +   if [ $? = "0" ]; then +    exit +   fi +  fi +  log_begin_msg "Starting $DESC" +  start_obfsproxy +  log_end_msg $? +  ;; + stop) +  if [ -e $PIDFILE ]; then +   status_obfsproxy +   if [ $? = "0" ]; then +     log_begin_msg "Stopping $DESC" +     stop_obfsproxy +     rm -f $PIDFILE +     log_end_msg $? +   fi +  else +     status_obfsproxy +  fi +  ;; + restart) +  $0 stop && sleep 2 && $0 start +  ;; + status) +  status_obfsproxy +  ;; + reload) +  if [ -e $PIDFILE ]; then +   start-stop-daemon --stop --signal USR1 --quiet --pidfile $PIDFILE --name $NAME +   log_success_msg "$DESC reloaded successfully" +  else +   log_failure_msg "$PIDFILE does not exist" +  fi +  ;; + *) +  echo "Usage: $0 {start|stop|restart|reload|status}" +  exit 2 +  ;; +esac diff --git a/puppet/modules/obfsproxy/files/obfsproxy_logrotate b/puppet/modules/obfsproxy/files/obfsproxy_logrotate new file mode 100644 index 00000000..e5679d0c --- /dev/null +++ b/puppet/modules/obfsproxy/files/obfsproxy_logrotate @@ -0,0 +1,14 @@ +/var/log/obfsproxy.log { +  daily +  missingok +  rotate 3 +  compress +  delaycompress +  notifempty +  create 600 obfsproxy obfsproxy +  postrotate +    if [ -f /var/run/obfsproxy.pid ]; then +      /etc/init.d/obfsproxy restart > /dev/null +    fi +  endscript +} diff --git a/puppet/modules/obfsproxy/manifests/init.pp b/puppet/modules/obfsproxy/manifests/init.pp new file mode 100644 index 00000000..6a3d2c72 --- /dev/null +++ b/puppet/modules/obfsproxy/manifests/init.pp @@ -0,0 +1,86 @@ +# deploy obfsproxy service +class obfsproxy ( +  $transport, +  $bind_address, +  $port, +  $param, +  $dest_ip, +  $dest_port, +  $log_level = 'info' +){ + +  $user = 'obfsproxy' +  $conf = '/etc/obfsproxy/obfsproxy.conf' + +  user { $user: +    ensure => present, +    system => true, +    gid    => $user, +  } + +  group { $user: +    ensure => present, +    system => true, +  } + +  file { '/etc/init.d/obfsproxy': +    ensure  => present, +    path    => '/etc/init.d/obfsproxy', +    source  => 'puppet:///modules/obfsproxy/obfsproxy_init', +    owner   => 'root', +    group   => 'root', +    mode    => '0750', +    require => File[$conf], +  } + +  file { $conf : +    ensure  => present, +    path    => $conf, +    owner   => 'root', +    group   => 'root', +    mode    => '0600', +    content => template('obfsproxy/etc_conf.erb'), +  } + +  file { '/etc/obfsproxy': +    ensure  => directory, +    owner   => $user, +    group   => $user, +    mode    => '0700', +    require => User[$user], +  } + +  file { '/var/log/obfsproxy.log': +    ensure  => present, +    owner   => $user, +    group   => $user, +    mode    => '0640', +    require => User[$user], +  } + +  file { '/etc/logrotate.d/obfsproxy': +    ensure  => present, +    source  => 'puppet:///modules/obfsproxy/obfsproxy_logrotate', +    owner   => 'root', +    group   => 'root', +    mode    => '0644', +    require => File['/var/log/obfsproxy.log'], +  } + +  package { 'obfsproxy': +    ensure  => present +  } + +  service { 'obfsproxy': +    ensure    => running, +    subscribe => File[$conf], +    require   => [ +      Package['obfsproxy'], +      File['/etc/init.d/obfsproxy'], +      User[$user], +      Group[$user]] +  } + + +} + diff --git a/puppet/modules/obfsproxy/templates/etc_conf.erb b/puppet/modules/obfsproxy/templates/etc_conf.erb new file mode 100644 index 00000000..8959ef78 --- /dev/null +++ b/puppet/modules/obfsproxy/templates/etc_conf.erb @@ -0,0 +1,11 @@ +TRANSPORT=<%= @transport %> +PORT=<%= @port %> +DEST_IP=<%= @dest_ip %> +DEST_PORT=<%= @dest_port %> +<% if @transport == "scramblesuit" -%> +PARAM=--password=<%= @param %> +<% else -%> +PARAM=<%= @param %> +<% end -%> +LOG=<%= @log_level %> +BINDADDR=<%= @bind_address %> | 
