1. ์ ํจ์ค ํ๋ฌ๊ทธ์ธ ์ค์น
1)gradle๋ก ๋น๋ํ๊ธฐ์ํด gradle ๊ด๋ จ ํ๋ฌ๊ทธ์ธ ์ค์น
Dashboard > Manage Jenkins > Tools

Gradle Installations > Version ์ ํ ํ๊ณ Save
2) SSH agent ํ๋ฌ๊ทธ์ธ ์ค์น
SSH๋ฅผ ํตํด EC2 ์ธ์คํด์ค์ ์ ๊ทผํ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํด SSH agent๋ฅผ ์ค์นํด์ผํ๋ค.
Dashboard > Manage Jenkins > Plugins > Available plugins
Available plugins > SSH agent ๊ฒ์ > ์ค์น

์ค์น๊ฐ ์๋ฃ๋์๋ค.
2. Repository WebHook ๋ฑ๋ก
์ฌ์ฉ github
https://github.com/seongjju/opensource
GitHub - seongjju/opensource
Contribute to seongjju/opensource development by creating an account on GitHub.
github.com
github repository์ ํน์ branch์ push ์ด๋ฒคํธ ๋ฐ์ ์ ์๋ ๋ฐฐํฌ๊ฐ ๋ฐ์ํ๊ธฐ ์ํด, webhook์ ๋ฑ๋กํ๋ค.
webhook์ ํตํด github์ ๋ํ push event๋ฅผ ๊ฐ์งํ ์ ์๋ค.

๋ฑ๋กํ๊ณ ์ถ์ repository์ Settings > Webhooks > Add webhook์ ์ ํ

http://3.35.152.81:8080/github-webhook/
payload URL: ์ ํจ์ค ์ ๊ทผํ๊ธฐ ์ํ URL, POST์์ฒญ
Content type: POST์์ฒญ์ json ํ์์ ์ ๋ฌ

์ด๋ก์ ์ฒดํฌ ํ์๊ฐ ๋จ๋ฉด ์ฑ๊ณต์ด๋ค.
์ด์ ๊นํ๋ธ ํ ํฐ์ ๋ฐ๊ธ๋ฐ์
์ ํจ์ค์์ github์ ์ ๊ทผํ ๋ ํค๊ฐ ํ์ํ๋ค. ์ด๋ฅผ ํ ํฐ์ด๋ผ ํ๋ค.

github ๊ณ์ ์์ settings
Personal access tokens > Tokens (classic) > Generate new token > Generate new token (classic)์ ํด๋ฆญ

repo, admin:org, admin:repo_hook 3๊ฐ์ง์ ๋ํ ๊ถํ์ ์ค๋ค. ์ด๋ ๊ฐ๊ฐ repository, organization, webhook์ ๋ํ ๊ถํ์ ์๋ฏธ
3. Credentials ์ค์
์ฐ๋ฆฌ๋ 3๊ฐ์ง์ Credentials์ ์ค์ ์ ํด์ผํ๋ค.
DashBoard > Manage Jenkins > Credentials

Jenkins > Domains > global ์ ํ

1) SSH ์ฐ๊ฒฐ
Add Credentials ํด๋ฆญ

ID: ํค ์๋ณ์ ์ด๋ฆ ์ ๋ ฅ
Username: EC2์ ์ ๊ทผํ ๋ ์ฌ์ฉํ๋ ์ฌ์ฉ์ ์ด๋ฆ
Private Key: EC2 ์ธ์คํด์ค ์ ์์ ์ํ pem ํค๋ฅผ ์ ๋ ฅ (cat xx.pem์ ํตํด ๋์จ ๋ด์ฉ์ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ํด์ค๋ค.)
์ฐ๋ถํฌ ์ ์ํ๋ .pem ํค๋ฅผ credential์ ๋ฃ์ด์ผํ๋ค.
์๋ฅผ๋ค์ด Desktop์ a.pem ํค๊ฐ ์๋ค๋ฉด
cd Desktop
cat a.pem
-----BEGIN RSA PRIVATE KEY-----
(์ด ์ฌ์ด์ ํค ๋ด์ฉ์ด ๋ค์ด๊ฐ)
-----END RSA PRIVATE KEY-----
์ด๋, (์ด ์ฌ์ด์ ํค ๋ด์ฉ์ด ๋ค์ด๊ฐ) ์ด๋ถ๋ถ์ ๋ฃ๋๊ฒ ์๋๋ผ BEGIN ~ END ๋ถ๋ถ๊น์ง ๋ค ๋ฃ์ด์ผํ๋ค. ์ด๊ฒ๋๋ฌธ์ ๋ฐฐํฌ์ ssh ๋ฌธ์ ๊ฐ ๊ณ์ ์๊ฒผ๋ค.

