fruit-bowl/environments/production/modules/unifi/manifests/init.pp

75 lines
1.5 KiB
ObjectPascal
Raw Normal View History

2025-04-01 17:40:03 +00:00
class unifi {
contain unifi::install
contain unifi::service
}
class unifi::repos {
apt::source { 'unifi':
comment => 'UniFi Repo',
location => 'https://www.ui.com/downloads/unifi/debian',
release => 'stable',
repos => 'ubiquiti',
key => {
'name' => 'unifi.gpg',
'source' => 'https://dl.ui.com/unifi/unifi-repo.gpg',
},
include => {
'deb' => true,
},
}
apt::source { 'mongodb':
comment => 'MongoDB',
location => 'http://repo.mongodb.org/apt/debian',
release => 'buster/mongodb-org/4.4',
repos => 'main',
key => {
'name' => 'mongodb.asc',
'source' => 'https://www.mongodb.org/static/pgp/server-4.4.asc',
},
include => {
'deb' => true,
},
}
}
class unifi::libssl {
# From https://archive.ubuntu.com/ubuntu/pool/main/o/openssl/
file { '/opt/libssl1.1.deb':
ensure => file,
source => 'puppet:///modules/unifi/libssl1.1.deb'
} ~>
package { 'libssl1.1':
provider => dpkg,
source => "/opt/libssl1.1.deb"
}
}
class unifi::install {
contain unifi::repos
contain unifi::libssl
$mongo = [ 'mongodb-org' ]
package { $mongo:
ensure => installed
}
$unifi = ['openjdk-17-jre-headless', 'java-common', 'unifi']
package { $unifi:
ensure => installed
}
}
class unifi::service {
service { 'mongod':
ensure => running,
enable => true
}
service { 'unifi':
ensure => running,
enable => true
}
}