Inital Commit
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*.tar.xz
|
||||||
|
/distrobuilder
|
||||||
74
CT-Build/Alpine.Jenkinsfile
Normal file
74
CT-Build/Alpine.Jenkinsfile
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
String[] ImgVariantList = ['minmal', 'default']
|
||||||
|
|
||||||
|
pipeline {
|
||||||
|
agent { label 'LXCBuilder' }
|
||||||
|
parameters {
|
||||||
|
booleanParam description: 'Enable muticore support for ZX compression ', name: 'ZX_Multicore'
|
||||||
|
string defaultValue: '0', description: 'Set amount of core\'s ZX is allowed when compressing (use 0 for all cores)', name: 'ZX_Cores'
|
||||||
|
booleanParam description: 'Only build specified variant', name: 'OneRun'
|
||||||
|
string defaultValue: 'VariantName', description: 'Variant for OneBuild', name: 'OneRunVariant'
|
||||||
|
}
|
||||||
|
options {
|
||||||
|
skipDefaultCheckout()
|
||||||
|
buildDiscarder(logRotator(numToKeepStr: '2', artifactNumToKeepStr: '1'))
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Prepare') {
|
||||||
|
steps {
|
||||||
|
// Cleanup before starting
|
||||||
|
cleanWs()
|
||||||
|
// Checkout the repository
|
||||||
|
checkout scm
|
||||||
|
// Get distrobuilder
|
||||||
|
copyArtifacts filter: 'distrobuilder-BrampCustom', fingerprintArtifacts: true, flatten: true, projectName: 'LXC-ImgBuilder/DistroBuilder', selector: lastSuccessful()
|
||||||
|
// Setup Env
|
||||||
|
sh '''mkdir $WORKSPACE/REL
|
||||||
|
mv distrobuilder-* distrobuilder
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Image Configs'){
|
||||||
|
steps{
|
||||||
|
script{
|
||||||
|
|
||||||
|
//Set Variantlist to one if single build if requested
|
||||||
|
if (env.OneRun == 'true') {
|
||||||
|
ImgVariantList = [env.OneRunVariant]
|
||||||
|
}
|
||||||
|
|
||||||
|
//Run build for requested variants
|
||||||
|
for(ImgVariant in ImgVariantList){
|
||||||
|
env.ZX_Multicore = ZX_Multicore
|
||||||
|
env.ZX_Cores = ZX_Cores
|
||||||
|
env.ImgVariant = ImgVariant
|
||||||
|
stage("Build ${ImgVariant}") {
|
||||||
|
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
|
||||||
|
sh '''
|
||||||
|
if $ZX_Multicore; then
|
||||||
|
export XZ_DEFAULTS="-T $ZX_Cores"
|
||||||
|
fi
|
||||||
|
sudo $WORKSPACE/distrobuilder build-lxc Alpine.yaml $WORKSPACE/REL/$ImgVariant/ -o image.variant=$ImgVariant
|
||||||
|
sudo chown jenkins:jenkins -R $WORKSPACE/REL
|
||||||
|
mv $WORKSPACE/REL/$ImgVariant/rootfs.tar.xz Alpine-$ImgVariant.tar.xz
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Finish') {
|
||||||
|
steps {
|
||||||
|
// Save generated files
|
||||||
|
archiveArtifacts artifacts: '*.tar.xz', followSymlinks: false
|
||||||
|
// Copy artifacts to /LXCBuild folder
|
||||||
|
sh '''
|
||||||
|
mkdir -p /LXCBuild/template/cache
|
||||||
|
cp -f *.tar.xz /LXCBuild/template/cache
|
||||||
|
'''
|
||||||
|
// Cleaning WorkSpace
|
||||||
|
//cleanWs()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
307
CT-Build/Alpine.yaml
Normal file
307
CT-Build/Alpine.yaml
Normal file
@@ -0,0 +1,307 @@
|
|||||||
|
image:
|
||||||
|
distribution: "alpinelinux"
|
||||||
|
release: "3.14"
|
||||||
|
|
||||||
|
source:
|
||||||
|
downloader: alpinelinux-http
|
||||||
|
same_as: 3.12
|
||||||
|
keyserver: keys.openpgp.org
|
||||||
|
#InitDownloadREPO
|
||||||
|
url: http://192.168.2.83/alpine/
|
||||||
|
keys:
|
||||||
|
# 0482D84022F52DF1C4E7CD43293ACD0907D9495A
|
||||||
|
- |-
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
bcgRRcklNr8mTzJH
|
||||||
|
=ckew
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
targets:
|
||||||
|
lxc:
|
||||||
|
create-message: |
|
||||||
|
You just created an {{ image.description }} container.
|
||||||
|
|
||||||
|
config:
|
||||||
|
- type: all
|
||||||
|
before: 5
|
||||||
|
content: |-
|
||||||
|
lxc.include = LXC_TEMPLATE_CONFIG/sabayon.common.conf
|
||||||
|
|
||||||
|
- type: user
|
||||||
|
before: 5
|
||||||
|
content: |-
|
||||||
|
lxc.include = LXC_TEMPLATE_CONFIG/sabayon.userns.conf
|
||||||
|
|
||||||
|
- type: all
|
||||||
|
after: 4
|
||||||
|
content: |-
|
||||||
|
lxc.include = LXC_TEMPLATE_CONFIG/common.conf
|
||||||
|
|
||||||
|
- type: user
|
||||||
|
after: 4
|
||||||
|
content: |-
|
||||||
|
lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
|
||||||
|
|
||||||
|
- type: all
|
||||||
|
content: |-
|
||||||
|
lxc.arch = {{ image.architecture_kernel }}
|
||||||
|
|
||||||
|
files:
|
||||||
|
- path: /etc/hostname
|
||||||
|
generator: hostname
|
||||||
|
|
||||||
|
- path: /etc/hosts
|
||||||
|
generator: hosts
|
||||||
|
|
||||||
|
- path: /var/lib/dbus/machine-id
|
||||||
|
generator: remove
|
||||||
|
|
||||||
|
- path: /etc/netplan/10-lxc.yaml
|
||||||
|
generator: dump
|
||||||
|
content: |-
|
||||||
|
|
||||||
|
|
||||||
|
- path: /etc/network/interfaces
|
||||||
|
generator: dump
|
||||||
|
content: |-
|
||||||
|
auto eth0
|
||||||
|
iface eth0 inet dhcp
|
||||||
|
hostname $(hostname)
|
||||||
|
|
||||||
|
- path: /etc/inittab
|
||||||
|
generator: dump
|
||||||
|
content: |-
|
||||||
|
# /etc/inittab
|
||||||
|
::sysinit:/sbin/openrc sysinit
|
||||||
|
::sysinit:/sbin/openrc boot
|
||||||
|
::wait:/sbin/openrc default
|
||||||
|
|
||||||
|
# Set up a couple of getty's
|
||||||
|
::respawn:/sbin/getty 38400 console
|
||||||
|
#tty1::respawn:/sbin/getty 38400 tty1
|
||||||
|
#tty2::respawn:/sbin/getty 38400 tty2
|
||||||
|
#tty3::respawn:/sbin/getty 38400 tty3
|
||||||
|
#tty4::respawn:/sbin/getty 38400 tty4
|
||||||
|
|
||||||
|
# Stuff to do for the 3-finger salute
|
||||||
|
::ctrlaltdel:/sbin/reboot
|
||||||
|
|
||||||
|
# Stuff to do before rebooting
|
||||||
|
::shutdown:/sbin/openrc shutdown
|
||||||
|
|
||||||
|
- path: /etc/inittab
|
||||||
|
generator: template
|
||||||
|
name: inittab
|
||||||
|
content: |-
|
||||||
|
# /etc/inittab
|
||||||
|
::sysinit:/sbin/openrc sysinit
|
||||||
|
::sysinit:/sbin/openrc boot
|
||||||
|
::wait:/sbin/openrc default
|
||||||
|
|
||||||
|
# Set up a couple of getty's
|
||||||
|
::respawn:/sbin/getty 38400 console
|
||||||
|
|
||||||
|
# Stuff to do for the 3-finger salute
|
||||||
|
::ctrlaltdel:/sbin/reboot
|
||||||
|
|
||||||
|
# Stuff to do before rebooting
|
||||||
|
::shutdown:/sbin/openrc shutdown
|
||||||
|
|
||||||
|
packages:
|
||||||
|
manager: apk
|
||||||
|
update: true
|
||||||
|
cleanup: true
|
||||||
|
sets:
|
||||||
|
- packages:
|
||||||
|
- alpine-base
|
||||||
|
action: install
|
||||||
|
- packages:
|
||||||
|
- nano
|
||||||
|
action: install
|
||||||
|
variants:
|
||||||
|
- default
|
||||||
|
|
||||||
|
repositories:
|
||||||
|
- name: /etc/apk/repositories
|
||||||
|
url: |-
|
||||||
|
#StartREPOS
|
||||||
|
http://192.168.2.83/alpine/v{{ image.release }}/main
|
||||||
|
http://192.168.2.83/alpine/v{{ image.release }}/community
|
||||||
|
#EndREPOS
|
||||||
|
|
||||||
|
actions:
|
||||||
|
- trigger: post-unpack
|
||||||
|
action: |-
|
||||||
|
#!/bin/sh
|
||||||
|
sed -i '/dl-cdn.alpinelinux.org/d' /etc/apk/repositories
|
||||||
|
|
||||||
|
- trigger: post-packages
|
||||||
|
action: |-
|
||||||
|
#!/bin/sh
|
||||||
|
set -eux
|
||||||
|
|
||||||
|
# Rewrite configuration for LXC
|
||||||
|
sed -i 's/#rc_sys=""/rc_sys="lxc"/' /etc/rc.conf
|
||||||
|
|
||||||
|
# Enable services
|
||||||
|
for svc_name in bootmisc syslog; do
|
||||||
|
ln -s /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
||||||
|
done
|
||||||
|
|
||||||
|
for svc_name in networking crond; do
|
||||||
|
ln -s /etc/init.d/${svc_name} /etc/runlevels/default/${svc_name}
|
||||||
|
done
|
||||||
|
types:
|
||||||
|
- container
|
||||||
|
|
||||||
|
mappings:
|
||||||
|
architecture_map: alpinelinux
|
||||||
74
CT-Build/Debian.Jenkinsfile
Normal file
74
CT-Build/Debian.Jenkinsfile
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
String[] ImgVariantList = ['minimal', 'default', 'jenkinsbuilder', 'imgbuilder', 'jenkins' ]
|
||||||
|
|
||||||
|
pipeline {
|
||||||
|
agent { label 'LXCBuilder' }
|
||||||
|
parameters {
|
||||||
|
booleanParam description: 'Enable muticore support for ZX compression ', name: 'ZX_Multicore'
|
||||||
|
string defaultValue: '0', description: 'Set amount of core\'s ZX is allowed when compressing (use 0 for all cores)', name: 'ZX_Cores'
|
||||||
|
booleanParam description: 'Only build specified variant', name: 'OneRun'
|
||||||
|
string defaultValue: 'VariantName', description: 'Variant for OneBuild', name: 'OneRunVariant'
|
||||||
|
}
|
||||||
|
options {
|
||||||
|
skipDefaultCheckout()
|
||||||
|
buildDiscarder(logRotator(numToKeepStr: '2', artifactNumToKeepStr: '1'))
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Prepare') {
|
||||||
|
steps {
|
||||||
|
// Cleanup before starting
|
||||||
|
cleanWs()
|
||||||
|
// Checkout the repository
|
||||||
|
checkout scm
|
||||||
|
// Get distrobuilder
|
||||||
|
copyArtifacts filter: 'distrobuilder-BrampCustom', fingerprintArtifacts: true, flatten: true, projectName: 'LXC-ImgBuilder/DistroBuilder', selector: lastSuccessful()
|
||||||
|
// Setup Env
|
||||||
|
sh '''mkdir $WORKSPACE/REL
|
||||||
|
mv distrobuilder-* distrobuilder
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Image Configs'){
|
||||||
|
steps{
|
||||||
|
script{
|
||||||
|
|
||||||
|
//Set Variantlist to one if single build if requested
|
||||||
|
if (env.OneRun == 'true') {
|
||||||
|
ImgVariantList = [env.OneRunVariant]
|
||||||
|
}
|
||||||
|
|
||||||
|
//Run build for requested variants
|
||||||
|
for(ImgVariant in ImgVariantList){
|
||||||
|
env.ZX_Multicore = ZX_Multicore
|
||||||
|
env.ZX_Cores = ZX_Cores
|
||||||
|
env.ImgVariant = ImgVariant
|
||||||
|
stage("Build ${ImgVariant}") {
|
||||||
|
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
|
||||||
|
sh '''echo "$(date) Do Build for $ImgVariant"
|
||||||
|
if $ZX_Multicore; then
|
||||||
|
export XZ_DEFAULTS="-T $ZX_Cores"
|
||||||
|
fi
|
||||||
|
sudo $WORKSPACE/distrobuilder build-lxc Debian.yaml $WORKSPACE/REL/$ImgVariant/ -o image.variant=$ImgVariant
|
||||||
|
sudo chown jenkins:jenkins -R $WORKSPACE/REL
|
||||||
|
mv $WORKSPACE/REL/$ImgVariant/rootfs.tar.xz Debian-$ImgVariant.tar.xz
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Finish') {
|
||||||
|
steps {
|
||||||
|
// Save generated files
|
||||||
|
archiveArtifacts artifacts: '*.tar.xz', followSymlinks: false
|
||||||
|
// Copy artifacts to /LXCBuild folder
|
||||||
|
sh '''
|
||||||
|
mkdir -p /LXCBuild/template/cache
|
||||||
|
cp -f *.tar.xz /LXCBuild/template/cache
|
||||||
|
'''
|
||||||
|
// Cleaning WorkSpace
|
||||||
|
//cleanWs()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1019
CT-Build/Debian.yaml
Normal file
1019
CT-Build/Debian.yaml
Normal file
File diff suppressed because it is too large
Load Diff
27
CT-Files/Jenkins/Configs/BuildJobTemplate.xml
Normal file
27
CT-Files/Jenkins/Configs/BuildJobTemplate.xml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<flow-definition plugin="workflow-job@WorkFlowJobVersion">
|
||||||
|
<description></description>
|
||||||
|
<keepDependencies>false</keepDependencies>
|
||||||
|
<properties/>
|
||||||
|
<definition class="org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition" plugin="workflow-cps@WorkFlowCPSVersion">
|
||||||
|
<scm class="hudson.plugins.git.GitSCM" plugin="git@GITVersion">
|
||||||
|
<configVersion>2</configVersion>
|
||||||
|
<userRemoteConfigs>
|
||||||
|
<hudson.plugins.git.UserRemoteConfig>
|
||||||
|
<url>GitRepo</url>
|
||||||
|
</hudson.plugins.git.UserRemoteConfig>
|
||||||
|
</userRemoteConfigs>
|
||||||
|
<branches>
|
||||||
|
<hudson.plugins.git.BranchSpec>
|
||||||
|
<name>*/main</name>
|
||||||
|
</hudson.plugins.git.BranchSpec>
|
||||||
|
</branches>
|
||||||
|
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
||||||
|
<submoduleCfg class="empty-list"/>
|
||||||
|
<extensions/>
|
||||||
|
</scm>
|
||||||
|
<scriptPath>BuildJenkinsFile</scriptPath>
|
||||||
|
<lightweight>true</lightweight>
|
||||||
|
</definition>
|
||||||
|
<triggers/>
|
||||||
|
<disabled>false</disabled>
|
||||||
|
</flow-definition>
|
||||||
18
CT-Files/Jenkins/Configs/FolderJob.xml
Normal file
18
CT-Files/Jenkins/Configs/FolderJob.xml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8"?><com.cloudbees.hudson.plugins.folder.Folder plugin="cloudbees-folder@FoldersVersions">
|
||||||
|
<description/>
|
||||||
|
<properties/>
|
||||||
|
<folderViews class="com.cloudbees.hudson.plugins.folder.views.DefaultFolderViewHolder">
|
||||||
|
<views>
|
||||||
|
<hudson.model.AllView>
|
||||||
|
<owner class="com.cloudbees.hudson.plugins.folder.Folder" reference="../../../.."/>
|
||||||
|
<name>All</name>
|
||||||
|
<filterExecutors>false</filterExecutors>
|
||||||
|
<filterQueue>false</filterQueue>
|
||||||
|
<properties class="hudson.model.View$PropertyList"/>
|
||||||
|
</hudson.model.AllView>
|
||||||
|
</views>
|
||||||
|
<tabBar class="hudson.views.DefaultViewsTabBar"/>
|
||||||
|
</folderViews>
|
||||||
|
<healthMetrics/>
|
||||||
|
<icon class="com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon"/>
|
||||||
|
</com.cloudbees.hudson.plugins.folder.Folder>
|
||||||
21
CT-Files/Jenkins/Configs/LXCBuilder1.xml
Normal file
21
CT-Files/Jenkins/Configs/LXCBuilder1.xml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version='1.1' encoding='UTF-8'?>
|
||||||
|
<slave>
|
||||||
|
<name>LXCBuilder1</name>
|
||||||
|
<description></description>
|
||||||
|
<remoteFS>/home/jenkins</remoteFS>
|
||||||
|
<numExecutors>3</numExecutors>
|
||||||
|
<mode>EXCLUSIVE</mode>
|
||||||
|
<retentionStrategy class="hudson.slaves.RetentionStrategy$Always"/>
|
||||||
|
<launcher class="hudson.plugins.sshslaves.SSHLauncher" plugin="ssh-slaves@SSHAgentVersion">
|
||||||
|
<host>LXCBuilderIP</host>
|
||||||
|
<port>22</port>
|
||||||
|
<credentialsId></credentialsId>
|
||||||
|
<launchTimeoutSeconds>60</launchTimeoutSeconds>
|
||||||
|
<maxNumRetries>10</maxNumRetries>
|
||||||
|
<retryWaitTime>15</retryWaitTime>
|
||||||
|
<sshHostKeyVerificationStrategy class="hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy"/>
|
||||||
|
<tcpNoDelay>true</tcpNoDelay>
|
||||||
|
</launcher>
|
||||||
|
<label>LXCBuilder</label>
|
||||||
|
<nodeProperties/>
|
||||||
|
</slave>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version='1.1' encoding='UTF-8'?>
|
||||||
|
<io.jenkins.plugins.thememanager.ThemeManagerPageDecorator plugin="theme-manager@ThemeManagerVersion">
|
||||||
|
<theme class="io.jenkins.plugins.darktheme.DarkThemeManagerFactory" plugin="dark-theme@DarkThemeVersion"/>
|
||||||
|
<disableUserThemes>false</disableUserThemes>
|
||||||
|
</io.jenkins.plugins.thememanager.ThemeManagerPageDecorator>
|
||||||
4
CT-Files/Jenkins/Configs/locale.xml
Normal file
4
CT-Files/Jenkins/Configs/locale.xml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version='1.1' encoding='UTF-8'?>
|
||||||
|
<locale plugin="locale@LocaleVersion">
|
||||||
|
<systemLocale>en_US</systemLocale>
|
||||||
|
<ignoreAcceptLanguage>true</ignoreAcceptLanguage>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version='1.1' encoding='UTF-8'?>
|
||||||
|
<org.jenkinsci.plugins.golang.GolangBuildWrapper_-DescriptorImpl plugin="golang@GoPluginVersion">
|
||||||
|
<installations>
|
||||||
|
<org.jenkinsci.plugins.golang.GolangInstallation>
|
||||||
|
<name>latest</name>
|
||||||
|
<home></home>
|
||||||
|
<properties>
|
||||||
|
<hudson.tools.InstallSourceProperty>
|
||||||
|
<installers>
|
||||||
|
<org.jenkinsci.plugins.golang.GolangInstaller>
|
||||||
|
<id>GoVersion</id>
|
||||||
|
</org.jenkinsci.plugins.golang.GolangInstaller>
|
||||||
|
</installers>
|
||||||
|
</hudson.tools.InstallSourceProperty>
|
||||||
|
</properties>
|
||||||
|
</org.jenkinsci.plugins.golang.GolangInstallation>
|
||||||
|
</installations>
|
||||||
|
</org.jenkinsci.plugins.golang.GolangBuildWrapper_-DescriptorImpl>
|
||||||
56
CT-Files/Jenkins/Scripts/FirstRun.sh
Normal file
56
CT-Files/Jenkins/Scripts/FirstRun.sh
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#UserSettings
|
||||||
|
ThisScriptConfigured=no
|
||||||
|
GitRepo=https://git.bprieshof.nl/brammp/HS-Testing.git
|
||||||
|
JenkinsUsername=<Username>
|
||||||
|
JenkinsPassword=<Password>
|
||||||
|
LXCBuilderIP=<ip.of.the.server>
|
||||||
|
|
||||||
|
#StaticVars
|
||||||
|
AdminPassword=$(cat /var/lib/jenkins/secrets/initialAdminPassword)
|
||||||
|
JeninsPlugins="dark-theme ssh-slaves workflow-aggregator locale golang git dark-theme copyartifact ws-cleanup"
|
||||||
|
|
||||||
|
#Check if script is configured
|
||||||
|
if [ $ThisScriptConfigured = no ]; then
|
||||||
|
echo "Script is not configured"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Download Jenkins-CLI tool
|
||||||
|
curl localhost:8080/jnlpJars/jenkins-cli.jar -o /opt/jenkins-cli.jar
|
||||||
|
#Install Plugins
|
||||||
|
java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword install-plugin $JeninsPlugins
|
||||||
|
echo "jenkins.model.Jenkins.instance.securityRealm.createAccount(\"$JenkinsUsername\", \"$JenkinsPassword\")" | java -jar /opt/jenkins-cli.jar -s "http://localhost:8080" -webSocket -auth admin:$AdminPassword groovy = –
|
||||||
|
|
||||||
|
#Installed plugin versions
|
||||||
|
InstalledPlugins=$(java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword list-plugins)
|
||||||
|
#Update configuratiopn before putting them in place
|
||||||
|
sed -i -e 's/LocaleVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^locale ' | awk '{ print $NF}')'/g' /opt/Setup/Configs/locale.xml
|
||||||
|
sed -i -e 's/DarkThemeVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^dark-theme ' | awk '{ print $NF}')'/g' -e 's/ThemeManagerVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^theme-manager ' | awk '{ print $NF}')'/g' /opt/Setup/Configs/io.jenkins.plugins.thememanager.ThemeManagerPageDecorator.xml
|
||||||
|
sed -i -e 's/GoPluginVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^golang ' | awk '{ print $NF}')'/g' -e 's/GoVersion/'$(curl -s https://golang.org/VERSION?m=text |sed 's/go//g')'/g' /opt/Setup/Configs/org.jenkinsci.plugins.golang.GolangBuildWrapper.xml
|
||||||
|
mv -t /var/lib/jenkins /opt/Setup/Configs/locale.xml /opt/Setup/Configs/io.jenkins.plugins.thememanager.ThemeManagerPageDecorator.xml /opt/Setup/Configs/org.jenkinsci.plugins.golang.GolangBuildWrapper.xml
|
||||||
|
|
||||||
|
#Restart
|
||||||
|
java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword safe-shutdown
|
||||||
|
echo "Waiting 30 sec for jenkins to shutdown"
|
||||||
|
sleep 30
|
||||||
|
systemctl restart jenkins
|
||||||
|
echo "Waiting 1 min for Systemctl to restart jenkins"
|
||||||
|
sleep 60
|
||||||
|
|
||||||
|
#Add Jobs
|
||||||
|
cat /opt/Setup/Configs/FolderJob.xml | sed -e 's/FoldersVersions/'$(printf "%s" "${InstalledPlugins%x}" | grep '^cloudbees-folder ' | awk '{ print $NF}')'/g' | java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword create-job LXC-ImgBuilder
|
||||||
|
cat /opt/Setup/Configs/BuildJobTemplate.xml | sed -e 's#BuildJenkinsFile#Other-Builds/DistroBuilder.Jenkinsfile#g' -e 's#GitRepo#'$GitRepo'#g' -e 's/GITVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^git ' | awk '{ print $NF}')'/g' -e 's/WorkFlowCPSVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^workflow-cps ' | awk '{ print $NF}')'/g' -e 's/WorkFlowJobVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^workflow-job ' | awk '{ print $NF}')'/g' | java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword create-job LXC-ImgBuilder/DistroBuilder
|
||||||
|
cat /opt/Setup/Configs/BuildJobTemplate.xml | sed -e 's#BuildJenkinsFile#/CT-Build/Debian.Jenkinsfile#g' -e 's#GitRepo#'$GitRepo'#g' -e 's/GITVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^git ' | awk '{ print $NF}')'/g' -e 's/WorkFlowCPSVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^workflow-cps ' | awk '{ print $NF}')'/g' -e 's/WorkFlowJobVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^workflow-job ' | awk '{ print $NF}')'/g' | java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword create-job LXC-ImgBuilder/Debian-LXC
|
||||||
|
cat /opt/Setup/Configs/BuildJobTemplate.xml | sed -e 's#BuildJenkinsFile#/CT-Build/Alpine.Jenkinsfile#g' -e 's#GitRepo#'$GitRepo'#g' -e 's/GITVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^git ' | awk '{ print $NF}')'/g' -e 's/WorkFlowCPSVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^workflow-cps ' | awk '{ print $NF}')'/g' -e 's/WorkFlowJobVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^workflow-job ' | awk '{ print $NF}')'/g' | java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword create-job LXC-ImgBuilder/Alpine-LXC
|
||||||
|
#Add Node
|
||||||
|
cat /opt/Setup/Configs/LXCBuilder1.xml | sed -e 's/SSHAgentVersion/'$(printf "%s" "${InstalledPlugins%x}" | grep '^golang ' | awk '{ print $NF}')'/g' -e 's/LXCBuilderIP/'$LXCBuilderIP'/g' | java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword create-node LXCBuilder1
|
||||||
|
|
||||||
|
# BuildDistroBuilder (add -f to wait for job completion)
|
||||||
|
java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword build LXC-ImgBuilder/DistroBuilder -f
|
||||||
|
|
||||||
|
#Run both LXC builds, to fetch the jenkins file and set update the available parameters (The builds WILL fail)
|
||||||
|
java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword build LXC-ImgBuilder/Debian-LXC
|
||||||
|
java -jar /opt/jenkins-cli.jar -s http://localhost:8080/ -webSocket -auth admin:$AdminPassword build LXC-ImgBuilder/Alpine-LXC
|
||||||
|
echo "Debian-LXC and Alpine-LXC build will fail, this is expected behaviour"
|
||||||
|
echo "Next step is to login to the jenins instance, update the credentials for the Node and delete the admin user"
|
||||||
61
Other-Builds/DistroBuilder.Jenkinsfile
Normal file
61
Other-Builds/DistroBuilder.Jenkinsfile
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
String[] VariantList = ['Default', 'CustomSquashCentos', 'BrampCustom']
|
||||||
|
pipeline {
|
||||||
|
agent any
|
||||||
|
options {
|
||||||
|
skipDefaultCheckout()
|
||||||
|
buildDiscarder(logRotator(numToKeepStr: '2', artifactNumToKeepStr: '1'))
|
||||||
|
}
|
||||||
|
tools {
|
||||||
|
go 'latest'
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Prepare') {
|
||||||
|
steps {
|
||||||
|
// Cleanup before starting
|
||||||
|
cleanWs()
|
||||||
|
// Checkout the repository
|
||||||
|
git 'https://github.com/lxc/distrobuilder'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Image Configs'){
|
||||||
|
steps{
|
||||||
|
script{
|
||||||
|
for(Variant in VariantList){
|
||||||
|
env.Variant = Variant
|
||||||
|
stage('Build image') {
|
||||||
|
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
|
||||||
|
sh '''mkdir -p "$WORKSPACE"/bin "$WORKSPACE"/build
|
||||||
|
if [ "${Variant}" = "CustomSquashCentos" ] || [ "${Variant}" = "BrampCustom" ]
|
||||||
|
then
|
||||||
|
sed -i 's/shared.RunCommand("mount", "-o", "ro", filePath, isoDir)/shared.RunCommand("fuseiso", filePath, isoDir)/g' $WORKSPACE/sources/centos-http.go
|
||||||
|
sed -i 's/shared.RunCommand("mount", "-o", "ro", imageFile, installDir)/shared.RunCommand("squashfuse", "-o", "ro", imageFile, installDir)/g' $WORKSPACE/sources/centos-http.go
|
||||||
|
#Not Yet nedded for centos#sed -i 's/shared.RunCommand("mount", "-o", "ro", squashfsImage, squashfsDir)/shared.RunCommand("squashfuse", "-o", "ro", squashfsImage, squashfsDir)/g' $WORKSPACE/sources/centos-http.go
|
||||||
|
sed -i 's/shared.RunCommand("mount", "-o", "ro", rootfsFile, rootfsDir)/shared.RunCommand("fuse2fs", "-o", "ro", rootfsFile, rootfsDir)/g' $WORKSPACE/sources/centos-http.go
|
||||||
|
fi
|
||||||
|
#Customization for BrampCustom version
|
||||||
|
if [ "${Variant}" = "BrampCustom" ]
|
||||||
|
then
|
||||||
|
sed -i '/mirrorlist=/c\baseurl=http://192.168.2.83/centos/\$releasever/BaseOS/x86_64/os/' $WORKSPACE/sources/centos-http.go
|
||||||
|
fi
|
||||||
|
gofmt -s -w .
|
||||||
|
go build -o build -v ./...
|
||||||
|
go clean
|
||||||
|
mv build/distrobuilder ./distrobuilder-"$Variant"
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Finish') {
|
||||||
|
steps {
|
||||||
|
// Save generated files
|
||||||
|
archiveArtifacts artifacts: 'distrobuilder-*', followSymlinks: false
|
||||||
|
// Cleaning WorkSpace
|
||||||
|
cleanWs()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
39
Scripts/FirstSetup.sh
Normal file
39
Scripts/FirstSetup.sh
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#Vars
|
||||||
|
|
||||||
|
#Goto ProjectRoot
|
||||||
|
cd "$( cd "$( dirname "$0" )" &> /dev/null && pwd )/.."
|
||||||
|
|
||||||
|
echo "The script will now install required dependencies"
|
||||||
|
read -r -s -p $'Press enter to continue, or ctrl+c to quit'
|
||||||
|
#Install software dependencies
|
||||||
|
apt install ca-certificates golang git make debootstrap curl gcc libc-dev nano gnupg2 rsync xz-utils --no-install-recommends -y
|
||||||
|
|
||||||
|
|
||||||
|
#Get Source for DistroBuilder
|
||||||
|
git clone https://github.com/lxc/distrobuilder distrobuilderSRC
|
||||||
|
cd distrobuilderSRC
|
||||||
|
#Run Build for Build
|
||||||
|
gofmt -s -w .
|
||||||
|
go build -o ../ -v ./...
|
||||||
|
#Cleanup
|
||||||
|
cd ../
|
||||||
|
rm -rf distrobuilderSRC
|
||||||
|
|
||||||
|
#Disable use of cache Server
|
||||||
|
bash Scripts/UpdateIMGBuildFile-CacheAndRepo.sh -d
|
||||||
|
#Allow XZ to use all cores
|
||||||
|
export XZ_DEFAULTS="-T 0"
|
||||||
|
#Function for building LXC images
|
||||||
|
BuildImage () {
|
||||||
|
local Distro=$1
|
||||||
|
local Variant=$2
|
||||||
|
./distrobuilder build-lxc CT-Build/$Distro.yaml -o image.variant=$Variant
|
||||||
|
rm -f meta.tar.xz
|
||||||
|
mv ./rootfs.tar.xz "$Distro-$Variant".tar.xz
|
||||||
|
}
|
||||||
|
|
||||||
|
#Build Jenkins Image
|
||||||
|
BuildImage Debian jenkins
|
||||||
|
#Build JenkinsNode (imgbuilder) Image
|
||||||
|
BuildImage Debian imgbuilder
|
||||||
64
Scripts/UpdateIMGBuildFile-CacheAndRepo.sh
Normal file
64
Scripts/UpdateIMGBuildFile-CacheAndRepo.sh
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#Allow for external definiton of status of cache
|
||||||
|
StatusFlag=$1
|
||||||
|
#UserSettings
|
||||||
|
ThisScriptConfigured=no
|
||||||
|
UseCache=no
|
||||||
|
|
||||||
|
#Cache enable (using apt-cacher-NG)
|
||||||
|
CacheAlpineRepo="http://192.168.2.83/alpine/"
|
||||||
|
CacheDebianCache="http://192.168.2.83:80"
|
||||||
|
CacheDebianCore="http://192.168.2.83/deb.debian.org/debian"
|
||||||
|
|
||||||
|
#Cache enable (using Official MirrorServers)
|
||||||
|
DefaultAlpineRepo="http://dl-4.alpinelinux.org/alpine/"
|
||||||
|
DefaultDebianCore="http://deb.debian.org/debian"
|
||||||
|
|
||||||
|
###Do not Edit underneath###
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Check if using StatusFlag if not chek if scipt is configured
|
||||||
|
if [ -n "$StatusFlag" ]; then
|
||||||
|
if [ $StatusFlag = "-e" ]; then
|
||||||
|
UseCache=yes
|
||||||
|
elif [ $StatusFlag = "-d" ]; then
|
||||||
|
UseCache=no
|
||||||
|
fi
|
||||||
|
elif
|
||||||
|
[ $ThisScriptConfigured = no ]; then
|
||||||
|
echo "Script is not configured"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Check if using Cache
|
||||||
|
if [ $UseCache = yes ]; then
|
||||||
|
echo "Using cache server"
|
||||||
|
AlpineRepo=$CacheAlpineRepo
|
||||||
|
DebianCache='Acquire::http::Proxy "'$CacheDebianCache'";'
|
||||||
|
DebianCore=$CacheDebianCore
|
||||||
|
elif [ $UseCache = no ]; then
|
||||||
|
echo "Not using cache server"
|
||||||
|
AlpineRepo=$DefaultAlpineRepo
|
||||||
|
DebianCache='#CacheServer not set'
|
||||||
|
DebianCore=$DefaultDebianCore
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Goto ProjectRoot
|
||||||
|
cd "$( cd "$( dirname "$0" )" &> /dev/null && pwd )/.."
|
||||||
|
|
||||||
|
#AlpineBaseRepo
|
||||||
|
sed -i -e '/#InitDownloadREPO/{n;d}' CT-Build/Alpine.yaml
|
||||||
|
sed -i -e '/#InitDownloadREPO/a \ url: '$AlpineRepo'' CT-Build/Alpine.yaml
|
||||||
|
|
||||||
|
#AlpineRepo
|
||||||
|
sed -i -n '/#StartREPOS/{:a;N;/#EndREPOS/!ba;N;s/.*\n/#HereREPO\n/};p' CT-Build/Alpine.yaml
|
||||||
|
sed -i -e 's#\#HereREPO#\ \#StartREPOS\n\ '$AlpineRepo/latest-stable/main'\n\ '$AlpineRepo'latest-stable/community\n\ \#EndREPOS#g' CT-Build/Alpine.yaml
|
||||||
|
|
||||||
|
#DebianBaseRepo
|
||||||
|
sed -i -e '/#InitDownloadREPO/{n;d}' CT-Build/Debian.yaml
|
||||||
|
sed -i -e '/#InitDownloadREPO/a \ url: '$DebianCore'' CT-Build/Debian.yaml
|
||||||
|
|
||||||
|
#DebianProxyCache
|
||||||
|
sed -i -e '/#ProxyCacheSetting/{n;d}' CT-Build/Debian.yaml
|
||||||
|
sed -i -e "/#ProxyCacheSetting/a \ echo \'$DebianCache\' > /etc/apt/apt.conf.d/01prox" CT-Build/Debian.yaml
|
||||||
Reference in New Issue
Block a user