| 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', | 
| +    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": | 
| +    command => 'systemctl daemon-reload', | 
| +    subscribe => File["/etc/systemd/system/mimeo.service"], | 
| +    refreshonly => true, | 
| +  } | 
| +} | 
| + | 
|  |