pbg0205 / BE-tutorials

BE-tutorials ๐Ÿง‘โ€๐Ÿ’ป
0 stars 0 forks source link

jenkins ํ•™์Šตํ•˜๊ธฐ #5

Open pbg0205 opened 1 year ago

pbg0205 commented 1 year ago
pbg0205 commented 1 year ago

jenkins docker container ์‹คํ–‰ํ•˜๊ธฐ

์ฐธ๊ณ  ๋ ˆํผ๋Ÿฐ์Šค : Jenkins ๋กœ ๋„์ปค ์ด๋ฏธ์ง€ Build & Push ์ž๋™ํ™”ํ•˜๊ธฐ

Jenkins???


Jenkins ํŠน์ง•

  1. Jenkinsfile : Job ๋˜๋Š” ํŒŒ์ดํ”„ ๋ผ์ธ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. Scritped Pipeline : Groovy ์–ธ์–ด๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋œ๋‹ค.
  3. Declaretive Pipeline : ์‚ฌ์ „์— ์ •์˜๋œ ๊ตฌ์กฐ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ดํ”„๋ผ์ธ์ด ๋‹จ์ˆœํ•œ ๊ฒฝ์šฐ์— ์ ํ•ฉํ•˜๋‹ค.


docker coontainer ์—์„œ ์  ํ‚จ์Šค ์‹คํ–‰์‹œํ‚ค๊ธฐ

1. jenkins ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ

docker pull jenkins/jenkins:lts


2. jenkins docker container ์‹คํ–‰

docker run -d \
--name jenkins-docker \
-p 7979:8080 -p 50000:50000 \ 
-v /var/run/docker.sock:/var/run/docker.sock \
-v jenkins_home:/var/jenkins_home \
-u root \
jenkins/jenkins:lts


3. jenkins ๋‚ด๋ถ€์—์„œ docker ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋„์ปค๋ฅผ ์„ค์น˜

# jenkins container bash ์‹คํ–‰
docker exec -it jenkins-docker bash 

curl https://get.docker.com/ > dockerinstall && chmod 777 dockerinstall && ./dockerinstall

# docker-compose ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”
apt install docker-compose 


4. dokcer.sock ํŒŒ์ผ ๊ถŒํ•œ 666์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ณ€๊ฒฝ

exit # ์ปจํ…Œ์ด๋„ˆ ์ ‘์†ํ•ด์ œ ํ›„ ์ง„ํ–‰
sudo chmod 666 /var/run/docker.sock


5. jenkins ์ ‘์†

  1. ๋งŒ์•ฝ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฝ์–ด๋ฒ„๋ ธ๋‹ค๋ฉด /var/jenkins_home/config.xml ํŒŒ์ผ์—์„œ \false ๋กœ ๋ฒˆ๊ฒฝํ•ด ์ดˆ๊ธฐ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์ข…๋ฃŒํ•˜๊ณ  ์žฌ์‹œ์ž‘
  2. dashboard > Jenkins ๊ด€๋ฆฌ > [Security] Configure Global Security ์„ค์ • >Security Realm : Jenkins' own user database ์„ค์ •
  3. dashboard > Jenkins ๊ด€๋ฆฌ > [Security] Manage Users ์—์„œ ๊ณ„์ • ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์ถ”๊ฐ€ (์ถœ์ฒ˜ : [Jenkins on Docker] ๊ณ„์ • ์žฌ์ƒ์„ฑ(๊ณ„์ • ์ •๋ณด ํ™•์ธ, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ))


pbg0205 commented 1 year ago

EC2 ์—์„œ jenkins CI ๊ตฌ์ถ•ํ•˜๊ธฐ

์ฐธ๊ณ  ๋ ˆํผ๋Ÿฐ์Šค

  1. [jenkins doc] installing/linux
  2. AWS EC2 ์— Jenkins ์„œ๋ฒ„ ๊ตฌ์ถ•ํ•˜๊ธฐ

๋ฐฐํฌ ํ™˜๊ฒฝ


