์ค์๋ธ ๋ฐ๋ธ์ต์ค ์ฝ๋์คํ์ผ
์ฌ๊ธฐ์! ๋ด ์ด๋ฆ์
์ด ๊ฐ์ด๋๋ ๋ฐฐํฌ ์ ๋ณ์๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ ์ด๋ฏธ ํ๋ ์ด๋ถ์์ ์ญํ ์ ์ฌ์ฉํ๊ณ ์๊ณ ๋ค์ ๋ด์ฉ์ ์ฝ์ด๋ณธ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค.
- ์ฝ๋์์ ๋ณ์๋ฅผ ์ฐพ์๋ค๋ฉด ๊ทธ ๋ณ์๊ฐ ๋ฌด์์ ๋ด๋นํ๋์ง ์ฆ์ ์ดํดํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
- ์ฌ๋ฌ ์ญํ ์ด ์๊ณ ๋ณ์๋ ํ๋์ ๊ฐ๊ณผ ์ฐ๊ฒฐ๋์ด์ผ ํ์ง๋ง ์๋ํ์ง ์์ต๋๋ค.
- ํ๋ ์ด๋ถ์ ๋ณ์ ๋ ผ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ค๋ฅธ ์ฌ๋์๊ฒ ์ค๋ช ํ๋ ๋ฐ ์ด๋ ค์์ด ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ํ์ฌ์ ํ๋ก์ ํธ์์ ์ด๋ฌํ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ๊ทธ ๊ฒฐ๊ณผ ํ๋ ์ด๋ถ์ ๋ณ์ ์ค๊ณ ๊ท์น์ ์์ฑํ์ฌ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ด๋ ์ ๋ ํด๊ฒฐํ์ต๋๋ค.
์ญํ ์ ๋ณ์
์ญํ ์ ๋ฐฐํฌ ์์คํ ์ ๋ณ๋ ๊ฐ์ฒด์ ๋๋ค. ๋ชจ๋ ์์คํ ๊ฐ์ฒด์ ๋ง์ฐฌ๊ฐ์ง๋ก ์์คํ ์ ๋๋จธ์ง ๋ถ๋ถ๊ณผ ์ํธ ์์ฉํ ์ ์๋ ์ธํฐํ์ด์ค๊ฐ ์์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ธํฐํ์ด์ค๋ ์ญํ ๋ณ์์ ๋๋ค.
์๋ฅผ ๋ค์ด ์ญํ ์ ์๊ฐํด ๋ด
์๋ค. api
, ์๋ฒ์ Java ์ ํ๋ฆฌ์ผ์ด์
์ ์ค์นํฉ๋๋ค. ์ด๋ค ๋ณ์๊ฐ ์์ ์ ์๋์?
๊ฐ๋ณ ์ญํ ์ ์ ํ์ ๋ฐ๋ผ ๋ ๊ฐ์ง ์ ํ์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
1. ะกะฒะพะนััะฒะฐ
a) ะฝะตะทะฐะฒะธัะธะผัะต ะพั ััะตะดั
ะฑ) ะทะฐะฒะธัะธะผัะต ะพั ััะตะดั
2. ะกะฒัะทะธ
a) ัะปััะฐัะตะปะธ
ะฑ) ะทะฐะฟัะพัั ะฒะฝัััะธ ัะธััะตะผั
ะฒ) ะทะฐะฟัะพัั ะฒ ััะตะดั
๋ณ์ ์์ฑ ์ญํ ์ ํ๋์ ๊ฒฐ์ ํ๋ ๋ณ์์ ๋๋ค.
์ฟผ๋ฆฌ ๋ณ์ - ์ญํ ์ธ๋ถ์ ๋ฆฌ์์ค๋ฅผ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฐ์ ๊ฐ๋ ๋ณ์์ ๋๋ค.
๋ณ์ ๋ฆฌ์ค๋ - ์์ฒญ ๋ณ์๋ฅผ ํ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฐ์ ๊ฐ๋ ๋ณ์์ ๋๋ค.
๋ฐ๋ฉด, 1a, 2a, 2b๋ ํ๊ฒฝ(ํ๋์จ์ด, ์ธ๋ถ์์ ๋ฑ)์ ์์กดํ์ง ์๋ ๋ณ์๋ก defaults ์ญํ ์ ๊ธฐ๋ณธ๊ฐ์ ์ฑ์ธ ์ ์๋ค. ๋ค๋ง, 1.b, 2.c ํ์ ์ ๋ณ์๋ ํ๊ฒฝ์ ๋ฐ๋ผ ์คํ ๋์์ ์คํ ๋๋ก ๋ฐ๋๊ธฐ ๋๋ฌธ์ 'example' ์ด์ธ์ ๊ฐ์ผ๋ก ์ฑ์ฐ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
์ฝ๋ ์คํ์ผ
- ๋ณ์ ์ด๋ฆ์ ์ญํ ์ด๋ฆ์ผ๋ก ์์ํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋์ค์ ๋ณ์๊ฐ ์ด๋ค ์ญํ ์ ํ๋์ง, ๋ฌด์์ ๋ด๋นํ๋์ง ์ฝ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
- ์ญํ ์์ ๋ณ์๋ฅผ ์ฌ์ฉํ ๋๋ ์บก์ํ ์์น์ ๋ฐ๋ฅด๊ณ ์ญํ ์์ฒด ๋๋ ํ์ฌ ์ญํ ์ด ์์กดํ๋ ์ญํ ์ ์ ์๋ ๋ณ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
-
๋ณ์์ ์ฌ์ ์ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. Ansible์์๋ ์ฌ์ ์ ๊ฐ๋ณ ๊ฐ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ ์ํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค.
์๋ชป๋ ๋ณ์์ ์:
myrole_user: login: admin password: admin
์ฌ๊ธฐ์ ๋ก๊ทธ์ธ์ ๋ ๋ฆฝ๋ณ์์ด๊ณ , ๋น๋ฐ๋ฒํธ๋ ์ข ์๋ณ์์ ๋๋ค. ํ์ง๋ง
๊ทธ๊ฒ๋ค์ ์ฌ์ ์ผ๋ก ๊ฒฐํฉ๋์ด ์์ผ๋ฏ๋ก ์์ ํ ์ง์ ํด์ผ ํฉ๋๋ค.
์ธ์ ๋. ๋งค์ฐ ๋ถํธํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ด ๋ ์ข์ต๋๋ค:myrole_user_login: admin myrole_user_password: admin
๋ฐฐํฌ ํ๋ ์ด๋ถ์ ๋ณ์
๋ฐฐํฌ ํ๋ ์ด๋ถ(์ดํ ํ๋ ์ด๋ถ)์ ์ปดํ์ผํ ๋ ๋ณ๋์ ์ ์ฅ์์ ๋ฐฐ์นํด์ผ ํ๋ค๋ ๊ท์น์ ์ค์ํฉ๋๋ค. ์ญํ ๊ณผ ๋์ผํฉ๋๋ค. ๊ฐ ์ญํ ์ ์์ฒด git ์ ์ฅ์์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ญํ ๊ณผ ํ๋ ์ด๋ถ์ ๋ฐฐํฌ ์์คํ ์ ์๋ก ๋ค๋ฅธ ๋ ๋ฆฝ์ ๊ฐ์ฒด์ด๋ฉฐ ํ ๊ฐ์ฒด์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ค๋ฅธ ๊ฐ์ฒด์ ์๋์ ์ํฅ์ ์ฃผ์ด์๋ ์ ๋๋ค๋ ์ ์ ์ดํดํ ์ ์์ต๋๋ค. ์ด๋ ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ๋ณ๊ฒฝํ์ฌ ๋ฌ์ฑ๋ฉ๋๋ค.
์์ฝํ๋ฉด ํ๋ ์ด๋ถ์ ์ปดํ์ผํ ๋ ํ๋ ์ด๋ถ ๋ณ์์ ์ธ๋ฒคํ ๋ฆฌ ๋ณ์ ๋ ๊ณณ์์ ์ญํ ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ ์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
mydeploy # ะะฐัะฐะปะพะณ ะดะตะฟะปะพั
โโโ deploy.yml # ะะปะตะนะฑัะบ ะดะตะฟะปะพั
โโโ group_vars # ะะฐัะฐะปะพะณ ะฟะตัะตะผะตะฝะฝัั
ะฟะปะตะนะฑัะบะฐ
โ โโโ all.yml # ะคะฐะนะป ะดะปั ะฟะตัะตะผะตะฝะฝัั
ัะฒัะทะธ ะฒัะตะน ัะธััะตะผั
โ โโโ myapi.yml # ะคะฐะนะป ะฟะตัะตะผะตะฝะฝัั
ัะฒะพะนััะฒ ะณััะฟะฟั myapi
โโโ inventories #
โโโ prod # ะะฐัะฐะปะพะณ ะพะบััะถะตะฝะธั prod
โโโ prod.ini # ะะฝะฒะตะฝัะพัะธ ัะฐะนะป
โโโ group_vars # ะะฐัะฐะปะพะณ ะดะปั ะฟะตัะตะผะตะฝะฝัั
ะธะฝะฒะตะฝัะพัะธ
โโโ myapi #
โโโ vars.yml # ะกัะตะดะพะทะฐะฒะธัะธะผัะต ะฟะตัะตะผะตะฝะฝัะต ะณััะฟะฟั myapi
โโโ vault.yml # ะกะตะบัะตัั (ะฒัะตะณะดะฐ ััะตะดะพะทะฐะฒะธัะธะผั) *
* -
์ฐจ์ด์ ์ ํ๋ ์ด๋ถ ๋ณ์๋ ๋์ผํ ๋ ๋ฒจ์ ์๋ ํ๋ ์ด๋ถ์ ํธ์ถํ ๋ ํญ์ ์ฌ์ฉ๋๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ด๋ฌํ ๋ณ์๊ฐ ํ๊ฒฝ ๋ ๋ฆฝ์ ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ฐ ์ ์ฉํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋๋ก, ์ธ๋ฒคํ ๋ฆฌ ๋ณ์๋ ํน์ ํ๊ฒฝ์๋ง ์ฌ์ฉ๋๋ฉฐ ์ด๋ ํ๊ฒฝ๋ณ ๋ณ์์ ์ด์์ ์ ๋๋ค.
๋ณ์ ์ฐ์ ์์๋ฅผ ์ฌ์ฉํ๋ฉด ๋จผ์ ํ๋ ์ด๋ถ ๋ณ์์์ ๋ณ์๋ฅผ ์ฌ์ ์ํ ๋ค์ ํ๋์ ์ธ๋ฒคํ ๋ฆฌ์์ ๋ณ๋๋ก ๋ณ์๋ฅผ ์ฌ์ ์ํ ์ ์๋ค๋ ์ ์ ์ ์ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ด๋ ์ด๋ฏธ ์ด ๋จ๊ณ์์ ๋ณ์๊ฐ ํ๊ฒฝ์ ์ข ์์ ์ธ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ณ ์ ์ ํ ์์น์ ๋ฐฐ์นํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ํ ํ๋ก์ ํธ์์ SSL ํ์ฑํ๋ฅผ ๋ด๋นํ๋ ๋ณ์๋ ์ค๋ซ๋์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฌ๋ผ์ก์ต๋๋ค. ์คํ ๋ ์ค ํ๋์์ ํต์ ํ ์ ์๋ ์ด์ ๋ก SSL์ ํ์ฑํํ ์ ์์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ํ์๋ ํ๊ฒฝ ๋ ๋ฆฝ์ ์ด ๋์ด ํ๋ ์ด๋ถ ๋ณ์๋ก ์ด๋ํ์ต๋๋ค.
๊ทธ๋ฃน์ ์์ฑ ๋ณ์
Java ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅด์ง๋ง ์ค์ ์ด ๋ค๋ฅธ 1๊ฐ์ ์๋ฒ ๊ทธ๋ฃน์ ์ถ๊ฐํ์ฌ ๊ทธ๋ฆผ 2์ ๋ชจ๋ธ์ ํ์ฅํด ๋ณด๊ฒ ์ต๋๋ค.
์ด ๊ฒฝ์ฐ ํ๋ ์ด๋ถ์ด ์ด๋ป๊ฒ ๋ณด์ผ์ง ์์ํด ๋ด ์๋ค.
- hosts: myapi
roles:
- api
- hosts: bbauth
roles:
- auth
- hosts: ghauth
roles:
- auth
ํ๋ ์ด๋ถ์๋ ์ธ ๊ฐ์ ๊ทธ๋ฃน์ด ์์ผ๋ฏ๋ก, group_vars ์ธ๋ฒคํ ๋ฆฌ ๋ณ์์ ํ๋ ์ด๋ถ ๋ณ์์ ๋์ผํ ์์ ๊ทธ๋ฃน ํ์ผ์ ์์ฑํ๋ ๊ฒ์ด ์ฆ์ ๊ถ์ฅ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ํ๋์ ๊ทธ๋ฃน ํ์ผ์ ํ๋ ์ด๋ถ์ ์๋ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ๊ตฌ์ฑ ์์์ ๋ํ ์ค๋ช ์ ๋๋ค. ํ๋ ์ด๋ถ ๋ณ์์์ ๊ทธ๋ฃน ํ์ผ์ ์ด๋ฉด ๊ทธ๋ฃน์ ์ค์น๋ ์ญํ ์ ๊ธฐ๋ณธ ๋์๊ณผ์ ๋ชจ๋ ์ฐจ์ด์ ์ ์ฆ์ ํ์ธํ ์ ์์ต๋๋ค. ์ฌ๊ณ ๋ณ์: ์ ์์ ๋๋ง๋ค ๊ทธ๋ฃน ํ๋์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ฝ๋ ์คํ์ผ
- host_vars ๋ณ์๋ ์์คํ ์ ์ค๋ช ํ์ง ์๊ณ ํน์ํ ๊ฒฝ์ฐ์ด๋ฏ๋ก ๋์ค์ "์ด ํธ์คํธ๊ฐ ๋ค๋ฅธ ํธ์คํธ์ ๋ค๋ฅธ ์ด์ ๋ ๋ฌด์์ ๋๊น?"๋ผ๋ ์ง๋ฌธ์ผ๋ก ์ด์ด์ง ์ ์์ผ๋ฏ๋ก ์ ํ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. ์ด์ ๋ํ ๋๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํญ์ ์ฝ๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.
ํต์ ๋ณ์
๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์์ฑ ๋ณ์์ ์ ๋ถ์
๋๋ค. ๊ทธ๋ฐ๋ฐ ํต์ ๋ณ์๋ ์ด๋ป์ต๋๊น?
์ฐจ์ด์ ์ ์๋ก ๋ค๋ฅธ ๊ทธ๋ฃน์์ ๋์ผํ ์๋ฏธ๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค๋ ๊ฒ์
๋๋ค.
์ฒ์์๋ ๊ทธ๋ฌ์ด์
hostvars[groups['bbauth'][0]]['auth_bind_port']
๊ทธ๋ฌ๋ ๊ทธ๋ค์ ์ฆ์ ์ด๋ฅผ ๊ฑฐ๋ถํ๋ค.
๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ด์ฃ . ์ฒซ์งธ, ๋ถํผ๊ฐ. ๋์งธ, ๊ทธ๋ฃน์ ํน์ ํธ์คํธ์ ๋ํ ์์กด์ฑ์
๋๋ค. ์
์งธ, ์ ์๋์ง ์์ ๋ณ์์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค์ง ์์ผ๋ ค๋ฉด ๋ฐฐํฌ๋ฅผ ์์ํ๊ธฐ ์ ์ ๋ชจ๋ ํธ์คํธ์์ ์ฌ์ค์ ์์งํด์ผ ํฉ๋๋ค.
๊ทธ ๊ฒฐ๊ณผ ํต์ ๋ณ์๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค.
ํต์ ๋ณ์ - ํ๋ ์ด๋ถ์ ์ํ๋ฉฐ ์์คํ ๊ฐ์ฒด๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐ ํ์ํ ๋ณ์์ ๋๋ค.
ํต์ ๋ณ์๋ ์ผ๋ฐ ์์คํ
๋ณ์์ ์ฑ์์ง๋๋ค. group_vars/all/vars
๊ฐ ๊ทธ๋ฃน์์ ๋ชจ๋ ๋ฆฌ์ค๋ ๋ณ์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ณ์์ ์์ ๋ถ๋ถ์ ๋ฆฌ์ค๋๊ฐ ์ ๊ฑฐ๋ ๊ทธ๋ฃน์ ์ด๋ฆ์ ์ถ๊ฐํ์ฌ ๊ตฌ์ฑ๋ฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ด๋ฆ์ด ํต์ผ๋๊ณ ์ค๋ณต๋์ง ์์ต๋๋ค.
์ ์์ ์ ๋ณ์๋ฅผ ๋ฐ์ธ๋ฉํด ๋ณด๊ฒ ์ต๋๋ค.
์๋ก ์์กดํ๋ ๋ณ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค.
# roles/api/defaults:
# ะะตัะตะผะตะฝะฝะฐั ะทะฐะฟัะพัะฐ
api_auth1_address: "http://example.com:80"
api_auth2_address: "http://example2.com:80"
# roles/auth/defaults:
# ะะตัะตะผะตะฝะฝะฐั ัะปััะฐัะตะปั
auth_bind_port: "20000"
๊ณตํต๋ณ์์ ๋ฃ์ด๋ณด์ group_vars/all/vars
๋ชจ๋ ์ฒญ์ทจ์๋ฅผ ์ ํํ๊ณ ์ ๋ชฉ์ ๊ทธ๋ฃน ์ด๋ฆ์ ์ถ๊ฐํฉ๋๋ค.
# group_vars/all/vars
bbauth_auth_bind_port: "20000"
ghauth_auth_bind_port: "30000"
# group_vars/bbauth/vars
auth_bind_port: "{{ bbauth_auth_bind_port }}"
# group_vars/ghauth/vars
auth_bind_port: "{{ ghauth_auth_bind_port }}"
# group_vars/myapi/vars
api_auth1_address: "http://{{ bbauth_auth_service_name }}:{{ bbauth_auth_bind_port }}"
api_auth2_address: "http://{{ ghauth_auth_service_name }}:{{ ghauth_auth_bind_port }}"
์ด์ ์ปค๋ฅํฐ ๊ฐ์ ๋ณ๊ฒฝํ์ฌ ์์ฒญ์ด ํฌํธ๊ฐ ์๋ ๋์ผํ ์์น๋ก ์ด๋ํ๋์ง ํ์ธํฉ๋๋ค.
์ฝ๋ ์คํ์ผ
- ์ญํ ๊ณผ ๊ทธ๋ฃน์ ์๋ก ๋ค๋ฅธ ์์คํ ๊ฐ์ฒด์ด๋ฏ๋ก ์๋ก ๋ค๋ฅธ ์ด๋ฆ์ ๊ฐ์ ธ์ผ ํ๋ฉฐ, ๋งํฌ ๋ณ์๋ ์ด๋ค์ด ์์คํ ์ ์ญํ ์ด ์๋ ํน์ ์๋ฒ ๊ทธ๋ฃน์ ์ํด ์์์ ์ ํํ๊ฒ ๋ํ๋ ๋๋ค.
ํ๊ฒฝ ์ข ์ ํ์ผ
์ญํ ์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฅธ ํ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๋ฌํ ํ์ผ์ ์๋ก๋ SSL ์ธ์ฆ์๊ฐ ์์ต๋๋ค. ํ
์คํธ ํ์์ผ๋ก ์ ์ฅ
๋ณ์์์๋ ๊ทธ๋ค์ง ํธ๋ฆฌํ์ง ์์ต๋๋ค. ํ์ง๋ง ๊ฒฝ๋ก๋ฅผ ๋ณ์ ์์ ์ ์ฅํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ฐ๋ฆฌ๋ ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค api_ssl_key_file: "/path/to/file"
.
ํ๊ฒฝ์ ๋ฐ๋ผ ํค ์ธ์ฆ์๊ฐ ๋ณ๊ฒฝ๋ ๊ฒ์ด ๋ถ๋ช
ํ๋ฏ๋ก ์ด๋ ํ๊ฒฝ ์ข
์ ๋ณ์์ด๋ฏ๋ก ํ์ผ์ ์์นํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
group_vars/myapi/vars
๋ณ์ ๋ชฉ๋ก์ด๋ฉฐ '์๋ฅผ ๋ค์ด' ๊ฐ์ ํฌํจํฉ๋๋ค.
์ด ๊ฒฝ์ฐ ๊ฐ์ฅ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ํ๋ ์ด๋ถ ์ ์ฅ์์ ํค ํ์ผ์ ๋ฃ๋ ๊ฒ์
๋๋ค.
files/prod/certs/myapi.key
์ด๋ฉด ๋ณ์ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
api_ssl_key_file: "prod/certs/myapi.key"
. ํธ๋ฆฌํจ์ ํน์ ์คํ ๋์์ ์์คํ
๋ฐฐํฌ๋ฅผ ๋ด๋นํ๋ ์ฌ๋๋ค์ด ์ ์ฅ์์ ํ์ผ์ ์ ์ฅํ ์ ์ฉ ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์๋ค๋ ์ฌ์ค์ ์์ต๋๋ค. ๋์์ ๋ค๋ฅธ ์์คํ
์์ ์ธ์ฆ์๋ฅผ ์ ๊ณตํ๋ ๊ฒฝ์ฐ ์๋ฒ์ ์ธ์ฆ์์ ๋ํ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
ํ๋์ ํ๊ฒฝ์ ์ฌ๋ฌ ์คํ ๋
๋์ผํ ํ๊ฒฝ์์ ์ฐจ์ด๋ฅผ ์ต์ํํ๋ฉด์ ๊ฑฐ์ ๋์ผํ ์ฌ๋ฌ ์คํ ๋๋ฅผ ๋ฐฐํฌํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ํ๊ฒฝ ์ข ์ ๋ณ์๋ฅผ ํด๋น ํ๊ฒฝ ๋ด์์ ๋ณ๊ฒฝ๋์ง ์๋ ๋ณ์์ ๋ณ๊ฒฝ๋๋ ๋ณ์๋ก ๋๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์๋ฅผ ์ฌ๊ณ ํ์ผ ์์ฒด๋ก ์ง์ ์ ์กํฉ๋๋ค. ์ด ์กฐ์ ํ์๋ ํ๊ฒฝ ๋๋ ํฐ๋ฆฌ์ ์ง์ ๋ค๋ฅธ ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ง๋๋ค.
group_vars ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ์ฌ์ฌ์ฉํ๊ณ ์ผ๋ถ ๋ณ์๋ฅผ ์ง์ ์ฌ์ ์ํ ์๋ ์์ต๋๋ค.
๋ฐฐํฌ ํ๋ก์ ํธ์ ์ต์ข ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
mydeploy # ะะฐัะฐะปะพะณ ะดะตะฟะปะพั
โโโ deploy.yml # ะะปะตะนะฑัะบ ะดะตะฟะปะพั
โโโ files # ะะฐัะฐะปะพะณ ะดะปั ัะฐะนะปะพะฒ ะดะตะฟะปะพั
โ โโโ prod # ะะฐัะพะปะพะณ ะดะปั ััะตะดะพะทะฐะฒะธัะธะผัั
ัะฐะนะปะพะฒ ััะตะฝะดะฐ prod
โ โ โโโ certs #
โ โ โโโ myapi.key #
โ โโโ test1 # ะะฐัะฐะปะพะณ ะดะปั ััะตะดะพะทะฐะฒะธัะธะผัั
ัะฐะนะปะพะฒ ััะตะฝะดะฐ test1
โโโ group_vars # ะะฐัะฐะปะพะณ ะฟะตัะตะผะตะฝะฝัั
ะฟะปะตะนะฑัะบะฐ
โ โโโ all.yml # ะคะฐะนะป ะดะปั ะฟะตัะตะผะตะฝะฝัั
ัะฒัะทะธ ะฒัะตะน ัะธััะตะผั
โ โโโ myapi.yml # ะคะฐะนะป ะฟะตัะตะผะตะฝะฝัั
ัะฒะพะนััะฒ ะณััะฟะฟั myapi
โ โโโ bbauth.yml #
โ โโโ ghauth.yml #
โโโ inventories #
โโโ prod # ะะฐัะฐะปะพะณ ะพะบััะถะตะฝะธั prod
โ โโโ group_vars # ะะฐัะฐะปะพะณ ะดะปั ะฟะตัะตะผะตะฝะฝัั
ะธะฝะฒะตะฝัะพัะธ
โ โ โโโ myapi #
โ โ โ โโโ vars.yml # ะกัะตะดะพะทะฐะฒะธัะธะผัะต ะฟะตัะตะผะตะฝะฝัะต ะณััะฟะฟั myapi
โ โ โ โโโ vault.yml # ะกะตะบัะตัั (ะฒัะตะณะดะฐ ััะตะดะพะทะฐะฒะธัะธะผั)
โ โ โโโ bbauth #
โ โ โ โโโ vars.yml #
โ โ โ โโโ vault.yml #
โ โ โโโ ghauth #
โ โ โโโ vars.yml #
โ โ โโโ vault.yml #
โ โโโ prod.ini # ะะฝะฒะตะฝัะพัะธ ััะตะฝะดะฐ prod
โโโ test # ะะฐัะฐะปะพะณ ะพะบััะถะตะฝะธั test
โโโ group_vars #
โ โโโ myapi #
โ โ โโโ vars.yml #
โ โ โโโ vault.yml #
โ โโโ bbauth #
โ โ โโโ vars.yml #
โ โ โโโ vault.yml #
โ โโโ ghauth #
โ โโโ vars.yml #
โ โโโ vault.yml #
โโโ test1.ini # ะะฝะฒะตะฝัะพัะธ ััะตะฝะดะฐ test1 ะฒ ััะตะดะต test
โโโ test2.ini # ะะฝะฒะตะฝัะพัะธ ััะตะฝะดะฐ test2 ะฒ ััะตะดะต test
ํฉ์ฐ
๊ธฐ์ฌ์ ๋ฐ๋ผ ๋ณ์๋ฅผ ๊ตฌ์ฑํ ํ ๊ฐ ๋ณ์ ํ์ผ์ ํน์ ์์ ์ ๋ด๋นํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ผ์๋ ํน์ ์์ ์ด ์์ผ๋ฏ๋ก ๊ฐ ํ์ผ์ ์ ํ์ฑ์ ๋ด๋นํ๋ ์ฌ๋์ ํ ๋นํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์์คํ ๋ฐฐํฌ ๊ฐ๋ฐ์๋ ํ๋ ์ด๋ถ ๋ณ์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฑ์ธ ์ฑ ์์ด ์๋ ๋ฐ๋ฉด, ์ธ๋ฒคํ ๋ฆฌ์ ์ค๋ช ๋ ์ ์ฅ์ ๊ฐ์ง ๊ด๋ฆฌ์๋ ๋ณ์ ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ์ง์ ์ฑ์ธ ์ฑ ์์ด ์์ต๋๋ค.
์ญํ ์ ์์ฒด ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ถ ์์ฒด ๊ฐ๋ฐ ๋จ์๊ฐ ๋์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ์ญํ ๊ฐ๋ฐ์๋ ์ญํ ์ ์์คํ ์ ๋ง์ถฐ ์กฐ์ ํ๊ธฐ๋ณด๋ค๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ์ ์์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ํนํ ์บ ํ์ธ ๋ด ๋ชจ๋ ์์คํ ์ ๊ณตํต ์ญํ ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
์์คํ ๊ด๋ฆฌ์๋ ๋ ์ด์ ๋ฐฐํฌ ์ฝ๋๋ฅผ ์ดํดํ ํ์๊ฐ ์์ต๋๋ค. ์ฑ๊ณต์ ์ธ ๋ฐฐํฌ๋ฅผ ์ํด ํ์ํ ๊ฒ์ ํ๊ฒฝ ์ข ์ ๋ณ์ ํ์ผ์ ์ฑ์ฐ๋ ๊ฒ๋ฟ์ ๋๋ค.
๋ฌธํ
์ ์
์นผ๋ฅ์ฆ๋ ๋ฐ๋์ค ์๋ ์ฐ๋๋ก๋น์น
์ถ์ฒ : habr.com