add installation and yumrepo

This commit is contained in:
Arne Teuke
2025-05-05 17:02:29 +02:00
parent 847a48620a
commit 5adca39051
9 changed files with 437 additions and 2 deletions

8
manifests/init.pp Normal file
View File

@@ -0,0 +1,8 @@
## jenkins_cd::init.pp
# Module name: jenkins_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
# @summary Class initializes the jenkins_cd module.
##############################################################################
class jenkins_cd {
include jenkins_cd::params
}

10
manifests/main/config.pp Normal file
View File

@@ -0,0 +1,10 @@
## jenkins_cd::main::config.pp
# Module name: jenkins_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
# @summary Class manages the logic for the jenkins_cd module.
##############################################################################
class jenkins_cd::main::config (
) inherits jenkins_cd::params {
include jenkins_cd::main::install
}

15
manifests/main/install.pp Normal file
View File

@@ -0,0 +1,15 @@
## jenkins_cd::main::install.pp
# Module name: jenkins_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
# @summary Class manages installation details
##############################################################################
class jenkins_cd::main::install (
) inherits jenkins_cd::params {
require java_cd
require jenkins_cd::main::yumrepo
# package { $reqpackages:
# ensure => $pkg_ensure,
# }
}

27
manifests/main/yumrepo.pp Normal file
View File

@@ -0,0 +1,27 @@
## jenkins_cd::main::yumrepo.pp
# Module name: jenkins_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
# @summary Class manages yum repos for the installation
##############################################################################
class jenkins_cd::main::yumrepo (
) inherits jenkins_cd::params {
yumrepo { 'jenkins':
descr => 'Jenkins-stable',
baseurl => $js_base_url,
gpgcheck => '1',
enabled => '1';
}
# import rpm key
exec { $js_key_url:
command => "rpm --import ${js_key_url}",
path => '/bin:/usr/bin:/sbin:/usr/sbin',
cwd => '/tmp',
user => 'root',
unless => "rpm -q ${js_key_code} 2>/dev/null",
require => Yumrepo['jenkins'],
}
}

27
manifests/params.pp Normal file
View File

@@ -0,0 +1,27 @@
## jenkins_cd::params.pp
# Module name: jenkins_cd
# Author: Arne Teuke (arne_teuke@confdroid.com)
# @summary Class holds all parameters for the jenkins_cd module.
# @param [string] reqpackages which packages to install
# @param [string] pkg_ensure which packages to install
##############################################################################
class jenkins_cd::params (
String $reqpackages = 'java-21-openjdk.x86_64',
String $pkg_ensure = 'latest',
) {
# facts
$fqdn = $facts['networking']['fqdn']
$domain = $facts['networking']['domain']
$os_name = $facts['os']['name']
$os_release = $facts['os']['release']['major']
# yum repo
$js_base_url = 'https://pkg.jenkins.io/redhat-stable/'
$js_key_url = "${js_base_url}/jenkins.io.key"
$js_key_code = 'gpg-pubkey-d50582e6-4a3feef6'
# includes must be last
include jenkins_cd::main::config
}