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을 이용하는게 더 편리한 것 같다.