์ถ๊ฐ๊ฐ ์๋ฃ๋๋ฉด ๋ชฉ๋ก์ ๋ฌ๋ค.
2) Jenkins์ github token ์ฐ๋
2๋ฒ์์ ๋ฐ๊ธ ๋ฐ์ github token๊ณผ jenkins๋ฅผ ์ฐ๋ํ๋ค.
Manage Jenkins > Credentials

Username: github ID
Password: ๋ฐ๊ธ๋ฐ์ Github token
ID: ID ์์๋ก ์ง์
3) Jenkins์ github server ์ฐ๋
์์์ webhook์ ๋ฑ๋กํ๋ฉด, github์์ push ๋ฐ์ํ๋ฉด, ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๋๋ฐ, ์ด๋ ํ์ํ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ฑ๋กํ๋ ๊ณผ์
Manage Jenkins > System > GitHub

Name์ ์ ๋ ฅํ๊ณ , Credentials๋ฐ์ Add > Jenkins ์ ํ

Secret: ๋ฐ๊ธ๋ฐ์ Github token

Credentials์ ์์์ ์ง์ ํ id๋ฅผ ์ ํ
Test connection์ ๋๋ ์ ๋

์ด ๋ฌธ๊ตฌ๊ฐ ๋์ค๋ฉด ์ ์์ ์ผ๋ก ๋ฑ๋ก๋ ๊ฒ

์ด์ ๊นํ๋ธ์ฐ๊ฒฐ์ด ๋๋ฌ๋ค. ํ์ดํ๋ผ์ธ์ ์์ ํ์ฌ ๋ฐฐํฌ๋ฅผ ์๋ฃํ์.
'๐ณ ์ธํ๋ผ > Jenkins' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Jenkins ์๊ฒฉ ์๋ฒ ๋ฐฐํฌ(Publish Over SSH) (4) (0) | 2024.05.13 |
---|---|
Jenkins ์๊ฒฉ ์๋ฒ ๋ฐฐํฌ(Publish Over SSH) (2) (0) | 2024.05.13 |
Jenkins ์๊ฒฉ ์๋ฒ ๋ฐฐํฌ(Publish Over SSH) (1) (0) | 2024.05.13 |
Jenkins๋? (0) | 2024.05.13 |
1. ์ ํจ์ค ํ๋ฌ๊ทธ์ธ ์ค์น
1)gradle๋ก ๋น๋ํ๊ธฐ์ํด gradle ๊ด๋ จ ํ๋ฌ๊ทธ์ธ ์ค์น
Dashboard > Manage Jenkins > Tools

Gradle Installations > Version ์ ํ ํ๊ณ Save
2) SSH agent ํ๋ฌ๊ทธ์ธ ์ค์น
SSH๋ฅผ ํตํด EC2 ์ธ์คํด์ค์ ์ ๊ทผํ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํด SSH agent๋ฅผ ์ค์นํด์ผํ๋ค.
Dashboard > Manage Jenkins > Plugins > Available plugins
Available plugins > SSH agent ๊ฒ์ > ์ค์น

์ค์น๊ฐ ์๋ฃ๋์๋ค.
2. Repository WebHook ๋ฑ๋ก
์ฌ์ฉ github
https://github.com/seongjju/opensource
GitHub - seongjju/opensource
Contribute to seongjju/opensource development by creating an account on GitHub.
github.com
github repository์ ํน์ branch์ push ์ด๋ฒคํธ ๋ฐ์ ์ ์๋ ๋ฐฐํฌ๊ฐ ๋ฐ์ํ๊ธฐ ์ํด, webhook์ ๋ฑ๋กํ๋ค.
webhook์ ํตํด github์ ๋ํ push event๋ฅผ ๊ฐ์งํ ์ ์๋ค.

๋ฑ๋กํ๊ณ ์ถ์ repository์ Settings > Webhooks > Add webhook์ ์ ํ

http://3.35.152.81:8080/github-webhook/
payload URL: ์ ํจ์ค ์ ๊ทผํ๊ธฐ ์ํ URL, POST์์ฒญ
Content type: POST์์ฒญ์ json ํ์์ ์ ๋ฌ

์ด๋ก์ ์ฒดํฌ ํ์๊ฐ ๋จ๋ฉด ์ฑ๊ณต์ด๋ค.
์ด์ ๊นํ๋ธ ํ ํฐ์ ๋ฐ๊ธ๋ฐ์
์ ํจ์ค์์ github์ ์ ๊ทผํ ๋ ํค๊ฐ ํ์ํ๋ค. ์ด๋ฅผ ํ ํฐ์ด๋ผ ํ๋ค.

