[Docker] Jenkins Slave ์„ค์น˜ ๋ฐ Master์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ

2022. 9. 16. 03:43ใ†System ์ž‘์—…์‹ค/Docker

728x90
๋ฐ˜์‘ํ˜•

 

 



 

 

 

๐Ÿš€ Jenkins Slave

ํ•ด๋‹น ์ž‘์—…์€ Docker๋ฅผ ์ด์šฉํ•˜์—ฌ CentOS 7 Container๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    ๐Ÿ”ฝ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

        ๐Ÿ“ฆ ํ•„์ˆ˜ Package & Program ์„ค์น˜

yum update -y


์ตœ์ดˆ yum Repository๋ฅผ ์ตœ์‹ ํ™” ํ•ด ์ค„๊ฒŒ์š”.

 

 

yum install -y git



git --version



git์„ ๋จผ์ € ์„ค์น˜ํ•˜๋„๋ก ํ• ๊ฒŒ์š”.


yum list java*jdk-devel

728x90


์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” JAVA ๋ชฉ๋ก์„ ํ™•์ธํ•ด ๋ณด์•˜์–ด์š”.



yum install -y {Available Packages Name}

 

java -version



์ฃผ๋‹ˆํ•˜๋ž‘์€ openjdk 11 Version์„ ๋ฐ›์•„์ฃผ๋„๋ก ํ•˜์˜€์–ด์š”.





        ๐Ÿ“ฆ SSH Key ๋“ฑ๋ก

์ด๋ฒˆ์—๋Š” Jenkins Master์™€ Slave๋ฅผ SSH Key ๋“ฑ๋ก์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์‹œ์ผœ ์ค„ ๊ฒƒ์ด์—์š”.



์ตœ์ดˆ Jenkins Master์—์„œ Slave๋กœ SSH๋ฅผ ํ†ตํ•ด ์ ‘์†์„ ํ•ด ๋ณด์•˜์–ด์š”.

์ด๋ ‡๊ฒŒ ์ ‘์†์„ ํ•  ๋•Œ, ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ์ด ๋ถ€๋ถ„์„ ๋„˜์–ด๊ฐ€๊ฒŒ ํ•จ์œผ๋กœ,
์›ํ™œํ•œ ์ž‘์—…์ด ๋˜๋„๋ก ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ฑฐ์—์š”.



ssh-copy-id {๋Œ€์ƒ Server ๊ณ„์ •}@{๋Œ€์ƒ Server IP}

๋ฐ˜์‘ํ˜•


์œ„์™€ ๊ฐ™์ด ์ž‘์—…์„ ํ•ด ์ฃผ๋ฉด ๋˜์š”.

 

 

 

 

 

    ๐Ÿ”ฝ  Master์™€ Slave ์ด์•ผ๊ธฐ

        ๐Ÿ“ฆ ์—ฐ๋™ํ•˜๊ธฐ

 

์ตœ์ดˆ Jenkins ๊ด€๋ฆฌ์—์„œ ๋…ธ๋“œ ๊ด€๋ฆฌ๋กœ ๋“ค์–ด๊ฐ€ ์ค„๊ฒŒ์š”.




ํ˜„์žฌ ๋“ฑ๋ก ๋˜์–ด ์žˆ๋Š” Node๋Š” Jenkins Master๊ฐ€ ๋  ์ž๊ธฐ ์ž์‹ ์ด์—์š”.




์™ผ์ชฝ์— '์‹ ๊ทœ ๋…ธ๋“œ'๋ฅผ ํด๋ฆญํ•ด ์ฃผ์„ธ์š”.




์œ„์™€ ๊ฐ™์ด ์ด๋ฆ„์„ ์ •ํ•ด์ฃผ๊ณ , Type์— ํ•˜๋‚˜ ๋ฐ–์— ์—†๋Š” Type์„ ํ™œ์„ฑํ™”ํ•œ ๋’ค 'Create'๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”.


๐Ÿ’ก ์ฐธ๊ณ  ์‚ฌํ•ญ

Slave๋ฅผ ๋“ฑ๋กํ•  ๋•Œ๋Š” ์•„๋ž˜ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด์š”.

Jenkins ๊ด€๋ฆฌ -> Manage Nodes -> New Node

1. Node Name : slave1

2. Description : Add a server as a slave machine

  โˆ™ ํ•ด๋‹น ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์„ค๋ช… ์ •์˜

