Skip to content

Commit 20ffe8e

Browse files
create profile for museumpas-website-2026 (copied from museumpas-website and renamed)
1 parent 41382be commit 20ffe8e

File tree

2 files changed

+202
-0
lines changed

2 files changed

+202
-0
lines changed
Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
class profiles::museumpas::website_2026::deployment (
2+
String $config_source,
3+
String $repository = 'museumpas-website-2026',
4+
String $version = 'latest',
5+
Optional[String] $robots_source = undef,
6+
Optional[String] $maintenance_source = undef,
7+
Boolean $run_scheduler_cron = true,
8+
Optional[String] $puppetdb_url = lookup('data::puppet::puppetdb::url', Optional[String], 'first', undef)
9+
) inherits profiles {
10+
$basedir = '/var/www/museumpas'
11+
$secrets = lookup('vault:museumpas/website')
12+
$mount_target_dns_name = lookup('terraform::efs::mount_target_dns_name', Optional[String], 'first', undef)
13+
$exec_default_attributes = {
14+
cwd => $basedir,
15+
path => ['/usr/local/bin', '/usr/bin', '/bin', $basedir],
16+
user => 'www-data',
17+
environment => ['HOME=/tmp'],
18+
logoutput => true,
19+
refreshonly => true,
20+
subscribe => [Package['museumpas-website-2026'], File['museumpas-website-2026-config']],
21+
}
22+
23+
realize User['www-data']
24+
realize Group['www-data']
25+
26+
realize Apt::Source[$repository]
27+
28+
package { 'museumpas-website-2026':
29+
ensure => $version,
30+
require => Apt::Source[$repository],
31+
notify => [Service['museumpas-website-2026'], Profiles::Deployment::Versions[$title]],
32+
}
33+
34+
if $mount_target_dns_name {
35+
profiles::nfs::mount { "${mount_target_dns_name}:/":
36+
mountpoint => "${basedir}/storage/app/public",
37+
mount_options => 'nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2',
38+
owner => 'www-data',
39+
group => 'www-data',
40+
require => [Package['museumpas-website-2026'], User['www-data'], Group['www-data']],
41+
}
42+
}
43+
44+
file { 'museumpas-website-2026-config':
45+
ensure => 'file',
46+
path => "${basedir}/.env",
47+
content => template($config_source),
48+
owner => 'www-data',
49+
group => 'www-data',
50+
require => Package['museumpas-website-2026'],
51+
notify => Service['museumpas-website-2026'],
52+
}
53+
54+
if $maintenance_source {
55+
file { 'museumpas-maintenance-pages':
56+
ensure => 'directory',
57+
path => "${basedir}/public/maintenance",
58+
owner => 'www-data',
59+
group => 'www-data',
60+
require => Package['museumpas-website-2026'],
61+
}
62+
63+
file { 'museumpas-maintenance-page':
64+
ensure => 'file',
65+
path => "${basedir}/public/maintenance/maintenance.html",
66+
content => template($maintenance_source),
67+
owner => 'www-data',
68+
group => 'www-data',
69+
require => File['museumpas-maintenance-pages'],
70+
}
71+
}
72+
73+
if $robots_source {
74+
file { 'museumpas-robots.txt':
75+
ensure => 'file',
76+
path => "${basedir}/public/robots.txt",
77+
content => template($robots_source),
78+
owner => 'www-data',
79+
group => 'www-data',
80+
require => Package['museumpas-website-2026'],
81+
}
82+
}
83+
84+
exec { 'composer script post-autoload-dump':
85+
command => 'composer run-script post-autoload-dump',
86+
require => File['museumpas-website-2026-config'],
87+
* => $exec_default_attributes,
88+
}
89+
90+
exec { 'put museumpas in maintenance mode':
91+
command => 'php artisan down',
92+
require => Exec['composer script post-autoload-dump'],
93+
* => $exec_default_attributes,
94+
}
95+
96+
exec { 'run museumpas database migrations':
97+
command => 'php artisan migrate --force',
98+
require => Exec['put museumpas in maintenance mode'],
99+
* => $exec_default_attributes,
100+
}
101+
102+
exec { 'run museumpas database seeder':
103+
command => 'php artisan db:seed RoleAndPermissionSeeder --force',
104+
require => Exec['run museumpas database migrations'],
105+
* => $exec_default_attributes,
106+
}
107+
108+
exec { 'clear museumpas optimize cache':
109+
command => 'php artisan optimize:clear',
110+
require => Exec['run museumpas database seeder'],
111+
* => $exec_default_attributes,
112+
}
113+
114+
exec { 'clear museumpas cache':
115+
command => 'php artisan cache:clear',
116+
require => [Exec['run museumpas database migrations'], Exec['clear museumpas optimize cache']],
117+
* => $exec_default_attributes,
118+
}
119+
120+
exec { 'clear museumpas model cache':
121+
command => 'php artisan modelCache:clear',
122+
require => [Exec['run museumpas database migrations'], Exec['clear museumpas cache']],
123+
* => $exec_default_attributes,
124+
}
125+
126+
exec { 'museumpas optimize':
127+
command => 'php artisan optimize --except=route:cache',
128+
require => [Exec['run museumpas database migrations'], Exec['clear museumpas model cache']],
129+
* => $exec_default_attributes,
130+
}
131+
132+
exec { 'create storage link':
133+
command => 'php artisan storage:link',
134+
unless => "test -L ${basedir}/public/storage",
135+
require => Exec['run museumpas database migrations'],
136+
* => $exec_default_attributes,
137+
}
138+
139+
exec { 'put museumpas in production mode':
140+
command => 'php artisan up',
141+
notify => [Service['museumpas-website-2026'], Service['museumpas-website-2026-horizon']],
142+
require => [Exec['create storage link'], Exec['museumpas optimize']],
143+
* => $exec_default_attributes,
144+
}
145+
146+
profiles::php::fpm_service_alias { 'museumpas-website-2026': }
147+
148+
service { 'museumpas-website-2026':
149+
hasstatus => true,
150+
hasrestart => true,
151+
restart => '/usr/bin/systemctl reload museumpas-website-2026',
152+
require => Profiles::Php::Fpm_service_alias['museumpas-website-2026'],
153+
}
154+
155+
systemd::unit_file { 'museumpas-website-2026-horizon.service':
156+
source => 'puppet:///modules/profiles/museumpas/website/museumpas-website-2026-horizon.service',
157+
enable => true,
158+
active => true,
159+
require => Package['museumpas-website-2026'],
160+
}
161+
162+
service { 'museumpas-website-2026-horizon':
163+
ensure => 'running',
164+
hasstatus => true,
165+
enable => true,
166+
require => Systemd::Unit_file['museumpas-website-2026-horizon.service'],
167+
subscribe => File['museumpas-website-2026-config'],
168+
}
169+
170+
if $run_scheduler_cron {
171+
cron { 'museumpas-filament-scheduler':
172+
command => "cd ${basedir} && php artisan schedule:run > /dev/null 2>&1",
173+
require => [User['www-data'], Package['museumpas-website-2026']],
174+
user => 'www-data',
175+
}
176+
}
177+
178+
profiles::deployment::versions { $title:
179+
puppetdb_url => $puppetdb_url,
180+
}
181+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class profiles::museumpas::website_2026::logging (
2+
String $servername,
3+
String $log_type
4+
) inherits profiles {
5+
include profiles::filebeat
6+
7+
filebeat::input { "${servername}_filebeat_input":
8+
paths => ["/var/log/apache2/${servername}_80_access.log"],
9+
doc_type => 'json',
10+
encoding => 'utf-8',
11+
json => {
12+
keys_under_root => true,
13+
add_error_key => true,
14+
},
15+
fields => {
16+
log_type => $log_type,
17+
environment => $environment,
18+
},
19+
require => Class['profiles::filebeat'],
20+
}
21+
}

0 commit comments

Comments
 (0)