]>
Commit | Line | Data |
---|---|---|
c230c663 IB |
1 | class role::etherpad ( |
2 | ) { | |
3 | $password_seed = lookup("base_installation::puppet_pass_seed") | |
580bd7fc IB |
4 | $web_host = lookup("base_installation::real_hostname") |
5 | $web_listen = "0.0.0.0" | |
6 | $web_port = 18000 | |
7 | $pg_db = "etherpad-lite" | |
8 | $pg_user = "etherpad-lite" | |
9 | $pg_password = generate_password(24, $password_seed, "postgres_etherpad") | |
10 | ||
11 | $ldap_server = lookup("base_installation::ldap_server") | |
12 | $ldap_base = lookup("base_installation::ldap_base") | |
13 | $ldap_dn = lookup("base_installation::ldap_dn") | |
14 | $ldap_account_pattern = "(&(memberOf=cn=users,cn=etherpad,ou=services,dc=immae,dc=eu)(uid={{username}}))" | |
15 | $ldap_group_pattern = "(memberOf=cn=groups,cn=etherpad,ou=services,dc=immae,dc=eu)" | |
16 | $ldap_password = generate_password(24, $password_seed, "ldap") | |
17 | ||
c230c663 IB |
18 | |
19 | include "base_installation" | |
20 | ||
21 | include "profile::tools" | |
22 | include "profile::postgresql" | |
23 | include "profile::apache" | |
24 | ||
25 | ensure_packages(["npm"]) | |
26 | ensure_packages(["abiword"]) | |
27 | ensure_packages(["libreoffice-fresh", "libreoffice-fresh-fr", "java-runtime-common", "jre8-openjdk"]) | |
28 | ensure_packages(["tidy"]) | |
29 | aur::package { "etherpad-lite": } | |
a1c31465 IB |
30 | -> patch::file { "/usr/share/etherpad-lite/src/node/utils/LibreOffice.js": |
31 | diff_source => "puppet:///modules/role/etherpad/libreoffice_patch.diff", | |
32 | } | |
580bd7fc IB |
33 | -> file { "/etc/etherpad-lite/settings.json": |
34 | ensure => present, | |
35 | owner => "etherpad-lite", | |
36 | group => "etherpad-lite", | |
37 | notify => Service["etherpad-lite"], | |
38 | content => template("role/etherpad/settings.json.erb"), | |
39 | } | |
c230c663 IB |
40 | |
41 | $modules = [ | |
42 | "ep_aa_file_menu_toolbar", | |
43 | "ep_adminpads", | |
44 | "ep_align", | |
45 | "ep_bookmark", | |
46 | "ep_clear_formatting", | |
47 | "ep_colors", | |
48 | "ep_copy_paste_select_all", | |
49 | "ep_cursortrace", | |
50 | "ep_embedmedia", | |
51 | "ep_font_family", | |
52 | "ep_font_size", | |
53 | "ep_headings2", | |
54 | "ep_ldapauth", | |
55 | "ep_line_height", | |
56 | "ep_markdown", | |
57 | "ep_previewimages", | |
58 | "ep_ruler", | |
59 | "ep_scrollto", | |
60 | "ep_set_title_on_pad", | |
61 | "ep_subscript_and_superscript", | |
62 | "ep_timesliderdiff" | |
63 | ] | |
64 | ||
65 | $modules.each |$module| { | |
66 | exec { "npm_install_$module": | |
67 | command => "/usr/bin/npm install $module", | |
68 | unless => "/usr/bin/test -d /usr/share/etherpad-lite/node_modules/$module", | |
69 | cwd => "/usr/share/etherpad-lite/", | |
70 | environment => "HOME=/root", | |
71 | require => Aur::Package["etherpad-lite"], | |
72 | before => Service["etherpad-lite"], | |
73 | notify => Service["etherpad-lite"], | |
74 | } | |
75 | -> | |
76 | file { "/usr/share/etherpad-lite/node_modules/$module/.ep_initialized": | |
77 | ensure => present, | |
78 | mode => "0644", | |
79 | before => Service["etherpad-lite"], | |
80 | } | |
81 | } | |
82 | ||
83 | service { "etherpad-lite": | |
84 | enable => true, | |
85 | ensure => "running", | |
86 | require => Aur::Package["etherpad-lite"], | |
87 | subscribe => Aur::Package["etherpad-lite"], | |
88 | } | |
89 | ||
436cae5e | 90 | profile::postgresql::master { "postgresql master for etherpad": |
f568173a IB |
91 | letsencrypt_host => $web_host, |
92 | backup_hosts => ["backup-1"], | |
c230c663 IB |
93 | } |
94 | ||
95 | postgresql::server::db { $pg_db: | |
96 | user => $pg_user, | |
97 | password => postgresql_password($pg_user, $pg_password), | |
98 | } | |
99 | ||
100 | postgresql::server::pg_hba_rule { "allow local access to $pg_user user": | |
101 | type => 'local', | |
102 | database => $pg_db, | |
103 | user => $pg_user, | |
104 | auth_method => 'ident', | |
105 | order => "05-01", | |
106 | } | |
107 | ||
108 | } |