Jump to content

Setup Jenkins: Difference between revisions

From Haidhi Wiki
Created page with "== Jenkins Network == <syntaxhighlight lang=bash> docker network create jenkins </syntaxhighlight> == docker:dind == <syntaxhighlight lang=bash> docker run \ --name jenkins-docker \ --rm \ --detach \ --privileged \ --network jenkins \ --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 2376:2376 \ docker:dind \ --storage-driver overlay2 </sy..."
 
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Jenkins Network ==
Pull Image
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
docker network create jenkins
docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk17
</syntaxhighlight>
</syntaxhighlight>


== docker:dind ==
Masuk ke <code>localhost:8080</code> lalu masukan administrator password dari
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
docker run \
/var/jenkins_home/secrets/initialAdminPassword
  --name jenkins-docker \
  --rm \
  --detach \
  --privileged \
  --network jenkins \
  --network-alias docker \
  --env DOCKER_TLS_CERTDIR=/certs \
  --volume jenkins-docker-certs:/certs/client \
  --volume jenkins-data:/var/jenkins_home \
  --publish 2376:2376 \
  docker:dind \
  --storage-driver overlay2
</syntaxhighlight>
</syntaxhighlight>


== Jenkins Docker Image ==
= Integrasi Gitlab =
<syntaxhighlight lang=bash>
== di Gitlab ==
FROM jenkins/jenkins:2.492.3-jdk17
#Login ke Gitlab
USER root
#Pergi ke Repository
RUN apt-get update && apt-get install -y lsb-release ca-certificates curl && \
#Settings > Repository.
     install -m 0755 -d /etc/apt/keyrings && \
#Click “Expand” di menu Deploy Tokens
     curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc && \
#Isi formnya sesuai kebutuhan
     chmod a+r /etc/apt/keyrings/docker.asc && \
#Click Create deploy token
     echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
#Inget-inget Token yang digenerate barusan
    https://download.docker.com/linux/debian $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" \
 
    | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
== di Jenkins ==
    apt-get update && apt-get install -y docker-ce-cli && \
Bikin credentials username and password di Jenkins. isi username dengan username gitlab dan password isi dari token yang digenerate barusan.
     apt-get clean && rm -rf /var/lib/apt/lists/*
isi ID misal gitlab-cred. Lalu cara pullnya:
USER jenkins
<syntaxhighlight>
RUN jenkins-plugin-cli --plugins "gitlab docker-workflow"
pipeline {
     agent any
 
     parameters {
        string(name: 'branch', defaultValue: 'development', description: 'Branch to build')
     }
 
     stages {
        stage('Pulling') {
            steps {
                echo "Cloning branch: ${params.branch}"
                git branch: "${params.branch}", url: 'https://git.digitalamoeba.id/aamr/tes-cicd.git', credentialsId: 'marshall-cred'
            }
        }
     }
}
</syntaxhighlight>
</syntaxhighlight>
Lalu Build
 
== Cara Trigger pake Curl ==
#ke menu user (pojok kanan atas)
#pilih Security dan click add new token
 
Ketika config pipeline, check <code>Trigger builds remotely (e.g., from scripts)</code>, lalu isi authentication dengan token barusan. Lalu cara untuk triggernya:
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
docker build -t myjenkins .
# http://username:token@JENKINS-IP/job/jobname/build
curl -X POST http://admin:TOKEN@192.168.83.36:8080/job/pipeline-name/build
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 09:38, 21 April 2025

Pull Image

docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk17

Masuk ke localhost:8080 lalu masukan administrator password dari

/var/jenkins_home/secrets/initialAdminPassword

Integrasi Gitlab

di Gitlab

  1. Login ke Gitlab
  2. Pergi ke Repository
  3. Settings > Repository.
  4. Click “Expand” di menu Deploy Tokens
  5. Isi formnya sesuai kebutuhan
  6. Click Create deploy token
  7. Inget-inget Token yang digenerate barusan

di Jenkins

Bikin credentials username and password di Jenkins. isi username dengan username gitlab dan password isi dari token yang digenerate barusan. isi ID misal gitlab-cred. Lalu cara pullnya:

pipeline {
    agent any

    parameters {
        string(name: 'branch', defaultValue: 'development', description: 'Branch to build')
    }

    stages {
        stage('Pulling') {
            steps {
                echo "Cloning branch: ${params.branch}"
                git branch: "${params.branch}", url: 'https://git.digitalamoeba.id/aamr/tes-cicd.git', credentialsId: 'marshall-cred'
            }
        }
    }
}

Cara Trigger pake Curl

  1. ke menu user (pojok kanan atas)
  2. pilih Security dan click add new token

Ketika config pipeline, check Trigger builds remotely (e.g., from scripts), lalu isi authentication dengan token barusan. Lalu cara untuk triggernya:

# http://username:token@JENKINS-IP/job/jobname/build
curl -X POST http://admin:[email protected]:8080/job/pipeline-name/build