Post

데브코스 TIL - 윈도우 환경에서 젠킨슨 받아와서 사용하기

docker에서 젠킨슨 받아와서 사용하기

1. 도커에서 이미지 받아오기

1
docker pull jenkins/jenkins

2. 컨테이너 실행하기

1
docker run -d -p 8080:8080 -p 50000:50000 jenkins/jenkins

3. 젠킨슨 초기 비밀번호 얻기

1
2
3
docker exec [컨테이너이름]  cat /var/jenkins_home/secrets/initialAdminPassword

(...)

4. http://localhost:8080에 접속해서 젠킨슨 로그인하기

초기 비밀번호를 입력하고, plugin을 설치하면 젠킨슨 대시보드에 진입할 수 있음

하지만 강의는 쿠버네티스 클러스터를 이용하여 젠킨스를 실행하기 때문에.. 지우고 다시 설치해야 함

윈도우 환경에서 젠킨슨 설치하기

윈도우 환경에서는 Chocolatey 또는 Scoop을 사용하여 helm을 다운로드 할 수 있음

나는 Scoop을 사용할 예정

1. powershell을 열고, scoop을 다운로드 하는 명령어 입력

1
2
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

2. scoop설치가 완료되면 helm 설치하기

https://helm.sh/docs/intro/install/

1
2
3
4
scoop install helm                                                                                       Installing 'helm' (3.14.3) [64bit] from main bucket                                                                         helm-v3.14.3-windows-amd64.zip (15.8 MB) [========================================================================] 100%
(...)
Creating shim for 'helm'.
'helm' (3.14.3) was installed successfully!

3. helm에 젠킨슨 레포 설정하기

1
2
3
helm repo add jenkinsci https://charts.jenkins.io

"jenkinsci" has been added to your repositorie

4. helm을 이용해서 젠킨슨 설치하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
helm install jenkins jenkinsci/jenkins

NAME: jenkins
LAST DEPLOYED: Wed Apr  3 18:25:23 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get your 'admin' user password by running:
  kubectl exec --namespace default -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo
2. Get the Jenkins URL to visit by running these commands in the same shell:
  echo http://127.0.0.1:8080
  kubectl --namespace default port-forward svc/jenkins 8080:8080

3. Login with the password from step 1 and the username: admin
4. Configure security realm and authorization strategy
5. Use Jenkins Configuration as Code by specifying configScripts in your values.yaml file, see documentation: http://127.0.0.1:8080/configuration-as-code and examples: https://github.com/jenkinsci/configuration-as-code-plugin/tree/master/demos

For more information on running Jenkins on Kubernetes, visit:
https://cloud.google.com/solutions/jenkins-on-container-engine

For more information about Jenkins Configuration as Code, visit:
https://jenkins.io/projects/jcasc/


NOTE: Consider using a custom image with pre-installed plugins

5. 설치확인하기

1
2
3
kubectl logs sts/jenkins jenkins

Error from server (BadRequest): container "jenkins" in pod "jenkins-0" is waiting to start: PodInitializing

아직 초기화되지 않았다는 메세지 시간이 조금 지나고 다시 확인해보면, 성공적으로 설치된 것을 확인할 수 있음

1
2
3
kubectl logs sts/jenkins jenkins

Running from: /usr/share/jenkins/jenkins.

6. 포트 포워드를 실행해서 쿠버네티스 클러스터 내에서 8080 포트로 제공하고 있는 젠킨슨 서비스에 로컬 컴퓨터 연결하기

1
2
3
4
kubectl port-forward svc/jenkins 8080:8080

Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080

7. 젠킨슨 초기 비밀번호 알아내기

디코드 되지 않은 초기 비밀번호 알아내기

1
kubectl get secret jenkins -o jsonpath="{.data.jenkins-admin-password}"

디코드 시키기

1
[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("<base64-encoded-value>"))
1
2
3
[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("eUF1SXhSWGd1b0NnRTlZVkhOMVZtVA=="))

yAuIxRXguoCgE9YVHN1VmT

개인적으로는 윈도우환경에서 unbuntu apt을 사용하여 helm을 설치하는 것보다 scoop을 이용하는게 더 편리한 것 같다.

This post is licensed under CC BY 4.0 by the author.