| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 1 # == Class: adblockplus::web::mimeo | 1 # == Class: adblockplus::web::mimeo |
| 2 # | 2 # |
| 3 # A [mimeograph](https://en.wikipedia.org/wiki/Mimeograph) (also known as stenci l duplicator) is a low-cost duplicating | 3 # Class adblockplus::web::mimeo registers the information received in a |
| 4 # machine. Mimeo is used here since it is the abbreviation and it sounds better. | 4 # http/s petition with an specified format in an specific output. |
| 5 # | 5 # |
| 6 # The pourpose of this class is to log the information received in a http/s | |
| 7 # petition with an specified format. | |
| 8 # === Parameters: | 6 # === Parameters: |
| 9 # | 7 # |
| 10 # [*format*] | 8 # [*format*] |
| 11 # A systemd escaped string containing the desired format for logging. | 9 # A string containing the desired format for logging. |
| 12 # | 10 # |
| 13 # '$remote_addr - - [$time_local] "$request" $status $bytes_sent "$http_refere r"' | 11 # '$remote_addr - - [$time_local] "$request" $status $bytes_sent "$http_refere r"' |
| 14 # | |
| 15 # This is an example of how the format would look like in the log file. | |
| 16 # | |
| 17 # \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 | |
| 18 # | |
| 19 # And this is how it looks escaped, for escaping is necessary to use | |
| 20 # `systemd-escape` command, since this parameter is passed to a systemd | |
| 21 # unit file. | |
| 22 # | 12 # |
| 23 # [*port*] | 13 # [*port*] |
| 24 # An integer to setup the port where the script will be listening, defaults | 14 # An integer to setup the port where the script will be listening, defaults |
| 25 # to 8000. | 15 # to 8000. |
| 26 # | 16 # |
| 27 # [*response*] | 17 # [*response*] |
| 28 # A systemd escaped string (like format parameter) representing the response | 18 # A string (like format parameter) representing the response sent to the |
| 29 # sent to the client. | 19 # client. |
| 30 # | 20 # |
| 31 # [*log_file*] | |
| 32 # A string containg the path to the file where the logs will be written. | |
| 33 class adblockplus::web::mimeo ( | 21 class adblockplus::web::mimeo ( |
| 34 $format = '', | 22 $format = '', |
| 35 $port = 8000, | 23 $port = 8000, |
| 36 $response = '', | 24 $response = '', |
| 37 $log_file = '/var/log/mimeo.log', | |
| 38 ){ | 25 ){ |
| 26 include adblockplus | |
| 39 | 27 |
| 40 ensure_packages(['python3']) | 28 ensure_packages(['python3']) |
| 41 | 29 |
| 42 file {"/opt/mimeo": | 30 realize(File['/var/adblockplus']) |
| 31 | |
| 32 file {'/var/adblockplus/mimeo': | |
| 43 ensure => 'directory', | 33 ensure => 'directory', |
| 34 mode => '0755', | |
| 44 owner => 'root', | 35 owner => 'root', |
| 45 group => 'root', | 36 require => File['/var/adblockplus'], |
| 46 } | 37 } |
| 47 | 38 |
| 48 file {"/opt/mimeo/mimeo.py": | 39 file {'/usr/local/bin/mimeo.py': |
|
mathias
2017/08/09 21:09:07
I don't think this requires an entire directory in
f.lopez
2017/08/10 19:06:34
Done.
| |
| 49 ensure => 'present', | 40 ensure => 'present', |
| 50 owner => 'root', | 41 owner => 'root', |
| 51 group => 'root', | 42 group => 'root', |
| 52 mode => 0644, | 43 mode => 0755, |
| 53 content => file('adblockplus/mimeo.py'), | 44 source => 'puppet:///modules/adblockplus/mimeo.py', |
| 54 require => File["/opt/mimeo"], | 45 require => Package['python3'], |
|
mathias
2017/08/09 21:09:07
I'd consider Package['python3'] a requirement of t
f.lopez
2017/08/10 19:06:35
Done.
| |
| 55 } | 46 } |
| 56 | 47 |
| 57 file {"/etc/systemd/system/mimeo.service": | 48 file {'/etc/systemd/system/mimeo.service': |
| 58 ensure => 'present', | 49 ensure => 'present', |
| 59 owner => 'root', | 50 owner => 'root', |
| 60 group => 'root', | 51 group => 'root', |
| 61 mode => 0644, | 52 mode => 0644, |
| 62 content => template('adblockplus/mimeo.service.erb'), | 53 content => template('adblockplus/mimeo.service.erb'), |
|
mathias
2017/08/09 21:09:07
I'd consider the mimeo.py script a requirement of
f.lopez
2017/08/10 19:06:35
Done.
| |
| 54 require => File['/usr/local/bin/mimeo.py'], | |
| 63 } | 55 } |
| 64 | 56 |
| 65 Exec{ | 57 Exec{ |
| 66 path => ['/usr/bin', '/bin'], | 58 path => ['/usr/bin', '/bin'], |
| 67 } | 59 } |
| 68 | 60 |
| 69 exec {"enable-service-mimeo": | 61 exec {'enable-service-mimeo': |
| 70 command => 'systemctl enable mimeo.service', | 62 command => 'systemctl enable mimeo.service', |
| 71 user => 'root', | 63 user => 'root', |
| 72 onlyif => 'systemctl is-enabled mimeo.service | grep disabled', | 64 unless => 'systemctl is-enabled mimeo.service', |
|
mathias
2017/08/09 21:09:07
You can use parameter $unless and avoid grep by re
f.lopez
2017/08/10 19:06:35
Done.
| |
| 73 require => File["/etc/systemd/system/mimeo.service"], | 65 require => File['/etc/systemd/system/mimeo.service'], |
| 74 } | 66 } |
| 75 | 67 |
| 76 service {"mimeo.service": | 68 service {'mimeo': |
|
mathias
2017/08/09 21:09:07
Just call it Service['mimeo'] please, in Puppet th
f.lopez
2017/08/10 19:06:34
Done.
| |
| 77 ensure => 'running', | 69 ensure => 'running', |
| 78 hasrestart => false, | 70 hasrestart => false, |
| 79 provider => 'systemd', | 71 provider => 'systemd', |
| 80 require => [ | 72 require => Exec['enable-service-mimeo'], |
| 81 Exec["enable-service-mimeo"], | 73 subscribe => File['/usr/local/bin/mimeo.py'], |
| 82 Package["python3"], | |
| 83 ], | |
| 84 } | 74 } |
| 85 | 75 |
| 86 exec {"reload-mimeo-daemon": | 76 exec {'reload-mimeo-daemon': |
| 77 notify => Service['mimeo'], | |
| 87 command => 'systemctl daemon-reload', | 78 command => 'systemctl daemon-reload', |
| 88 subscribe => File["/etc/systemd/system/mimeo.service"], | 79 subscribe => File['/etc/systemd/system/mimeo.service'], |
| 89 refreshonly => true, | 80 refreshonly => true, |
| 90 } | 81 } |
| 91 } | 82 } |
| 92 | 83 |
| LEFT | RIGHT |