Ansible์šฉ ์›น ์ธํ„ฐํŽ˜์ด์Šค Polemarch 2.1 ์ถœ์‹œ

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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€