Steps

1. yum ํŒจํ‚ค์ง€ ๋งค์ง€๋„ˆ ์ตœ์‹  ์—…๋ฐ์ดํŠธ

sudo yum -y update


2. yum ์ด ์„ค์น˜ํ•  jenkins repository ๊ฒฝ๋กœ ์ถ”๊ฐ€

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo


3. Jenkins GPG key ์ถ”๊ฐ€

sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key


4. Jenkins ์„ค์น˜

sudo yum install jenkins


5. jenkins ์‹œ์ž‘

sudo service jenkins start


6. ์„œ๋ฒ„ ํฌํŠธ ํ™•์ธ

netstat -ntlp | grep :8080


7. init password ํ™•์ธ

image

sudo cat /var/lib/jenkins/secrets/initialAdminPassword


8. customize jenkins > Install suggested plugins

9. create user

pbg0205 commented 1 year ago

ํŒŒ์ดํ”„๋ผ์ธ practice

์ฐธ๊ณ  ๋ ˆํผ๋Ÿฐ์Šค 1. [jojoldu] ์  ํ‚จ์Šค ํŒŒ์ดํ”„๋ผ์ธ ์ •๋ฆฌ - 1. ํŒŒ์ดํ”„๋ผ์ธ ์ƒ˜ํ”Œ ๋งŒ๋“ค๊ธฐ 2. [jojoldu] ์  ํ‚จ์Šค ํŒŒ์ดํ”„๋ผ์ธ ์ •๋ฆฌ - 2. Scripted

1. pipeline sample

image


2. scripted ๋ฌธ๋ฒ• ์†Œ๊ฐœ

(1) ๋ฌธ๋ฒ•

  1. node : scripted ํŒŒ์ดํ”„๋ผ์ธ์„ ์‹คํ–‰ํ•˜๋Š” ์  ํ‚จ์Šค ์—์ด์ „ํŠธ (Scripted ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด node๋Š” ํ•„์ˆ˜๋กœ ์„ ์–ธ)
  2. dir : ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ / ํด๋” ์ •์˜
  3. stage : ํŒŒ์ดํ”„๋ผ์ธ ๊ฐ ๋‹จ๊ณ„๋ฅผ ๋งํ•˜๋ฉฐ ์–ด๋–ค ๋‹จ๊ณ„์—์„œ ์–ด๋˜ ์ž‘์—…์„ ์‹คํ–‰ํ• ์ง€ ์„ ์–ธํ•˜๋Š” ๊ณณ
  4. git :Git ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ํ”„๋กœ์ ํŠธ ํด๋ก 
  5. sh : Unix ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•  ๋ช…๋ น์–ด ์‹คํ–‰
  6. def : Groovy ๋ณ€์ˆ˜ ํ˜น์€ ํ•จ์ˆ˜ ์„ ์–ธ


pbg0205 commented 1 year ago

jenkins ssh key ๋ฅผ ํ†ตํ•ด ์ธ์ฆํ•˜๊ธฐ

์ฐธ๊ณ  ๋ ˆํผ๋Ÿฐ์Šค

  1. [jojoldu] 2. Jenkins๋กœ Beanstalk + Multi Module ๋ฐฐํฌํ•˜๊ธฐ - Jenkins์™€ Github ์—ฐ๋™ํ•˜๊ธฐ


1. SSH ํ‚ค ์ƒ์„ฑ ๋ฐ ๋“ฑ๋ก

ssh-keygen -t rsa -f id_rsa

(์ถœ์ฒ˜ : Ssh-keygen - ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น - ์œ ๋‹‰์Šค ๋ช…๋ น)


ํ‚ค ํ™•์ธ

cat id_rsa

image


2. Jenkins > Credentials/System > Add Credentials ์„ค์ •


3. repository deploy key ์„ค์ •

image


4. repository webhook ์„ค์ •

# ์˜ˆ์‹œ
http://ec12345678.compute-1.amazonaws.com/github-webhook/