3. Number of executors : 5

  โˆ™ Master๋กœ ๋ถ€ํ„ฐ ์ž‘์—… ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋ฐ›์•˜์„ ๋•Œ, ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ž‘์—… ๊ฐœ์ˆ˜ ๋ช…์‹œ.

4. Remote root directory : /root/slave1

  โˆ™ Work Space ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  Directory Path ์„ค์ •

5. Labels : slave1

6. Usage : Use this node as much as possible

  โˆ™ Master๊ฐ€ Slave์—๊ฒŒ ์ž‘์—…์„ ์œ„์ž„ํ•  ๋•Œ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ Slave Node๋ฅผ ์„ ํƒํ•˜๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€ ์ •์˜. 


7. Launch Method : Launch agents via SSH

  โˆ™ Host : {Slave Server IP} ์˜ˆ์‹œ:) 192.168.0.5
  โˆ™ Port : 22 (Slave SSH Port Number)
  โˆ™ Credntials : root/P@ssw0rd (Slave root Password)

 



์ตœ์ดˆ ์—ฐ๊ฒฐ ์ด๋ฆ„์„ Name์— ์ž์œ ๋กญ๊ฒŒ ์ ์–ด์ฃผ๊ณ , Description์— ํ•ด๋‹น ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ ์–ด์ฃผ๋ฉด ๋˜์š”.

์ฃผ๋‹ˆํ•˜๋ž‘์€ SSH๋ฅผ ์ด์šฉํ•ด์„œ Master์™€ Slave๋ฅผ ์—ฐ๊ฒฐํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— Launch Method๋ฅผ SSH๋กœ ์„ค์ •ํ•ด ์ฃผ์—ˆ์–ด์š”.



Host์— Slave IP๋ฅผ ์ ์–ด์ฃผ๋ฉด ๋˜๊ณ , 

Credentials์—๋Š” ์ตœ์ดˆ 'Add' ๋ฅผ ๋ˆ„๋ฅธ ๋’ค
์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•ด ์ฃผ๋ฉด ๋˜์š”.


์ด ๊ณณ์—์„œ๋Š” Master์—์„œ SSH๋ฅผ ์ด์šฉํ•ด์„œ Slave๋ฅผ ์ ‘์†ํ•  ๋•Œ, ์ด์šฉํ•  ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ๋Š” ๊ณณ์ด์—์š”.

์œ„์™€ ๊ฐ™์ด ๊ณ„์ • ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ๋˜์š”.



๋งŒ์•ฝ SSH Port ๋ฒˆํ˜ธ๊ฐ€ 22๋ฒˆ์ด ์•„๋‹ˆ๋ผ๋ฉด '๊ณ ๊ธ‰' Button์„ ๋ˆŒ๋Ÿฌ Port ๋ถ€๋ถ„์— ์ˆซ์ž๋ฅผ ๋ณ€๊ฒฝํ•ด ์ฃผ๋ฉด ๋˜์š”.

๋‹ค ๋˜์—ˆ์œผ๋ฉด ์ œ์ผ ๋ฐ‘์— Save๋ฅผ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.




์œ„์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋œ Node ์ด๋ฆ„์„ ํด๋ฆญํ•ด ๋ณผ๊ฒŒ์š”.



์œ„์™€ ๊ฐ™์ด Relaunch agent๊ฐ€ ๋‚˜์˜ค๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์ด์—์š”.

๋งŒ์•ฝ ๋ณ„ ๋‚ด์šฉ์ด ์—†๋‹ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ๋œ ๊ฒƒ์ด์—์š”.


Relaunch agent Button์„ ํด๋ฆญํ•ด ๋ณผ๊ฒŒ์š”.



SSH ์ ‘์†์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‚˜๋ด์š”.


์œ„์™€ ๊ฐ™์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๋•Œ๋Š” Jenkins Slave์—์„œ
Jenkins Master๋กœ SSH ์ ‘์†์„ ํ•œ๋ฒˆ ์‹œ๋„ํ•ด ์ฃผ๋ฉด ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐ์ด ๋˜์š”.

 



์œ„์™€ ๊ฐ™์ด ํ‘œ์‹œ๊ฐ€ ๋˜์–ด์•ผ ์ •์ƒ ์—ฐ๊ฒฐ์ด ๋œ ๊ฒƒ์ด์—์š”.






 

 

 

 

728x90
๋ฐ˜์‘ํ˜•