Index: modules/adblockplus/manifests/web/mimeo.pp |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/modules/adblockplus/manifests/web/mimeo.pp |
@@ -0,0 +1,92 @@ |
+# == Class: adblockplus::web::mimeo |
+# |
+# A [mimeograph](https://en.wikipedia.org/wiki/Mimeograph) (also known as stencil duplicator) is a low-cost duplicating |
+# machine. Mimeo is used here since it is the abbreviation and it sounds better. |
+# |
+# The pourpose of this class is to log the information received in a http/s |
+# petition with an specified format. |
+# === Parameters: |
+# |
+# [*format*] |
+# A systemd escaped string containing the desired format for logging. |
+# |
+# '$remote_addr - - [$time_local] "$request" $status $bytes_sent "$http_referer"' |
+# |
+# This is an example of how the format would look like in the log file. |
+# |
+# \x24remote_addr\x20\x2d\x20\x2d\x20\x5b\x24time_local\x5d\x20\x22\x24request\x22\x20\x24status\x20\x24bytes_sent\x20\x22\x24http_referer\x22 |
+# |
+# And this is how it looks escaped, for escaping is necessary to use |
+# `systemd-escape` command, since this parameter is passed to a systemd |
+# unit file. |
+# |
+# [*port*] |
+# An integer to setup the port where the script will be listening, defaults |
+# to 8000. |
+# |
+# [*response*] |
+# A systemd escaped string (like format parameter) representing the response |
+# sent to the client. |
+# |
+# [*log_file*] |
+# A string containg the path to the file where the logs will be written. |
+class adblockplus::web::mimeo ( |
+ $format = '', |
+ $port = 8000, |
+ $response = '', |
+ $log_file = '/var/log/mimeo.log', |
+){ |
+ |
+ ensure_packages(['python3']) |
+ |
+ file {"/opt/mimeo": |
+ ensure => 'directory', |
+ owner => 'root', |
+ group => 'root', |
+ } |
+ |
+ file {"/opt/mimeo/mimeo.py": |
+ ensure => 'present', |
+ owner => 'root', |
+ group => 'root', |
+ mode => 0644, |
+ content => file('adblockplus/mimeo.py'), |
+ require => File["/opt/mimeo"], |
+ } |
+ |
+ file {"/etc/systemd/system/mimeo.service": |
+ ensure => 'present', |
+ owner => 'root', |
+ group => 'root', |
+ mode => 0644, |
+ content => template('adblockplus/mimeo.service.erb'), |
+ } |
+ |
+ Exec{ |
+ path => ['/usr/bin', '/bin'], |
+ } |
+ |
+ exec {"enable-service-mimeo": |
+ command => 'systemctl enable mimeo.service', |
+ user => 'root', |
+ onlyif => 'systemctl status mimeo.service | grep disabled', |
mathias
2017/08/08 07:51:46
Why not use `systemctl is-enabled` for this test?
f.lopez
2017/08/09 19:50:48
Done.
|
+ require => File["/etc/systemd/system/mimeo.service"], |
+ } |
+ |
+ service {"mimeo.service": |
+ ensure => 'running', |
+ hasrestart => false, |
+ provider => 'systemd', |
+ require => [ |
+ Exec["enable-service-mimeo"], |
+ Package["python3"], |
+ ], |
+ } |
+ |
+ exec {"reload-daemons": |
mathias
2017/08/08 07:51:46
This is a way too global operation to be placed in
f.lopez
2017/08/09 19:50:48
Done.
|
+ command => 'systemctl daemon-reload', |
+ subscribe => File["/etc/systemd/system/mimeo.service"], |
+ refreshonly => true, |
+ } |
+} |
+ |