Compare commits
5 Commits
39d7e1790d
...
febf9f494d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
febf9f494d | ||
|
|
72810343ec | ||
|
|
eba68be525 | ||
| 12ca98ceca | |||
|
|
df02776fef |
@@ -1,3 +0,0 @@
|
|||||||
--no-variable_scope-check
|
|
||||||
--no-top_scope_facts
|
|
||||||
--no-140chars-check
|
|
||||||
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
|
|
||||||
# Ensure we're on the development branch (triggered by push)
|
|
||||||
git checkout development
|
|
||||||
# Create jenkins branch from development
|
|
||||||
git checkout -b jenkins-build-$BUILD_NUMBER
|
|
||||||
# Optionally merge master into jenkins to ensure compatibility
|
|
||||||
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_ssh \
|
|
||||||
-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 push -o merge_request.create \
|
|
||||||
-o merge_request.target=master \
|
|
||||||
-o merge_request.title="Auto-merge for build $BUILD_NUMBER" \
|
|
||||||
-o merge_request.description="Automated changes from Jenkins build $BUILD_NUMBER" \
|
|
||||||
-o merge_request.merge_when_pipeline_succeeds=true \
|
|
||||||
origin jenkins-build-$BUILD_NUMBER
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Mirror to Gitea') {
|
|
||||||
steps {
|
|
||||||
withCredentials([usernamePassword(
|
|
||||||
credentialsId: 'Jenkins-gitea',
|
|
||||||
usernameVariable: 'GITEA_USER',
|
|
||||||
passwordVariable: 'GITEA_TOKEN')]) {
|
|
||||||
script {
|
|
||||||
// Checkout from GitLab (already done implicitly)
|
|
||||||
sh '''
|
|
||||||
git checkout master
|
|
||||||
git pull origin master
|
|
||||||
git branch -D development
|
|
||||||
git branch -D jenkins-build-$BUILD_NUMBER
|
|
||||||
git rm -f Jenkinsfile
|
|
||||||
git rm -r --cached .vscode || echo "No .vscode to remove from git"
|
|
||||||
git rm -r --cached .puppet-lint.rc || echo "No .puppet-lint.rc to remove from git"
|
|
||||||
git commit --amend --no-edit --allow-empty
|
|
||||||
git remote add master https://sourcecode.confdroid.com/confdroid/confdroid_ssh.git
|
|
||||||
git -c credential.helper="!f() { echo username=${GITEA_USER}; echo password=${GITEA_TOKEN}; }; f" \
|
|
||||||
push master --mirror
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -25,11 +25,13 @@
|
|||||||
## Features
|
## Features
|
||||||
|
|
||||||
- install required binaries
|
- install required binaries
|
||||||
- manage local custom configuration based on parameters, overriding the defaults
|
|
||||||
- manage selinux rules
|
- manage selinux rules
|
||||||
- manage service
|
- manage service
|
||||||
- (optional) manage firewall
|
- (optional) manage firewall
|
||||||
|
|
||||||
|
> Note
|
||||||
|
Originally I thought it was a great idea to have a single custom configuration file, which would override the default settings in the sshd_config. But I quickly learned, that this is not a great idea, for it seemed to work out differently on various hosts despite identical settings. For instance gitlab is using SSH not only for remote sessions but also for git operations, which broke with this file in place. So right now this module will only ensure the main default config is available and the service is always running. Custom configurations can be enabled after through testing through the parameters under #sshd section, but can be forced off through the `ssh_custom_ensure`setting set to `absent` (default).
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
- Rocky 9 (Any RHEL 9 based OS should work but has not been tested)
|
- Rocky 9 (Any RHEL 9 based OS should work but has not been tested)
|
||||||
|
|||||||
@@ -97,8 +97,6 @@
|
|||||||
<ul><li>
|
<ul><li>
|
||||||
<p>install required binaries</p>
|
<p>install required binaries</p>
|
||||||
</li><li>
|
</li><li>
|
||||||
<p>manage local custom configuration based on parameters, overriding the defaults</p>
|
|
||||||
</li><li>
|
|
||||||
<p>manage selinux rules</p>
|
<p>manage selinux rules</p>
|
||||||
</li><li>
|
</li><li>
|
||||||
<p>manage service</p>
|
<p>manage service</p>
|
||||||
@@ -106,6 +104,10 @@
|
|||||||
<p>(optional) manage firewall</p>
|
<p>(optional) manage firewall</p>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<p>Note Originally I thought it was a great idea to have a single custom configuration file, which would override the default settings in the sshd_config. But I quickly learned, that this is not a great idea, for it seemed to work out differently on various hosts despite identical settings. For instance gitlab is using SSH not only for remote sessions but also for git operations, which broke with this file in place. So right now this module will only ensure the main default config is available and the service is always running. Custom configurations can be enabled after through testing through the parameters under #sshd section, but can be forced off through the <code>ssh_custom_ensure</code>setting set to <code>absent</code> (default).</p>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
<h2 id="label-Support">Support</h2>
|
<h2 id="label-Support">Support</h2>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<p>Rocky 9 (Any RHEL 9 based OS should work but has not been tested)</p>
|
<p>Rocky 9 (Any RHEL 9 based OS should work but has not been tested)</p>
|
||||||
|
|||||||
@@ -97,8 +97,6 @@
|
|||||||
<ul><li>
|
<ul><li>
|
||||||
<p>install required binaries</p>
|
<p>install required binaries</p>
|
||||||
</li><li>
|
</li><li>
|
||||||
<p>manage local custom configuration based on parameters, overriding the defaults</p>
|
|
||||||
</li><li>
|
|
||||||
<p>manage selinux rules</p>
|
<p>manage selinux rules</p>
|
||||||
</li><li>
|
</li><li>
|
||||||
<p>manage service</p>
|
<p>manage service</p>
|
||||||
@@ -106,6 +104,10 @@
|
|||||||
<p>(optional) manage firewall</p>
|
<p>(optional) manage firewall</p>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<p>Note Originally I thought it was a great idea to have a single custom configuration file, which would override the default settings in the sshd_config. But I quickly learned, that this is not a great idea, for it seemed to work out differently on various hosts despite identical settings. For instance gitlab is using SSH not only for remote sessions but also for git operations, which broke with this file in place. So right now this module will only ensure the main default config is available and the service is always running. Custom configurations can be enabled after through testing through the parameters under #sshd section, but can be forced off through the <code>ssh_custom_ensure</code>setting set to <code>absent</code> (default).</p>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
<h2 id="label-Support">Support</h2>
|
<h2 id="label-Support">Support</h2>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<p>Rocky 9 (Any RHEL 9 based OS should work but has not been tested)</p>
|
<p>Rocky 9 (Any RHEL 9 based OS should work but has not been tested)</p>
|
||||||
|
|||||||
@@ -134,14 +134,7 @@
|
|||||||
36
|
36
|
||||||
37
|
37
|
||||||
38
|
38
|
||||||
39
|
39</pre>
|
||||||
40
|
|
||||||
41
|
|
||||||
42
|
|
||||||
43
|
|
||||||
44
|
|
||||||
45
|
|
||||||
46</pre>
|
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<pre class="code"><span class="info file"># File 'manifests/main/files.pp', line 6</span>
|
<pre class="code"><span class="info file"># File 'manifests/main/files.pp', line 6</span>
|
||||||
@@ -178,13 +171,6 @@ class confdroid_ssh::main::files (
|
|||||||
content => template($sshd_custom_erb),
|
content => template($sshd_custom_erb),
|
||||||
notify => Service[$sshd_service],
|
notify => Service[$sshd_service],
|
||||||
}
|
}
|
||||||
# we want the default root login setting to be managed by the custom conf,
|
|
||||||
# so we remove the default file if it exists
|
|
||||||
file { $sshd_root_login_file:
|
|
||||||
ensure => absent,
|
|
||||||
path => $sshd_root_login_file,
|
|
||||||
notify => Service[$sshd_service],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}</pre>
|
}</pre>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -35,12 +35,5 @@ class confdroid_ssh::main::files (
|
|||||||
content => template($sshd_custom_erb),
|
content => template($sshd_custom_erb),
|
||||||
notify => Service[$sshd_service],
|
notify => Service[$sshd_service],
|
||||||
}
|
}
|
||||||
# we want the default root login setting to be managed by the custom conf,
|
|
||||||
# so we remove the default file if it exists
|
|
||||||
file { $sshd_root_login_file:
|
|
||||||
ensure => absent,
|
|
||||||
path => $sshd_root_login_file,
|
|
||||||
notify => Service[$sshd_service],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user