1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
class ttrss($dbpath) {
include systemd
package {
[
"tt-rss",
"postgresql",
"php-pgsql",
"php-fpm",
]:
ensure => installed;
}
file {
$dbpath:
ensure => directory,
owner => 'postgres',
group => 'postgres',
require => Package["postgresql"];
"$dbpath/data":
ensure => directory,
owner => 'postgres',
group => 'postgres',
require => [
Package["postgresql"],
File[$dbpath],
];
"/etc/systemd/system/postgresql.service.d":
ensure => directory;
"/etc/systemd/system/postgresql.service.d/override.conf":
content => template('ttrss/postgres-service'),
notify => Exec["/usr/bin/systemctl daemon-reload"],
require => File["/etc/systemd/system/postgresql.service.d"];
"/etc/webapps/tt-rss/config.php":
source => "puppet:///modules/ttrss/config.php",
require => Package["tt-rss"];
"/etc/pacman.d/hooks":
ensure => directory;
"/etc/pacman.d/hooks/tt-rss.hook":
source => "puppet:///modules/ttrss/pacman-hook",
require => [
File["/etc/pacman.d/hooks"],
Package["tt-rss"],
]
}
exec { "initialize db path":
command => "/usr/bin/initdb -D $dbpath/data",
user => 'postgres',
creates => "$dbpath/data/PG_VERSION",
require => [
File["$dbpath/data"],
Package["postgresql"],
];
}
service { "postgresql":
ensure => running,
enable => true,
require => [
Package["postgresql"],
Exec["initialize db path"],
];
}
exec { "create db user":
provider => shell,
command => "createuser -d ttrss",
user => 'postgres',
unless => "psql -Atc 'select usename from pg_catalog.pg_user' | grep -F ttrss",
require => [
Package["postgresql"],
Service["postgresql"],
];
}
exec { "create db":
provider => shell,
command => "createdb -U ttrss ttrss",
user => 'postgres',
unless => "psql -Atc 'select datname from pg_catalog.pg_database' | grep -F ttrss",
require => [
Exec["create db user"],
Package["postgresql"],
Service["postgresql"],
];
}
exec { "fixup php.ini":
provider => shell,
command => "sed -i 's/^;\\(extension=.*pgsql\\)$/\\1/' /etc/php/php.ini",
unless => "grep -q '^extension=pgsql$' /etc/php/php.ini && grep -q '^extension=pdo_pgsql$' /etc/php/php.ini",
require => Package["php-pgsql"];
}
exec { "initialize tt-rss db":
provider => shell,
command => "psql ttrss -U ttrss -f /usr/share/webapps/tt-rss/schema/ttrss_schema_pgsql.sql",
user => 'postgres',
unless => "psql -d ttrss -Atc 'select relname from pg_catalog.pg_class;' | grep -q '^ttrss'",
require => [
Package["postgresql"],
Service["postgresql"],
Exec["create db"],
Package["tt-rss"],
File["/etc/webapps/tt-rss/config.php"],
]
}
service { "tt-rss":
ensure => running,
enable => true,
require => [
Package["tt-rss"],
Exec["fixup php.ini"],
File["/etc/webapps/tt-rss/config.php"],
Exec["create db"],
]
}
service { "php-fpm":
ensure => running,
enable => true,
require => Package["php-fpm"];
}
}
|