Compare commits
49 Commits
16362ba2ae
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b5c0b3672c | ||
|
|
07fa818fea | ||
|
|
0dd226590a | ||
|
|
b0ba8611cc | ||
| 713be3a9ef | |||
|
|
d9b2fb9ce4 | ||
|
|
29d1c32e8d | ||
|
|
7695df44d3 | ||
| 1e2da5edf4 | |||
|
|
08461d4f86 | ||
|
|
d7ed416df3 | ||
|
|
99aad766f9 | ||
| d13b8c6a54 | |||
|
|
786dacfaad | ||
|
|
447a52c03e | ||
|
|
256db2dfc4 | ||
| 2a9d490fcb | |||
|
|
fa4e3b625a | ||
|
|
226a67e37b | ||
| 01f02f1cbd | |||
| 190c397809 | |||
|
|
f860dfa44e | ||
|
|
15a64cccd5 | ||
|
|
66bc7c25c5 | ||
| 1707d16d5e | |||
|
|
5c6dfa2b5b | ||
|
|
831e66bd54 | ||
| f6b2a99afa | |||
|
|
41f52c7277 | ||
|
|
5a6eb3ae0e | ||
|
|
fc6128e6f3 | ||
| 39b79517b1 | |||
|
|
6107af263f | ||
|
|
0b6492808c | ||
| f4d99f7e90 | |||
|
|
51aeb2c28b | ||
|
|
8074aebbf7 | ||
|
|
2ee26ead57 | ||
| 96abe7bd38 | |||
| 002172003a | |||
| 6b79ed1b50 | |||
|
|
06f863f4f5 | ||
|
|
61bb18e13f | ||
|
|
3a95d3eb66 | ||
| b755593488 | |||
|
|
660eb13cb4 | ||
|
|
083dd38721 | ||
|
|
0211e0b23b | ||
| a11ba2289b |
13
.vscode/settings.json
vendored
13
.vscode/settings.json
vendored
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"cSpell.words": [
|
|
||||||
"descr",
|
|
||||||
"dport",
|
|
||||||
"fontconfig",
|
|
||||||
"gpgcheck",
|
|
||||||
"NOPASSWD",
|
|
||||||
"repodata",
|
|
||||||
"repomd",
|
|
||||||
"requiretty",
|
|
||||||
"yumrepo"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
130
Jenkinsfile
vendored
130
Jenkinsfile
vendored
@@ -1,130 +0,0 @@
|
|||||||
pipeline {
|
|
||||||
agent {
|
|
||||||
label 'puppet'
|
|
||||||
}
|
|
||||||
|
|
||||||
post {
|
|
||||||
always {
|
|
||||||
deleteDir() /* clean up our workspace */
|
|
||||||
}
|
|
||||||
success {
|
|
||||||
updateGitlabCommitStatus state: 'success'
|
|
||||||
}
|
|
||||||
failure {
|
|
||||||
updateGitlabCommitStatus state: 'failed'
|
|
||||||
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: 'support@confdroid.com', sendToIndividuals: true])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
options {
|
|
||||||
gitLabConnection('gitlab.confdroid.com')
|
|
||||||
}
|
|
||||||
|
|
||||||
stages {
|
|
||||||
|
|
||||||
stage('pull master') {
|
|
||||||
steps {
|
|
||||||
sshagent(['edd05eb6-26b5-4c7b-a5cc-ea2ab899f4fa']) {
|
|
||||||
sh '''
|
|
||||||
git config user.name "Jenkins Server"
|
|
||||||
git config user.email jenkins@confdroid.com
|
|
||||||
git fetch origin
|
|
||||||
source_branch="${gitlabSourceBranch:-${BRANCH_NAME:-${GIT_LOCAL_BRANCH:-$GIT_BRANCH}}}"
|
|
||||||
source_branch="${source_branch#origin/}"
|
|
||||||
source_branch="${source_branch#refs/heads/}"
|
|
||||||
if [ -z "$source_branch" ]; then
|
|
||||||
source_branch="development"
|
|
||||||
fi
|
|
||||||
echo "Using source branch: $source_branch"
|
|
||||||
# Create an isolated build branch from the triggering branch revision.
|
|
||||||
git checkout -B jenkins-build-$BUILD_NUMBER "origin/$source_branch"
|
|
||||||
# Merge the current master into the build branch before validation.
|
|
||||||
git merge origin/master --no-ff || { echo "Merge conflict detected"; exit 1; }
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('puppet parser') {
|
|
||||||
steps {
|
|
||||||
sh '''for file in $(find . -iname \'*.pp\'); do
|
|
||||||
/opt/puppetlabs/bin/puppet parser validate --color false --render-as s --modulepath=modules $file || exit 1;
|
|
||||||
done;'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('check templates') {
|
|
||||||
steps{
|
|
||||||
sh '''for file in $(find . -iname \'*.erb\');
|
|
||||||
do erb -P -x -T "-" $file | ruby -c || exit 1;
|
|
||||||
done;'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('puppet-lint') {
|
|
||||||
steps {
|
|
||||||
sh '''/usr/local/bin/puppet-lint . \\
|
|
||||||
--no-variable_scope-check \\
|
|
||||||
|| { echo "Puppet lint failed"; exit 1; }
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('SonarScan') {
|
|
||||||
steps {
|
|
||||||
withCredentials([string(credentialsId: 'sonar-token', variable: 'SONAR_TOKEN')]) {
|
|
||||||
sh '''
|
|
||||||
/opt/sonar-scanner/bin/sonar-scanner \
|
|
||||||
-Dsonar.projectKey=confdroid_jenkins \
|
|
||||||
-Dsonar.sources=. \
|
|
||||||
-Dsonar.host.url=https://sonarqube.confdroid.com \
|
|
||||||
-Dsonar.token=$SONAR_TOKEN
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('create Puppet documentation') {
|
|
||||||
steps {
|
|
||||||
sh '/opt/puppetlabs/bin/puppet strings'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('update repo') {
|
|
||||||
steps {
|
|
||||||
sshagent(['edd05eb6-26b5-4c7b-a5cc-ea2ab899f4fa']) {
|
|
||||||
sh '''
|
|
||||||
git config user.name "Jenkins Server"
|
|
||||||
git config user.email jenkins@confdroid.com
|
|
||||||
git add -A && git commit -am "Recommit for updates in build $BUILD_NUMBER" || echo "No changes to commit"
|
|
||||||
git fetch origin
|
|
||||||
git checkout -B master origin/master
|
|
||||||
git merge --no-ff jenkins-build-$BUILD_NUMBER -m "Merge build $BUILD_NUMBER into master"
|
|
||||||
git push origin master
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Mirror to Gitea') {
|
|
||||||
steps {
|
|
||||||
withCredentials([usernamePassword(
|
|
||||||
credentialsId: 'Jenkins-gitea',
|
|
||||||
usernameVariable: 'GITEA_USER',
|
|
||||||
passwordVariable: 'GITEA_TOKEN')]) {
|
|
||||||
script {
|
|
||||||
sh '''
|
|
||||||
git fetch origin
|
|
||||||
git checkout master
|
|
||||||
git reset --hard origin/master
|
|
||||||
git remote get-url master >/dev/null 2>&1 \
|
|
||||||
&& git remote set-url master https://sourcecode.confdroid.com/confdroid/confdroid_jenkins.git \
|
|
||||||
|| git remote add master https://sourcecode.confdroid.com/confdroid/confdroid_jenkins.git
|
|
||||||
git -c credential.helper="!f() { echo username=${GITEA_USER}; echo password=${GITEA_TOKEN}; }; f" \
|
|
||||||
push --force master refs/heads/master:refs/heads/master
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
61
README.md
61
README.md
@@ -1,22 +1,47 @@
|
|||||||
# Readme
|
# Readme
|
||||||
|
|
||||||
[](https://jenkins.confdroid.com/job/confdroid_jenkins/)|
|
[](https://jenkins.confdroid.com/job/confdroid_jenkins/)
|
||||||
|
[](https://sonarqube.confdroid.com/dashboard?id=confdroid_jenkins)
|
||||||
|
|
||||||
[[_TOC_]]
|
- [Readme](#readme)
|
||||||
|
- [Synopsis](#synopsis)
|
||||||
|
- [WARNING](#warning)
|
||||||
|
- [Features](#features)
|
||||||
|
- [Core](#core)
|
||||||
|
- [Optional](#optional)
|
||||||
|
- [Repo Documentation](#repo-documentation)
|
||||||
|
- [Dependencies](#dependencies)
|
||||||
|
- [Deployment](#deployment)
|
||||||
|
- [SELINUX](#selinux)
|
||||||
|
- [Known Problems](#known-problems)
|
||||||
|
- [Support](#support)
|
||||||
|
- [Tests](#tests)
|
||||||
|
- [Contact Us](#contact-us)
|
||||||
|
- [Disclaimer](#disclaimer)
|
||||||
|
|
||||||
## Synopsis
|
## Synopsis
|
||||||
|
|
||||||
Puppet 6 repo for managing Jenkins. Internal only due to access details for gitlab
|
Jenkins is an open-source automation server written in Java that automates the software development process, including building, testing, and deploying code.
|
||||||
|
|
||||||
|
`confdroid_jenkins` is a Puppet module for installing and managing Jenkins.
|
||||||
|
|
||||||
|
> This is a Work in Progress, currently features are added.
|
||||||
|
|
||||||
## WARNING
|
## WARNING
|
||||||
|
|
||||||
***Attention: Never use this puppet module on systems which have been previously configured manually. It is impossible to predict how and what would have been configured, hence previous configurations outside the scope of this module may be overwritten! Automated configurations require a test environment to verify that the module suits the purpose intended by the user, as well as tune the parameters, before deploying into live production***
|
> **Attention: Never use this puppet module on systems which have been previously configured manually. It is impossible to predict how and what would have been configured, hence previous configurations outside the scope of this module may be overwritten! Automated configurations require a test environment to verify that the module suits the purpose intended by the user, as well as tune the parameters, before deploying into live production**
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
INSTALLATION
|
### Core
|
||||||
|
|
||||||
* installs required binaries
|
- installs required binaries
|
||||||
|
- manage service
|
||||||
|
|
||||||
|
### Optional
|
||||||
|
|
||||||
|
- create a sudoers file for the Jenkins user to allow passwordless sudo, via `js_use_sudo`. Defaults to `false`
|
||||||
|
- manage firewall ports via `js_enable_fw`. Defaults to `true`. requires `puppetlabs-firewall`.
|
||||||
|
|
||||||
## Repo Documentation
|
## Repo Documentation
|
||||||
|
|
||||||
@@ -26,11 +51,12 @@ See the full Puppet documentation including parameters in `docs/index.html`
|
|||||||
|
|
||||||
All dependencies must be included in the catalogue.
|
All dependencies must be included in the catalogue.
|
||||||
|
|
||||||
* [java_cd](https://gitlab.confdroid.com/puppet/java_cd) to install java
|
- [confdroid_java](https://sourcecode.confdroid.com/confdroid/confdroid_java) to install java
|
||||||
|
- puppetlabs-firewall via r10k
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
|
|
||||||
* native Puppet deployment
|
- native Puppet deployment
|
||||||
|
|
||||||
via site.pp or nodes.pp
|
via site.pp or nodes.pp
|
||||||
|
|
||||||
@@ -40,7 +66,7 @@ node 'example.example.net' {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
* through Foreman:
|
- through Foreman:
|
||||||
|
|
||||||
In order to apply parameters through Foreman, the params.pp must be added to the host or host group in question.
|
In order to apply parameters through Foreman, the params.pp must be added to the host or host group in question.
|
||||||
|
|
||||||
@@ -54,21 +80,22 @@ All files and directories are configured with correct selinux context. If selinu
|
|||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
* OS: Rocky 9
|
- OS: Rocky 9 (all RHEL-based OS should work but Rocky 9 is tested)
|
||||||
* Puppet 6-8
|
- Puppet 8
|
||||||
|
|
||||||
## Tests
|
## Tests
|
||||||
|
|
||||||
* Puppet Lint
|
- Puppet Lint
|
||||||
* Puppet Parser
|
- Puppet Parser
|
||||||
* ERB Template Parser
|
- ERB Template Parser
|
||||||
* Sonar Quality Gate
|
- Sonar Quality Gate
|
||||||
|
|
||||||
## Contact Us
|
## Contact Us
|
||||||
|
|
||||||
[contact Us](https://confdroid.com/contact/)
|
- [contact Us](https://confdroid.com/contact/)
|
||||||
|
- [Feedback Portal](https://feedback.confdroid.com/)
|
||||||
|
|
||||||
## Disclaimer
|
## Disclaimer
|
||||||
|
|
||||||
ConfDroid as entity is entirely independent from Puppet. We provide custom configuration modules, written for specific purposes and specific environments.
|
ConfDroid as entity is entirely independent from Puppet. We provide custom configuration modules, written for specific purposes and specific environments.
|
||||||
The modules are tested and supported only as documented, and require testing in designated environments (i.e. lab or development environments) for parameter tuning etc. before deploying into production environments.
|
The modules are tested and supported only as documented, and require testing in designated environments (i.e. lab or development environments) for parameter tuning etc. before deploying into production environments.
|
||||||
|
|||||||
@@ -60,23 +60,70 @@
|
|||||||
<div id="content"><div id='filecontents'>
|
<div id="content"><div id='filecontents'>
|
||||||
<h1 id="label-Readme">Readme</h1>
|
<h1 id="label-Readme">Readme</h1>
|
||||||
|
|
||||||
<p><a href="https://jenkins.confdroid.com/job/confdroid_jenkins/"><img src="https://jenkins.confdroid.com/buildStatus/icon?job=confdroid_jenkins"></a>|</p>
|
<p><a href="https://jenkins.confdroid.com/job/confdroid_jenkins/"><img src="https://jenkins.confdroid.com/buildStatus/icon?job=confdroid_jenkins&style=plastic"></a> <a href="https://sonarqube.confdroid.com/dashboard?id=confdroid_jenkins"><img src="https://sonarqube.confdroid.com/api/project_badges/measure?project=confdroid_jenkins&metric=security_hotspots&token=sqb_ab7299f9502c7e498c19b03bb06497fa15bdd70c"></a></p>
|
||||||
|
<ul><li>
|
||||||
<p>[[<em>TOC</em>]]</p>
|
<p><a href="#readme">Readme</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#synopsis">Synopsis</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#warning">WARNING</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#features">Features</a></p>
|
||||||
|
<ul><li>
|
||||||
|
<p><a href="#core">Core</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#optional">Optional</a></p>
|
||||||
|
</li></ul>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#repo-documentation">Repo Documentation</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#dependencies">Dependencies</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#deployment">Deployment</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#selinux">SELINUX</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#known-problems">Known Problems</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#support">Support</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#tests">Tests</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#contact-us">Contact Us</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#disclaimer">Disclaimer</a></p>
|
||||||
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Synopsis">Synopsis</h2>
|
<h2 id="label-Synopsis">Synopsis</h2>
|
||||||
|
|
||||||
<p>Puppet 6 repo for managing Jenkins. Internal only due to access details for gitlab</p>
|
<p>Jenkins is an open-source automation server written in Java that automates the software development process, including building, testing, and deploying code.</p>
|
||||||
|
|
||||||
|
<p><code>confdroid_jenkins</code> is a Puppet module for installing and managing Jenkins.</p>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<p>This is a Work in Progress, currently features are added.</p>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
<h2 id="label-WARNING">WARNING</h2>
|
<h2 id="label-WARNING">WARNING</h2>
|
||||||
|
|
||||||
<p><strong><em>Attention: Never use this puppet module on systems which have been previously configured manually. It is impossible to predict how and what would have been configured, hence previous configurations outside the scope of this module may be overwritten! Automated configurations require a test environment to verify that the module suits the purpose intended by the user, as well as tune the parameters, before deploying into live production</em></strong></p>
|
<blockquote>
|
||||||
|
<p><strong>Attention: Never use this puppet module on systems which have been previously configured manually. It is impossible to predict how and what would have been configured, hence previous configurations outside the scope of this module may be overwritten! Automated configurations require a test environment to verify that the module suits the purpose intended by the user, as well as tune the parameters, before deploying into live production</strong></p>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
<h2 id="label-Features">Features</h2>
|
<h2 id="label-Features">Features</h2>
|
||||||
|
|
||||||
<p>INSTALLATION</p>
|
<h3 id="label-Core">Core</h3>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<p>installs required binaries</p>
|
<p>installs required binaries</p>
|
||||||
|
</li><li>
|
||||||
|
<p>manage service</p>
|
||||||
|
</li></ul>
|
||||||
|
|
||||||
|
<h3 id="label-Optional">Optional</h3>
|
||||||
|
<ul><li>
|
||||||
|
<p>create a sudoers file for the Jenkins user to allow passwordless sudo, via <code>js_use_sudo</code>. Defaults to <code>false</code></p>
|
||||||
|
</li><li>
|
||||||
|
<p>manage firewall ports via <code>js_enable_fw</code>. Defaults to <code>true</code>. requires <code>puppetlabs-firewall</code>.</p>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Repo+Documentation">Repo Documentation</h2>
|
<h2 id="label-Repo+Documentation">Repo Documentation</h2>
|
||||||
@@ -87,7 +134,9 @@
|
|||||||
|
|
||||||
<p>All dependencies must be included in the catalogue.</p>
|
<p>All dependencies must be included in the catalogue.</p>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<p><a href="https://gitlab.confdroid.com/puppet/java_cd">java_cd</a> to install java</p>
|
<p><a href="https://sourcecode.confdroid.com/confdroid/confdroid_java">confdroid_java</a> to install java</p>
|
||||||
|
</li><li>
|
||||||
|
<p>puppetlabs-firewall via r10k</p>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Deployment">Deployment</h2>
|
<h2 id="label-Deployment">Deployment</h2>
|
||||||
@@ -117,9 +166,9 @@
|
|||||||
|
|
||||||
<h2 id="label-Support">Support</h2>
|
<h2 id="label-Support">Support</h2>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<p>OS: Rocky 9</p>
|
<p>OS: Rocky 9 (all RHEL-based OS should work but Rocky 9 is tested)</p>
|
||||||
</li><li>
|
</li><li>
|
||||||
<p>Puppet 6-8</p>
|
<p>Puppet 8</p>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Tests">Tests</h2>
|
<h2 id="label-Tests">Tests</h2>
|
||||||
@@ -134,8 +183,11 @@
|
|||||||
</li></ul>
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Contact+Us">Contact Us</h2>
|
<h2 id="label-Contact+Us">Contact Us</h2>
|
||||||
|
<ul><li>
|
||||||
<p><a href="https://confdroid.com/contact/">contact Us</a></p>
|
<p><a href="https://confdroid.com/contact/">contact Us</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="https://feedback.confdroid.com/">Feedback Portal</a></p>
|
||||||
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Disclaimer">Disclaimer</h2>
|
<h2 id="label-Disclaimer">Disclaimer</h2>
|
||||||
|
|
||||||
|
|||||||
@@ -60,23 +60,70 @@
|
|||||||
<div id="content"><div id='filecontents'>
|
<div id="content"><div id='filecontents'>
|
||||||
<h1 id="label-Readme">Readme</h1>
|
<h1 id="label-Readme">Readme</h1>
|
||||||
|
|
||||||
<p><a href="https://jenkins.confdroid.com/job/confdroid_jenkins/"><img src="https://jenkins.confdroid.com/buildStatus/icon?job=confdroid_jenkins"></a>|</p>
|
<p><a href="https://jenkins.confdroid.com/job/confdroid_jenkins/"><img src="https://jenkins.confdroid.com/buildStatus/icon?job=confdroid_jenkins&style=plastic"></a> <a href="https://sonarqube.confdroid.com/dashboard?id=confdroid_jenkins"><img src="https://sonarqube.confdroid.com/api/project_badges/measure?project=confdroid_jenkins&metric=security_hotspots&token=sqb_ab7299f9502c7e498c19b03bb06497fa15bdd70c"></a></p>
|
||||||
|
<ul><li>
|
||||||
<p>[[<em>TOC</em>]]</p>
|
<p><a href="#readme">Readme</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#synopsis">Synopsis</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#warning">WARNING</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#features">Features</a></p>
|
||||||
|
<ul><li>
|
||||||
|
<p><a href="#core">Core</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#optional">Optional</a></p>
|
||||||
|
</li></ul>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#repo-documentation">Repo Documentation</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#dependencies">Dependencies</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#deployment">Deployment</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#selinux">SELINUX</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#known-problems">Known Problems</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#support">Support</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#tests">Tests</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#contact-us">Contact Us</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="#disclaimer">Disclaimer</a></p>
|
||||||
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Synopsis">Synopsis</h2>
|
<h2 id="label-Synopsis">Synopsis</h2>
|
||||||
|
|
||||||
<p>Puppet 6 repo for managing Jenkins. Internal only due to access details for gitlab</p>
|
<p>Jenkins is an open-source automation server written in Java that automates the software development process, including building, testing, and deploying code.</p>
|
||||||
|
|
||||||
|
<p><code>confdroid_jenkins</code> is a Puppet module for installing and managing Jenkins.</p>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<p>This is a Work in Progress, currently features are added.</p>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
<h2 id="label-WARNING">WARNING</h2>
|
<h2 id="label-WARNING">WARNING</h2>
|
||||||
|
|
||||||
<p><strong><em>Attention: Never use this puppet module on systems which have been previously configured manually. It is impossible to predict how and what would have been configured, hence previous configurations outside the scope of this module may be overwritten! Automated configurations require a test environment to verify that the module suits the purpose intended by the user, as well as tune the parameters, before deploying into live production</em></strong></p>
|
<blockquote>
|
||||||
|
<p><strong>Attention: Never use this puppet module on systems which have been previously configured manually. It is impossible to predict how and what would have been configured, hence previous configurations outside the scope of this module may be overwritten! Automated configurations require a test environment to verify that the module suits the purpose intended by the user, as well as tune the parameters, before deploying into live production</strong></p>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
<h2 id="label-Features">Features</h2>
|
<h2 id="label-Features">Features</h2>
|
||||||
|
|
||||||
<p>INSTALLATION</p>
|
<h3 id="label-Core">Core</h3>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<p>installs required binaries</p>
|
<p>installs required binaries</p>
|
||||||
|
</li><li>
|
||||||
|
<p>manage service</p>
|
||||||
|
</li></ul>
|
||||||
|
|
||||||
|
<h3 id="label-Optional">Optional</h3>
|
||||||
|
<ul><li>
|
||||||
|
<p>create a sudoers file for the Jenkins user to allow passwordless sudo, via <code>js_use_sudo</code>. Defaults to <code>false</code></p>
|
||||||
|
</li><li>
|
||||||
|
<p>manage firewall ports via <code>js_enable_fw</code>. Defaults to <code>true</code>. requires <code>puppetlabs-firewall</code>.</p>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Repo+Documentation">Repo Documentation</h2>
|
<h2 id="label-Repo+Documentation">Repo Documentation</h2>
|
||||||
@@ -87,7 +134,9 @@
|
|||||||
|
|
||||||
<p>All dependencies must be included in the catalogue.</p>
|
<p>All dependencies must be included in the catalogue.</p>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<p><a href="https://gitlab.confdroid.com/puppet/java_cd">java_cd</a> to install java</p>
|
<p><a href="https://sourcecode.confdroid.com/confdroid/confdroid_java">confdroid_java</a> to install java</p>
|
||||||
|
</li><li>
|
||||||
|
<p>puppetlabs-firewall via r10k</p>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Deployment">Deployment</h2>
|
<h2 id="label-Deployment">Deployment</h2>
|
||||||
@@ -117,9 +166,9 @@
|
|||||||
|
|
||||||
<h2 id="label-Support">Support</h2>
|
<h2 id="label-Support">Support</h2>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<p>OS: Rocky 9</p>
|
<p>OS: Rocky 9 (all RHEL-based OS should work but Rocky 9 is tested)</p>
|
||||||
</li><li>
|
</li><li>
|
||||||
<p>Puppet 6-8</p>
|
<p>Puppet 8</p>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Tests">Tests</h2>
|
<h2 id="label-Tests">Tests</h2>
|
||||||
@@ -134,8 +183,11 @@
|
|||||||
</li></ul>
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Contact+Us">Contact Us</h2>
|
<h2 id="label-Contact+Us">Contact Us</h2>
|
||||||
|
<ul><li>
|
||||||
<p><a href="https://confdroid.com/contact/">contact Us</a></p>
|
<p><a href="https://confdroid.com/contact/">contact Us</a></p>
|
||||||
|
</li><li>
|
||||||
|
<p><a href="https://feedback.confdroid.com/">Feedback Portal</a></p>
|
||||||
|
</li></ul>
|
||||||
|
|
||||||
<h2 id="label-Disclaimer">Disclaimer</h2>
|
<h2 id="label-Disclaimer">Disclaimer</h2>
|
||||||
|
|
||||||
|
|||||||
@@ -107,7 +107,55 @@
|
|||||||
9
|
9
|
||||||
10
|
10
|
||||||
11
|
11
|
||||||
12</pre>
|
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</pre>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<pre class="code"><span class="info file"># File 'manifests/main/dirs.pp', line 6</span>
|
<pre class="code"><span class="info file"># File 'manifests/main/dirs.pp', line 6</span>
|
||||||
@@ -117,6 +165,54 @@ class confdroid_jenkins::main::dirs (
|
|||||||
) inherits confdroid_jenkins::params {
|
) inherits confdroid_jenkins::params {
|
||||||
if $fqdn == $js_host_fqdn {
|
if $fqdn == $js_host_fqdn {
|
||||||
require confdroid_jenkins::main::install
|
require confdroid_jenkins::main::install
|
||||||
|
|
||||||
|
# jenkins home
|
||||||
|
file { $js_jenkins_home:
|
||||||
|
ensure => 'directory',
|
||||||
|
owner => 'jenkins',
|
||||||
|
group => 'jenkins',
|
||||||
|
mode => '0755',
|
||||||
|
selrange => s0,
|
||||||
|
selrole => object_r,
|
||||||
|
seltype => var_lib_t,
|
||||||
|
seluser => unconfined_u,
|
||||||
|
}
|
||||||
|
|
||||||
|
# jenkins logs
|
||||||
|
file { $js_jenkins_logs:
|
||||||
|
ensure => 'directory',
|
||||||
|
owner => 'jenkins',
|
||||||
|
group => 'jenkins',
|
||||||
|
mode => '0755',
|
||||||
|
selrange => s0,
|
||||||
|
selrole => object_r,
|
||||||
|
seltype => var_lib_t,
|
||||||
|
seluser => system_u,
|
||||||
|
}
|
||||||
|
|
||||||
|
# jenkins cache
|
||||||
|
file { $js_jenkins_cache:
|
||||||
|
ensure => 'directory',
|
||||||
|
owner => 'jenkins',
|
||||||
|
group => 'jenkins',
|
||||||
|
mode => '0750',
|
||||||
|
selrange => s0,
|
||||||
|
selrole => object_r,
|
||||||
|
seltype => var_t,
|
||||||
|
seluser => unconfined_u,
|
||||||
|
}
|
||||||
|
|
||||||
|
# jenkins run
|
||||||
|
file { $js_jenkins_run:
|
||||||
|
ensure => 'directory',
|
||||||
|
owner => 'jenkins',
|
||||||
|
group => 'jenkins',
|
||||||
|
mode => '0770',
|
||||||
|
selrange => s0,
|
||||||
|
selrole => object_r,
|
||||||
|
seltype => var_run_t,
|
||||||
|
seluser => system_u,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}</pre>
|
}</pre>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -124,8 +124,8 @@ class confdroid_jenkins::main::install (
|
|||||||
require confdroid_java
|
require confdroid_java
|
||||||
require confdroid_jenkins::main::yumrepo
|
require confdroid_jenkins::main::yumrepo
|
||||||
|
|
||||||
package { $reqpackages:
|
package { $js_reqpackages:
|
||||||
ensure => $pkg_ensure,
|
ensure => $js_pkg_ensure,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}</pre>
|
}</pre>
|
||||||
|
|||||||
@@ -137,9 +137,9 @@ class confdroid_jenkins::main::yumrepo (
|
|||||||
yumrepo { 'jenkins':
|
yumrepo { 'jenkins':
|
||||||
descr => 'Jenkins-stable',
|
descr => 'Jenkins-stable',
|
||||||
baseurl => $js_base_url,
|
baseurl => $js_base_url,
|
||||||
type => 'rpm-md',
|
|
||||||
gpgcheck => $js_gpg_check,
|
gpgcheck => $js_gpg_check,
|
||||||
repo_gpgcheck => 1,
|
gpgkey => "${js_base_url}/${js_key}",
|
||||||
|
repo_gpgcheck => $js_gpg_repo_check,
|
||||||
enabled => $js_repo_enabled,
|
enabled => $js_repo_enabled,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@
|
|||||||
|
|
||||||
<li>
|
<li>
|
||||||
|
|
||||||
<span class='name'>reqpackages</span>
|
<span class='name'>js_reqpackages</span>
|
||||||
|
|
||||||
|
|
||||||
<span class='type'>(<tt>Array</tt>)</span>
|
<span class='type'>(<tt>Array</tt>)</span>
|
||||||
@@ -130,13 +130,13 @@
|
|||||||
|
|
||||||
<li>
|
<li>
|
||||||
|
|
||||||
<span class='name'>pkg_ensure</span>
|
<span class='name'>js_pkg_ensure</span>
|
||||||
|
|
||||||
|
|
||||||
<span class='type'>(<tt>String</tt>)</span>
|
<span class='type'>(<tt>String</tt>)</span>
|
||||||
|
|
||||||
|
|
||||||
<em class="default">(defaults to: <tt>'latest'</tt>)</em>
|
<em class="default">(defaults to: <tt>'present'</tt>)</em>
|
||||||
|
|
||||||
|
|
||||||
—
|
—
|
||||||
@@ -254,6 +254,24 @@
|
|||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
|
||||||
|
<span class='name'>js_gpg_repo_check</span>
|
||||||
|
|
||||||
|
|
||||||
|
<span class='type'>(<tt>String</tt>)</span>
|
||||||
|
|
||||||
|
|
||||||
|
<em class="default">(defaults to: <tt>'1'</tt>)</em>
|
||||||
|
|
||||||
|
|
||||||
|
—
|
||||||
|
<div class='inline'>
|
||||||
|
<p>whether to enable GPG check for the Jenkins repository</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
|
|
||||||
<span class='name'>js_enable_fw</span>
|
<span class='name'>js_enable_fw</span>
|
||||||
@@ -344,19 +362,6 @@
|
|||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
|
||||||
|
|
||||||
<span class='name'>js_gpg_repo_check</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class='type'>(<tt>String</tt>)</span>
|
|
||||||
|
|
||||||
|
|
||||||
<em class="default">(defaults to: <tt>'1'</tt>)</em>
|
|
||||||
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
@@ -368,7 +373,6 @@
|
|||||||
<pre class="lines">
|
<pre class="lines">
|
||||||
|
|
||||||
|
|
||||||
19
|
|
||||||
20
|
20
|
||||||
21
|
21
|
||||||
22
|
22
|
||||||
@@ -406,15 +410,22 @@
|
|||||||
54
|
54
|
||||||
55
|
55
|
||||||
56
|
56
|
||||||
57</pre>
|
57
|
||||||
|
58
|
||||||
|
59
|
||||||
|
60
|
||||||
|
61
|
||||||
|
62
|
||||||
|
63
|
||||||
|
64</pre>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<pre class="code"><span class="info file"># File 'manifests/params.pp', line 19</span>
|
<pre class="code"><span class="info file"># File 'manifests/params.pp', line 20</span>
|
||||||
|
|
||||||
class confdroid_jenkins::params (
|
class confdroid_jenkins::params (
|
||||||
|
|
||||||
Array $reqpackages = ['jenkins','fontconfig'],
|
Array $js_reqpackages = ['jenkins','fontconfig'],
|
||||||
String $pkg_ensure = 'latest',
|
String $js_pkg_ensure = 'present',
|
||||||
String $js_gpg_check = '1',
|
String $js_gpg_check = '1',
|
||||||
String $js_repo_enabled = '1',
|
String $js_repo_enabled = '1',
|
||||||
String $js_gpg_repo_check = '1',
|
String $js_gpg_repo_check = '1',
|
||||||
@@ -447,6 +458,12 @@ class confdroid_jenkins::params (
|
|||||||
# Service
|
# Service
|
||||||
$js_service = 'jenkins'
|
$js_service = 'jenkins'
|
||||||
|
|
||||||
|
# directories
|
||||||
|
$js_jenkins_home = '/var/lib/jenkins'
|
||||||
|
$js_jenkins_logs = "${js_jenkins_home}/logs"
|
||||||
|
$js_jenkins_cache = '/var/cache/jenkins'
|
||||||
|
$js_jenkins_run = '/run/jenkins'
|
||||||
|
|
||||||
# includes must be last
|
# includes must be last
|
||||||
include confdroid_jenkins::main::config
|
include confdroid_jenkins::main::config
|
||||||
}</pre>
|
}</pre>
|
||||||
|
|||||||
@@ -8,5 +8,53 @@ class confdroid_jenkins::main::dirs (
|
|||||||
) inherits confdroid_jenkins::params {
|
) inherits confdroid_jenkins::params {
|
||||||
if $fqdn == $js_host_fqdn {
|
if $fqdn == $js_host_fqdn {
|
||||||
require confdroid_jenkins::main::install
|
require confdroid_jenkins::main::install
|
||||||
|
|
||||||
|
# jenkins home
|
||||||
|
file { $js_jenkins_home:
|
||||||
|
ensure => 'directory',
|
||||||
|
owner => 'jenkins',
|
||||||
|
group => 'jenkins',
|
||||||
|
mode => '0755',
|
||||||
|
selrange => s0,
|
||||||
|
selrole => object_r,
|
||||||
|
seltype => var_lib_t,
|
||||||
|
seluser => unconfined_u,
|
||||||
|
}
|
||||||
|
|
||||||
|
# jenkins logs
|
||||||
|
file { $js_jenkins_logs:
|
||||||
|
ensure => 'directory',
|
||||||
|
owner => 'jenkins',
|
||||||
|
group => 'jenkins',
|
||||||
|
mode => '0755',
|
||||||
|
selrange => s0,
|
||||||
|
selrole => object_r,
|
||||||
|
seltype => var_lib_t,
|
||||||
|
seluser => system_u,
|
||||||
|
}
|
||||||
|
|
||||||
|
# jenkins cache
|
||||||
|
file { $js_jenkins_cache:
|
||||||
|
ensure => 'directory',
|
||||||
|
owner => 'jenkins',
|
||||||
|
group => 'jenkins',
|
||||||
|
mode => '0750',
|
||||||
|
selrange => s0,
|
||||||
|
selrole => object_r,
|
||||||
|
seltype => var_t,
|
||||||
|
seluser => unconfined_u,
|
||||||
|
}
|
||||||
|
|
||||||
|
# jenkins run
|
||||||
|
file { $js_jenkins_run:
|
||||||
|
ensure => 'directory',
|
||||||
|
owner => 'jenkins',
|
||||||
|
group => 'jenkins',
|
||||||
|
mode => '0770',
|
||||||
|
selrange => s0,
|
||||||
|
selrole => object_r,
|
||||||
|
seltype => var_run_t,
|
||||||
|
seluser => system_u,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ class confdroid_jenkins::main::install (
|
|||||||
require confdroid_java
|
require confdroid_java
|
||||||
require confdroid_jenkins::main::yumrepo
|
require confdroid_jenkins::main::yumrepo
|
||||||
|
|
||||||
package { $reqpackages:
|
package { $js_reqpackages:
|
||||||
ensure => $pkg_ensure,
|
ensure => $js_pkg_ensure,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ class confdroid_jenkins::main::yumrepo (
|
|||||||
yumrepo { 'jenkins':
|
yumrepo { 'jenkins':
|
||||||
descr => 'Jenkins-stable',
|
descr => 'Jenkins-stable',
|
||||||
baseurl => $js_base_url,
|
baseurl => $js_base_url,
|
||||||
type => 'rpm-md',
|
|
||||||
gpgcheck => $js_gpg_check,
|
gpgcheck => $js_gpg_check,
|
||||||
repo_gpgcheck => 1,
|
gpgkey => "${js_base_url}/${js_key}",
|
||||||
|
repo_gpgcheck => $js_gpg_repo_check,
|
||||||
enabled => $js_repo_enabled,
|
enabled => $js_repo_enabled,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,14 +2,15 @@
|
|||||||
# Module name: confdroid_jenkins
|
# Module name: confdroid_jenkins
|
||||||
# Author: 12ww1160 (12ww1160@confdroid.com)
|
# Author: 12ww1160 (12ww1160@confdroid.com)
|
||||||
# @summary Class holds all parameters for the confdroid_jenkins module.
|
# @summary Class holds all parameters for the confdroid_jenkins module.
|
||||||
# @param [Array] reqpackages which packages to install
|
# @param [Array] js_reqpackages which packages to install
|
||||||
# @param [String] pkg_ensure which packages to install
|
# @param [String] js_pkg_ensure which packages to install
|
||||||
# @param [String] js_gpg_check whether to enable GPG check for Jenkins packages
|
# @param [String] js_gpg_check whether to enable GPG check for Jenkins packages
|
||||||
# @param [String] js_repo_enabled whether to enable the Jenkins repository
|
# @param [String] js_repo_enabled whether to enable the Jenkins repository
|
||||||
# @param [String] js_host_fqdn fqdn of the host where Jenkins should run
|
# @param [String] js_host_fqdn fqdn of the host where Jenkins should run
|
||||||
# @param [String] js_base_url the base URL for the Jenkins repository
|
# @param [String] js_base_url the base URL for the Jenkins repository
|
||||||
# @param [String] js_key the filename of the Jenkins GPG key to import
|
# @param [String] js_key the filename of the Jenkins GPG key to import
|
||||||
# @param [String] js_key_code the code of the Jenkins GPG key to check
|
# @param [String] js_key_code the code of the Jenkins GPG key to check
|
||||||
|
# @param [String] js_gpg_repo_check whether to enable GPG check for the Jenkins repository
|
||||||
# @param [Boolean] js_enable_fw whether to enable firewall control
|
# @param [Boolean] js_enable_fw whether to enable firewall control
|
||||||
# @param [String] js_fw_rule the prefix for the firewall rule order
|
# @param [String] js_fw_rule the prefix for the firewall rule order
|
||||||
# @param [String] js_jenkins_port the port to open for Jenkins
|
# @param [String] js_jenkins_port the port to open for Jenkins
|
||||||
@@ -18,8 +19,8 @@
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
class confdroid_jenkins::params (
|
class confdroid_jenkins::params (
|
||||||
|
|
||||||
Array $reqpackages = ['jenkins','fontconfig'],
|
Array $js_reqpackages = ['jenkins','fontconfig'],
|
||||||
String $pkg_ensure = 'latest',
|
String $js_pkg_ensure = 'present',
|
||||||
String $js_gpg_check = '1',
|
String $js_gpg_check = '1',
|
||||||
String $js_repo_enabled = '1',
|
String $js_repo_enabled = '1',
|
||||||
String $js_gpg_repo_check = '1',
|
String $js_gpg_repo_check = '1',
|
||||||
@@ -52,6 +53,12 @@ class confdroid_jenkins::params (
|
|||||||
# Service
|
# Service
|
||||||
$js_service = 'jenkins'
|
$js_service = 'jenkins'
|
||||||
|
|
||||||
|
# directories
|
||||||
|
$js_jenkins_home = '/var/lib/jenkins'
|
||||||
|
$js_jenkins_logs = "${js_jenkins_home}/logs"
|
||||||
|
$js_jenkins_cache = '/var/cache/jenkins'
|
||||||
|
$js_jenkins_run = '/run/jenkins'
|
||||||
|
|
||||||
# includes must be last
|
# includes must be last
|
||||||
include confdroid_jenkins::main::config
|
include confdroid_jenkins::main::config
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user