Ansible ๊ธฐ๋ฐ์ ์๋ฒ ์ธํ๋ผ ๊ด๋ฆฌ์ฉ ์น ์ธํฐํ์ด์ค์ธ Polemarch 2.1.0์ด ์ถ์๋์์ต๋๋ค. ํ๋ก์ ํธ ์ฝ๋๋ Django ๋ฐ Celery ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ Python ๋ฐ JavaScript๋ก ์์ฑ๋์์ต๋๋ค. ํ๋ก์ ํธ๋ AGPLv3 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ์์คํ ์ ์์ํ๋ ค๋ฉด ํจํค์ง๋ฅผ ์ค์นํ๊ณ ์๋น์ค 1๊ฐ๋ฅผ ์์ํ๋ฉด ๋ฉ๋๋ค. ์ฐ์ ์ฉ์ผ๋ก๋ MySQL/PostgreSQL, Redis/RabbitMQ+Redis(MQ ์บ์ ๋ฐ ๋ธ๋ก์ปค)๋ฅผ ์ถ๊ฐ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ฐ ๋ฒ์ ๋ง๋ค Docker ์ด๋ฏธ์ง๊ฐ ์์ฑ๋ฉ๋๋ค.
์ฃผ์ ๊ฐ์ ์ฌํญ:
- ๋์ฉ๋ ์ฝ๋์ ๋ค์ํ ๋ฐ๋ณต ๋ชฉ๋ก์ ๋ฆฌํฉํ ๋งํ์ฌ ์ฝ๋ ์ด๊ธฐํ ์๊ฐ์ ๋จ์ถํ๊ณ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ต์ ํํ์ต๋๋ค.
- repo_sync_on_run์ด ํ์ฑํ๋ ์ฝ๋ ๋ณต์ (git์ ๊ฒฝ์ฐ) ๋๋ ๋ค์ด๋ก๋(tar์ ๊ฒฝ์ฐ)๊ฐ ์ด์ ์์ค์์ ์คํ ๋๋ ํฐ๋ฆฌ๋ก ์ง์ ์ํ๋ฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ Polemarch๋ฅผ CI/CD ํ์ดํ๋ผ์ธ์ผ๋ก ์ฌ์ฉํ๋ ์ฌ๋๋ค์๊ฒ ํนํ ์ ์ฉํฉ๋๋ค.
- ํ๋ก์ ํธ๋ฅผ ๋๊ธฐํํ ๋ ๋ค์ด๋ก๋ํด์ผ ํ๋ ์ต๋ ์์นด์ด๋ธ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ํฌ๊ธฐ๋ ๊ตฌ์ฑ ํ์ผ์ ๋ฐ์ดํธ ๋จ์๋ก ํ์๋๋ฉฐ ๋ชจ๋ ํ๋ก์ ํธ์ ์ ํจํฉ๋๋ค.
- ์ง์ ๋ repo_sync_on_run_timeout์ผ๋ก ์์ ํ๋ ๊ธฐ๋ฅ์ด ๋ค์ ์คํ๋์์ต๋๋ค. ์ฌ๊ธฐ์ git ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ์ด ์๊ฐ์ git cli ์๊ฐ ์ด๊ณผ์ ์ฌ์ฉ๋๊ณ ์์นด์ด๋ธ์ ๊ฒฝ์ฐ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ๋ค์ด๋ก๋๊ฐ ์์๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ ๋ค๋ฃน๋๋ค.
- ํ๋ก์ ํธ ๋ด์์ ๋ค๋ฅธ ANSIBLE_CONFIG๋ฅผ ์ง์ ํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ๋์์ ๋ฃจํธ์ ansible.cfg๊ฐ ์๋ ํ๋ก์ ํธ์ ๋ํด ์ ์ญ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ์ง์ ํ ์ ์์ต๋๋ค.
- ์ธํฐํ์ด์ค์ ์ฌ์ํ ์ค๋ฅ์ ๋ถ์ ํ์ฑ์ด ์์ ๋์์ผ๋ฉฐ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru