2023. 7. 12. 06:00ใSystem ์์ ์ค/DevOps
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ Docker Container๋ฅผ ์ด์ฉํ Redmine ์ค์นํ๊ธฐ
๐ฝ ๊ฐ์
๐ฆ ์๊ฐ
์ด๋ฒ ์๊ฐ์๋ ์ผ์ ๊ด๋ฆฌ๋ฅผ ํ๊ณ , ๊ณผ์
์ ๊ด๋ จํ ํฐ์ผ์ ๋ฐ๊ธํ๊ณ , ๊ณผ์
์ ์ํ ํ๊ฒ ํ ๋น๋ฐ๊ณ , ํ ๋นํ ์ ์๋๋ก ๋์์ฃผ๋ Redmine์ด๋ผ๋ ๊ฒ์ ์ค์นํด ๋ณด๋ ค๊ณ ํด์.
์ฌ์ค ์ด์ ์ ์ ์ ๋์ Redmine์ ์ฌ์ฉํ์์ผ๋, ํฌ๋ฃจ๋ค์ ์๊ตฌ์ฌํญ์ด ํธ๋ํฐ์ผ๋ก ํ์ธ ๋์์ผ๋ฉด ์ข๊ฒ ๋ค๋ ๊ฒ์ด์๋๋ฐ, OpenVPN์ ํตํด VPN๋ง์ ์ ์ํด์ผ ์ด์ฉ์ด ๊ฐ๋ฅํ๋ ๋ด๋ถ ๊ตฌ์กฐ๋ก ๊ตฌ์ถ๋ System์์ ํธ๋ํฐ์ด๋, ํ
๋ธ๋ฆฟ์ผ๋ก OpenVPN ์ ์์ด ๋ค์ ์ด๋ ค์ด ๊ฒ์ ํ์ธํ๊ณ , ์ด ๋๋ฌธ์ Redmine์ ์ปดํจํฐ ์ธ์๋ ์ ์ํ ์ ์์์ด์.
๊ทธ๋์ ๋น์ฉ์ ๋ด๋ ๊ฒ์ ๊ฐ์ํ๊ณ , JIRA๋ฅผ ์ฌ์ฉ ํ์์์ผ๋, ์กฐ๋ฆฝ ์๋ฒ๋ฅผ ๊ตฌ๋งคํ๋ ๋ฑ์ ๋น์ฉ์ ์ธ ๋ฌธ์ ๋ก ์ธํด JIRA์์ ๋ฌด๋ฃ ์๋น์ค๋ฅผ ํ ์ ์๋ Redmine์ ๋ค์ ๊ตฌ์ถํ๊ณ , ์ด์ฉํด ๋ณด๋ ค๊ณ ํด์.
์ด๋ฒ์ ๋ด๋ถ ์ ์์ ์ํด ๊ธฐ์กด OpenVPN์ด ์๋ WireGuard๋ฅผ ๊ตฌ์ถํ๊ณ , ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ๊ฐ๊ฐ์ธ์ ๋จ๋ง์์ ์ ์ํ๊ธฐ ํธํ ๊ฒ์ด๋ผ๋ ํ๋จ์ ํ๊ธฐ ๋๋ฌธ์ ๋ค์ ํ๋ฒ ๊ตฌ์ถํ๊ณ , ํ
์คํธ๋ฅผ ์งํํด ๋ณด๋ ค๊ณ ํฉ๋๋ค.
๋ค๋ง, Redmine์ ํฌ๋ํฐ ๋จ์ ์ UI๊ฐ ์ ๋ง ๋ณ๋ก๋ผ๋ ์ ์ด์์.
๐ฆ Redmine ์ด๋?
Redmine์ Project ๊ด๋ฆฌ ๋๊ตฌ๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๊ณ , Issue Tracker๋ผ๊ณ ๋ ๋ถ๋ฆฌ๊ธฐ๋ ํด์.
์คํ์์ค ํ๋ก๊ทธ๋จ์ด๋ฉด์ ์น ๊ธฐ๋ฐ ์์คํ
์ผ๋ก Task, ๊ฒฐํจ, Issue ๋ฑ์ ์ ๋ณด๋ฅผ ์ ์ฐํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ ํ๋ก์ ํธ ๊ด๋ฆฌ ์์คํ
์ด๋ฉฐ, ๊ด๋ จ๋ถ์ผ ์คํ์์ค ์ค ์ ์ธ๊ณ ์ ์ผ๋ก ์ฌ์ฉ ์ธต์ด ๋๋ค๊ณ ํฉ๋๋ค.
ํน์ง
โ ๋ค์ค ํ๋ก์ ํธ ์ง์
โ ์ ์ฐํ ์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด
โ ์ ์ฐํ Issue ์ถ์ ๊ธฐ๋ฅ
โ ๊ฐํธ Chart, ๋ฌ๋ ฅ, Load Map, ๊ฒ์ํ, ๋ฌธ์, File, News, Wiki ๋ฑ์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ ์ ๊ณต
โ Email Alarm ๊ธฐ๋ฅ
โ ํ์๊ด๋ฆฌ ์์คํ
๊ณผ ์ฐ๋
- SVN, Git, CVS, Mercurial, Bazaar Darcs ๋ฑ
โ ๋ค๊ตญ์ด ์ง์
โ ๋ค์์ ํ๋ฌ๊ทธ์ธ ์ง์
โ ๋ชจ๋ฐ์ผ์ฑ ์ง์
โ ์ ์ฐํ ํ๋ฉด ๊ตฌ์ฑ
Redmine์ ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ๋๋ฆฌ ์๋ ค์ง Jira ๋ฑ์ด ์์ผ๋, ์ฃผ๋์ฐ๋ ๋ฌด๋ฃ๋ก Project ๊ด๋ฆฌ๋ฅผ ํด์ผ ํ๋ ํ์ฌ ์ํฉ์ ๋ง๊ฒ Redmine์ ๊ตฌ์ถํ๋ ค๊ณ ํด์.
Redmine์ Project๋ฅผ ์งํํ๋๋ฐ, ํ์ํ ๋๊ตฌ๋ค์ ์ ๊ณตํ๋ Service๋ก ์ฃผ๋ก ์๋์ ๊ฐ์ Service๋ฅผ ์ด์ฉํ ์ ์์ด์.
โ ์ผ์ ๊ด๋ฆฌ
โ ๊ฐํธ์ฐจํธ
โ ๋ก๋๋งต(๋ฒ์ , ๋ง์ผ์คํค)
โ ๊ฒฐํจ๊ด๋ฆฌ
โ ์ด์ ๋ฐ ๋ฆฌ์คํฌ ๊ด๋ฆฌ
โ ๋ฌ๋ ฅ
โ ๋ด์ค
โ ์ํค
โ ๊ฒ์ํ
โ ํ์ผ
โ ์ ์ฅ์
โ ์ผ๊ฐํ๋ฆ (์ํฌํ๋ก์)
โ ์ด๋ฉ์ผ ์๋ฆผ
โ ์ ์ฐํ ํ๋ฉด ๊ตฌ์ฑ
โ ๋ด ํ์ด์ง
๐ฝ ์ด๊ธฐ ๊ตฌ์ฑ
๐ฆ Data Base
์ต์ด Redmine์ Project ๊ด๋ฆฌ์ ํ์ํ Data๋ฅผ ๋ด์๋ ์ ์๋ Data Base๊ฐ ํ์ํด์.
Redmine์ MySQL ํน์ Maria DB๋ฅผ ์ด์ฉํ ์ ์์ด์.
์ฃผ๋๋ DataBase Docker๋ฅผ ๋ชจ์๋ ๊ฐ์ ๋จธ์ ์ Docker๋ฅผ ์ด์ฉํ์ฌ Maria DB๋ฅผ ์ค์นํ๊ณ , ์ด์ฉํด ๋ณด๋ ค๊ณ ํด์.
Redmine์ Bitnami๋ฅผ ํตํด Tomcat, PHP, MySQL๋ฑ์ ํ๋ฒ์ ์ค์นํ๋ ๋ฐฉ๋ฒ๋ ์์ผ๋, ๋ฐ๋ก RDBMS๋ฅผ ๊ด๋ฆฌํ๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ ์ฃผ๋์ฐ๋ ๊ฐ๋ณ์ ์ผ๋ก ์ค์นํ๊ณ , ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ ํํ๊ฒ ๋์์ด์.
MariaDB ์ค์น ๋ฐ ์ค์ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์ด ๊ณณ์ ๊ด์ฌ์ ์ฃผ์ธ์.
์ฃผ๋๋ Data Base๋ฅผ ๋ง๋ค๊ณ , ์์ ๊ฐ์ด Redmine์ฉ Data Base๋ฅผ ๋ง๋ค๊ณ , ๊ณ์ ์ ๋ง๋ค์ด ์ฃผ์์ด์.
๐ฆ Docker ์ค๋น
์ด๋ฒ์๋ Docker Image๋ฅผ ๋ด๋ ค ๋ฐ๋๋ก ํ ๊ฒ์.
์ฃผ๋๋ ์ด Image๋ฅผ ๋ด๋ ค ๋ฐ์ ์ค๊ฑฐ์์.
์ด Image๋ฅผ ์ ํํ ์ด์ ๋ ์ธ๋ถ Data Base์์ ์ฐ๋์ด ๋ณด๋ค ๊ฐํธํ๊ธฐ ๋๋ฌธ์ด์์.
์ฃผ๋๋ ์ด๋ฒ์ Docker Compose๋ฅผ ์ด์ฉํด์ ๊ตฌ์ถ์ ํด๋ณด๋ ค ํ๊ธฐ ๋๋ฌธ์ Docker Compose๋ฅผ ์์ฑํด ๋ณผ๊ฒ์.
์ฃผ๋๊ฐ ์์ฑํ Docker Compose File์ด์์.
ํ๊ฒฝ๋ณ์ ๋ด์ฉ์ ๋ณด๋ค ์์ ํ๊ฒ ๊ด๋ฆฌํ๊ธฐ ์ํด ์์ ๊ฐ์ด ๋ฐ๋ก ๋ง๋ค์ด์ Mapping ํด ์ฃผ๋ ค๊ณ ํด์.
์ฃผ๋์ฐ๋ ํฌ๋ฃจ๋ค์ด ๋ธ๋ผ์ฐ์ ๋ก ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ๋ถ๊ฒํ๊ธฐ ์ํด http Port๋ฅผ ๊ทธ๋ฅ ์ฐ๊ธฐ๋ก ํ์ด์.
๊ทธ๋ฆฌ๊ณ , enviroment ๋ถ๋ถ์ DB ์ ๋ณด๋ฅผ ์
๋ ฅํด ์ฃผ์์ด์.
ํ๊ฒฝ ๋ณ์ File์ ์์ ๊ฐ์ ํ์์ผ๋ก ์์ฑํด ์ฃผ๋ฉด ๋๋ต๋๋ค.
Docker๋ฅผ ๊ธฐ๋ ์์ผฐ๊ณ , ์ ์์ ์ผ๋ก ๊ธฐ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
์ถ๊ฐ์ ์ผ๋ก ์์ ๋ช
๋ น์ด๋ฅผ ํตํด Log๋ฅผ ์ค์๊ฐ์ผ๋ก ํ ์ค ์ฉ ํ์ธํด ์ค ์ ์์ด์.
tail -f ๋ Terminal ์์์ ํฌ๊ทธ๋ผ์ด๋๋ก ๋์ํ๊ฒ ํ๋
๋ช
๋ น์ด๋ก ์ค์๊ฐ์ผ๋ก ๋ค์ด์ค๋ Log๋ฅผ ๋ณผ ๋ ๋ง์ด ์ฌ์ฉํ๋ ๋ช
๋ น์ด์์.
์์ ๊ฐ์ด ์ ์๋ํ๋ ๊ฑธ ํ์ธํ ์ ์์ด์.
์ต์ด ๊ธฐ๋ณธ ๊ณ์ ์ ์๋์ ๊ฐ์์.
ID: admin
๋น๋ฐ๋ฒํธ: admin
๐ง ์ฐธ๊ณ ์๋ฃ
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
'System ์์ ์ค > DevOps' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Redmine] Cell Phone, Tablet์ผ๋ก ์ ์ํ๊ธฐ (0) | 2023.07.15 |
---|---|
[๊ฐ์ํ - Container] Docker๋ฅผ ์ด์ฉํ Ansible ์ค์นํ๊ธฐ (0) | 2023.07.14 |
[Infra] IaC Ansible์ ์ด์ฉํ Client(ํด๋ผ์ด์ธํธ) ์๋ฒ ๊ณ์ ๋ง๋ค๊ธฐ (0) | 2023.07.08 |
[Linux] SonarQube 9.8 - PostgreSQL 15.2 ์ฐ๋ํ๊ธฐ (0) | 2023.07.08 |
[๊ฐ์ํ - Container] Docker๋ฅผ ์ด์ฉํ PostgreSQL 15 ์ค์น (0) | 2023.07.08 |