github ๊ณ์ ์์ settings
Personal access tokens > Tokens (classic) > Generate new token > Generate new token (classic)์ ํด๋ฆญ

repo, admin:org, admin:repo_hook 3๊ฐ์ง์ ๋ํ ๊ถํ์ ์ค๋ค. ์ด๋ ๊ฐ๊ฐ repository, organization, webhook์ ๋ํ ๊ถํ์ ์๋ฏธ
3. Credentials ์ค์
์ฐ๋ฆฌ๋ 3๊ฐ์ง์ Credentials์ ์ค์ ์ ํด์ผํ๋ค.
DashBoard > Manage Jenkins > Credentials

Jenkins > Domains > global ์ ํ

1) SSH ์ฐ๊ฒฐ
Add Credentials ํด๋ฆญ

ID: ํค ์๋ณ์ ์ด๋ฆ ์ ๋ ฅ
Username: EC2์ ์ ๊ทผํ ๋ ์ฌ์ฉํ๋ ์ฌ์ฉ์ ์ด๋ฆ
Private Key: EC2 ์ธ์คํด์ค ์ ์์ ์ํ pem ํค๋ฅผ ์ ๋ ฅ (cat xx.pem์ ํตํด ๋์จ ๋ด์ฉ์ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ํด์ค๋ค.)
์ฐ๋ถํฌ ์ ์ํ๋ .pem ํค๋ฅผ credential์ ๋ฃ์ด์ผํ๋ค.
์๋ฅผ๋ค์ด Desktop์ a.pem ํค๊ฐ ์๋ค๋ฉด
cd Desktop
cat a.pem
-----BEGIN RSA PRIVATE KEY-----
(์ด ์ฌ์ด์ ํค ๋ด์ฉ์ด ๋ค์ด๊ฐ)
-----END RSA PRIVATE KEY-----
์ด๋, (์ด ์ฌ์ด์ ํค ๋ด์ฉ์ด ๋ค์ด๊ฐ) ์ด๋ถ๋ถ์ ๋ฃ๋๊ฒ ์๋๋ผ BEGIN ~ END ๋ถ๋ถ๊น์ง ๋ค ๋ฃ์ด์ผํ๋ค. ์ด๊ฒ๋๋ฌธ์ ๋ฐฐํฌ์ ssh ๋ฌธ์ ๊ฐ ๊ณ์ ์๊ฒผ๋ค.

์ถ๊ฐ๊ฐ ์๋ฃ๋๋ฉด ๋ชฉ๋ก์ ๋ฌ๋ค.
2) Jenkins์ github token ์ฐ๋
2๋ฒ์์ ๋ฐ๊ธ ๋ฐ์ github token๊ณผ jenkins๋ฅผ ์ฐ๋ํ๋ค.
Manage Jenkins > Credentials

Username: github ID
Password: ๋ฐ๊ธ๋ฐ์ Github token
ID: ID ์์๋ก ์ง์
3) Jenkins์ github server ์ฐ๋
์์์ webhook์ ๋ฑ๋กํ๋ฉด, github์์ push ๋ฐ์ํ๋ฉด, ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๋๋ฐ, ์ด๋ ํ์ํ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ฑ๋กํ๋ ๊ณผ์
Manage Jenkins > System > GitHub

Name์ ์ ๋ ฅํ๊ณ , Credentials๋ฐ์ Add > Jenkins ์ ํ

Secret: ๋ฐ๊ธ๋ฐ์ Github token

Credentials์ ์์์ ์ง์ ํ id๋ฅผ ์ ํ
Test connection์ ๋๋ ์ ๋

์ด ๋ฌธ๊ตฌ๊ฐ ๋์ค๋ฉด ์ ์์ ์ผ๋ก ๋ฑ๋ก๋ ๊ฒ

์ด์ ๊นํ๋ธ์ฐ๊ฒฐ์ด ๋๋ฌ๋ค. ํ์ดํ๋ผ์ธ์ ์์ ํ์ฌ ๋ฐฐํฌ๋ฅผ ์๋ฃํ์.
'๐ณ ์ธํ๋ผ > Jenkins' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Jenkins ์๊ฒฉ ์๋ฒ ๋ฐฐํฌ(Publish Over SSH) (4) (0) | 2024.05.13 |
---|---|
Jenkins ์๊ฒฉ ์๋ฒ ๋ฐฐํฌ(Publish Over SSH) (2) (0) | 2024.05.13 |
Jenkins ์๊ฒฉ ์๋ฒ ๋ฐฐํฌ(Publish Over SSH) (1) (0) | 2024.05.13 |
Jenkins๋? (0) | 2024.05.13 |