เชเชตเชพเชฌเซ devops เชเซเชกเชธเซเชเชพเชเชฒ
เช
เชฐเซ! เชฎเชพเชฐเซเช เชจเชพเชฎ
เช เชฎเชพเชฐเซเชเชฆเชฐเซเชถเชฟเชเชพ เชเชฎเชพเชตเชเชฎเชพเช เชเชฒเซเชจเซ เชเซเช เชตเชตเชพเชจเซ เชฐเซเชค เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ. เช เชฎเชพเชฐเซเชเชฆเชฐเซเชถเชฟเชเชพ เชคเซ เชฒเซเชเซ เชฎเชพเชเซ เชฐเชเชพเชฏเซเชฒ เชเซ เชเซเช เชชเชนเซเชฒเซเชฅเซ เช เชคเซเชฎเชจเซ เชชเซเชฒเซเชฌเซเชเชฎเชพเช เชญเซเชฎเชฟเชเชพเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เช
เชจเซ เชตเชพเชเชเซ เชเซ
- เชเซเชกเชฎเชพเช เชเชฒ เชฎเชณเซเชฏเชพ เชชเชเซ, เชคเซ เชถเซเช เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ เชคเซ เชคเชฐเชค เช เชธเชฎเชเชตเซเช เช เชถเชเซเชฏ เชเซ;
- เชคเซเชฏเชพเช เชเชฃเซ เชญเซเชฎเชฟเชเชพเช เชเซ, เช เชจเซ เชเชฒเซเชจเซ เชเช เชฎเซเชฒเซเชฏ เชธเชพเชฅเซ เชธเชพเชเชเชณเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชชเชฐเชเชคเซ เชคเซ เชเชพเชฎ เชเชฐเชคเซเช เชจเชฅเซ;
- เชคเชฎเชพเชฐเซ เชชเซเชฒเซเชฌเซเชเชฎเชพเช เชตเซเชฐเซเชเชฌเชฒเซเชธเชจเชพ เชคเชฐเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ เชคเซ เช เชจเซเชฏ เชฒเซเชเซเชจเซ เชธเชฎเชเชพเชตเชตเชพเชฎเชพเช เชฎเซเชถเซเชเซเชฒเซ เชเชตเซ เชฐเชนเซ เชเซ
เช เชฎเชจเซ เช เชฎเชพเชฐเซ เชเชเชชเชจเซเชจเชพ เชชเซเชฐเซเชเซเชเซเชเซเชธ เชชเชฐ เช เชธเชฎเชธเซเชฏเชพเชเชจเซ เชธเชพเชฎเชจเซ เชเชฐเชตเซ เชชเชกเซเชฏเซ, เชเซเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เช เชฎเซ เช เชฎเชพเชฐเซ เชชเซเชฒเซเชฌเซเชเชฎเชพเช เชเชฒเซเชจเซ เชซเซเชฐเซเชฎเซเชเชฟเชเช เชเชฐเชตเชพเชจเชพ เชจเชฟเชฏเชฎเซ เชชเชฐ เชเชตเซเชฏเชพ, เชเซเชฃเซ เช เชฎเซเช เช เชเชถเซ เช เชธเชฎเชธเซเชฏเชพเช เชนเชฒ เชเชฐเซ.
เชญเซเชฎเชฟเชเชพเชเชฎเชพเช เชเชฒ
เชญเซเชฎเชฟเชเชพ เช เชเช เช เชฒเช เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชธเชฟเชธเซเชเชฎ เชเชฌเซเชเซเชเซเช เชเซ. เชธเชฟเชธเซเชเชฎเชจเชพ เชเซเชเชชเชฃ เชเชฌเซเชเซเชเซเชเชจเซ เชเซเชฎ, เชคเซเชจเซ เชชเชพเชธเซ เชฌเชพเชเซเชจเซ เชธเชฟเชธเซเชเชฎ เชธเชพเชฅเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชจเซเชเชฐเชซเซเชธ เชนเซเชตเซเช เชเชตเชถเซเชฏเช เชเซ. เชฐเซเชฒ เชตเซเชฐเซเชเชฌเชฒเซเชธ เชเชตเชพ เชเชจเซเชเชฐเชซเซเชธ เชเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชญเซเชฎเชฟเชเชพ เชฒเซ api
, เชเซ เชธเชฐเซเชตเชฐ เชชเชฐ Java เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชเซ. เชคเซเชฎเชพเช เชเชฏเชพ เชเชฒเซ เชเซ?
เชฐเซเชฒ เชตเซเชฐเซเชเชฌเชฒเซเชธเชจเซ เชชเซเชฐเชเชพเชฐ เชฆเซเชตเชพเชฐเชพ 2 เชชเซเชฐเชเชพเชฐเซเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ:
1. ะกะฒะพะนััะฒะฐ
a) ะฝะตะทะฐะฒะธัะธะผัะต ะพั ััะตะดั
ะฑ) ะทะฐะฒะธัะธะผัะต ะพั ััะตะดั
2. ะกะฒัะทะธ
a) ัะปััะฐัะตะปะธ
ะฑ) ะทะฐะฟัะพัั ะฒะฝัััะธ ัะธััะตะผั
ะฒ) ะทะฐะฟัะพัั ะฒ ััะตะดั
เชเชฒ เชเซเชฃเชงเชฐเซเชฎเซ เชเชฒเซ เชเซ เชเซ เชญเซเชฎเชฟเชเชพเชจเชพ เชตเชฐเซเชคเชจเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซ เชเซ.
เชเซเชตเซเชฐเซ เชเชฒเซ เช เชเชตเชพ เชตเซเชฐเชฟเชฏเซเชฌเชฒ เชเซ เชเซ เชเซเชฎเชจเชพ เชฎเซเชฒเซเชฏเชจเซ เชเชชเชฏเซเช เชญเซเชฎเชฟเชเชพเชจเชพ เชฌเชพเชนเซเชฏ เชธเชเชธเชพเชงเชจเซเชจเซ เชจเชฟเชฏเซเชเซเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ.
เชเชฒ เชถเซเชฐเซเชคเชพเช เชตเซเชฐเซเชเชฌเชฒเซเชธ เชเซ เชเซเชจเซ เชเชฟเชเชฎเชค เชเซเชตเซเชฐเซ เชตเซเชฐเชฟเชฏเซเชฌเชฒ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชตเชชเชฐเชพเชฏ เชเซ.
เชฌเซเชเซ เชฌเชพเชเซ, 1a, 2a, 2b เช เชเชตเชพ เชเชฒ เชเซ เชเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ (เชเชฏเชฐเซเชจ, เชฌเชพเชนเซเชฏ เชธเชเชธเชพเชงเชจเซ, เชตเชเซเชฐเซ) เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเชคเชพ เชจเชฅเซ เช เชจเซ เชกเชฟเชซเซเชฒเซเช เชญเซเชฎเชฟเชเชพเชฎเชพเช เชฎเซเชณเชญเซเชค เชฎเซเชฒเซเชฏเซเชฅเซ เชญเชฐเซ เชถเชเชพเชฏ เชเซ. เชเซ เชเซ, 1.b เช เชจเซ 2.c เชเซเชตเชพ เชเชฒเซ 'เชเชฆเชพเชนเชฐเชฃ' เชธเชฟเชตเชพเชฏเชจเชพ เชฎเซเชฒเซเชฏเซเชฅเซ เชญเชฐเซ เชถเชเชพเชคเชพ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เชคเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเชพ เชเชงเชพเชฐเซ เชธเซเชเซเชจเซเชกเชฅเซ เชธเซเชเซเชจเซเชกเชฎเชพเช เชฌเชฆเชฒเชพเชถเซ.
เชเซเชก เชถเซเชฒเซ
- เชเชฒเชจเซเช เชจเชพเชฎ เชญเซเชฎเชฟเชเชพเชจเชพ เชจเชพเชฎเชฅเซ เชถเชฐเซ เชฅเชตเซเช เชเซเชเช. เชเชจเชพเชฅเซ เชญเชตเชฟเชทเซเชฏเชฎเชพเช เชตเซเชฐเซเชเชฌเชฒ เชเช เชญเซเชฎเชฟเชเชพเชฎเชพเชเชฅเซ เชเซ เช เชจเซ เชคเซ เชถเซเช เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ เชคเซ เชธเชฎเชเชตเชพเชจเซเช เชธเชฐเชณ เชฌเชจเชพเชตเชถเซ.
- เชญเซเชฎเชฟเชเชพเชเชฎเชพเช เชเชฒเซเชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ, เชคเชฎเชพเชฐเซ เชเชจเซเชเซเชชเซเชธเซเชฏเซเชฒเซเชถเชจเชจเชพ เชธเชฟเชฆเซเชงเชพเชเชคเชจเซ เช เชจเซเชธเชฐเชตเชพเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเซ เชเซเชเช เช เชจเซ เชญเซเชฎเชฟเชเชพเชฎเชพเช เช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซเชฒ เชเชฒเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชเซเชเช เช เชฅเชตเชพ เชญเซเชฎเชฟเชเชพ เชเซ เชเซเชจเชพ เชชเชฐ เชตเชฐเซเชคเชฎเชพเชจ เชจเชฟเชฐเซเชญเชฐ เชเซ.
-
เชเชฒ เชฎเชพเชเซ เชถเชฌเซเชฆเชเซเชถเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซเช เชเชพเชณเซ. Ansible เชคเชฎเชจเซ เชถเชฌเซเชฆเชเซเชถเชฎเชพเช เชตเซเชฏเชเซเชคเชฟเชเชค เชฎเซเชฒเซเชฏเซเชจเซ เชธเชฐเชณเชคเชพเชฅเซ เชเชตเชฐเชฐเชพเชเชก เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเชคเซเช เชจเชฅเซ.
เชเชฐเชพเชฌ เชเชฒเชจเซเช เชเชฆเชพเชนเชฐเชฃ:
myrole_user: login: admin password: admin
เช เชนเซเช, เชฒเซเชเชฟเชจ เช เชฎเชงเซเชฏเชฎ เชเชฒ เชเซ, เช เชจเซ เชชเชพเชธเชตเชฐเซเชก เช เชเชถเซเชฐเชฟเชค เชเชฒ เชเซ. เชชเชฃ
เชเชพเชฐเชฃ เชเซ เชคเซเช เชถเชฌเซเชฆเชเซเชถเชฎเชพเช เชเซเชกเชพเชฏเซเชฒเชพ เชเซ, เชคเชฎเชพเชฐเซ เชคเซเชจเซ เชธเชเชชเซเชฐเซเชฃ เชเชฒเซเชฒเซเช เชเชฐเชตเซ เชชเชกเชถเซ
เชนเชเชฎเซเชถเชพ. เชเซ เชเซเชฌ เช เช เชธเซเชตเชฟเชงเชพเชเชจเช เชเซ. เช เชฐเซเชคเซ เชตเชงเซ เชธเชพเชฐเซเช:myrole_user_login: admin myrole_user_password: admin
เชเชฎเชพเชตเช เชชเซเชฒเซเชฌเซเชเชฎเชพเช เชเชฒ
เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชชเซเชฒเซเชฌเซเชเชจเซเช เชเชฎเซเชชเชพเชเชฒ เชเชฐเชคเซ เชตเชเชคเซ (เชคเซเชฏเชพเชฐเชฌเชพเชฆ เชคเซเชจเซ เชชเซเชฒเซเชฌเซเช เชคเชฐเซเชเซ เชเชณเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ), เช เชฎเซ เชจเชฟเชฏเชฎเชจเซเช เชชเชพเชฒเชจ เชเชฐเซเช เชเซเช เชเซ เชคเซเชจเซ เช เชฒเช เชฐเซเชชเซเชเซเชเชฐเซเชฎเชพเช เชฎเซเชเชตเซ เชเซเชเช. เชญเซเชฎเชฟเชเชพเชเชจเซ เชเซเชฎ เช: เชฆเชฐเซเช เชคเซเชจเชพ เชชเซเชคเชพเชจเชพ เชเชฟเช เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเช. เช เชคเชฎเชจเซ เช เชธเชฎเชเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ เชเซ เชญเซเชฎเชฟเชเชพเช เช เชจเซ เชชเซเชฒเซเชฌเซเช เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชธเชฟเชธเซเชเชฎเชจเชพ เช เชฒเช-เช เชฒเช เชธเซเชตเชคเชเชคเซเชฐ เชเชฌเซเชเซเชเซเช เชเซ, เช เชจเซ เชเช เชเชฌเซเชเซเชเซเชเชฎเชพเช เชซเซเชฐเชซเชพเชฐ เช เชจเซเชฏ เชเชชเชฐเซเชถเชจเชจเซ เช เชธเชฐ เชเชฐเชคเซเช เชจเชฅเซ. เช เชเชฒเซเชจเซ เชฎเซเชณเชญเซเชค เชเชฟเชเชฎเชคเซ เชฌเชฆเชฒเซเชจเซ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เชเซ.
เชชเซเชฒเซเชฌเซเชเชจเซเช เชธเชเชเชฒเชจ เชเชฐเชคเซ เชตเชเชคเซ, เชธเชพเชฐเชพเชเชถ เชฎเชพเชเซ, เชฐเซเชฒ เชตเซเชฐเซเชเชฌเชฒเซเชธเชจเชพ เชกเชฟเชซเซเชฒเซเช เชฎเซเชฒเซเชฏเซเชจเซ เชฌเซ เชเชเซเชฏเชพเช เชเชตเชฐเชฐเชพเชเชก เชเชฐเชตเซเช เชถเชเซเชฏ เชเซ: เชชเซเชฒเซเชฌเซเช เชเชฒเซ เช เชจเซ เชเชจเซเชตเซเชจเซเชเชฐเซ เชเชฒเซเชฎเชพเช.
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 เชจเซ เชธเชเซเชทเชฎ เชเชฐเซ เชถเชเซเชฏเชพ เชจเชฅเซ. เช เชฎเซ เช เชธเชฎเชธเซเชฏเชพเชจเซ เช เซเช เชเชฐเซเชฏเชพ เชชเชเซ, เชคเซ เชฎเชพเชงเซเชฏเชฎ เชธเซเชตเชคเชเชคเซเชฐ เชฌเชจเซเชฏเซเช เช เชจเซ เชชเซเชฒเซเชฌเซเช เชตเซเชฐเซเชเชฌเชฒเซเชธเชฎเชพเช เชเชธเซเชกเซเชฏเซเช.
เชเซเชฅเซ เชฎเชพเชเซ เชฎเชฟเชฒเชเชค เชเชฒเซ
เชเชพเชฒเซ เชเชเซเชคเชฟ 1 เชฎเชพเช เช เชฒเช Java เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเชพเชฅเซ, เชชเชฐเชเชคเซ เชตเชฟเชตเชฟเชง เชธเซเชเชฟเชเชเซเชธ เชธเชพเชฅเซ เชธเชฐเซเชตเชฐเชจเชพ 2 เชเซเชฅเซ เชเชฎเซเชฐเซเชจเซ เช เชฎเชพเชฐเชพ เชฎเซเชกเซเชฒเชจเซ เชตเชฟเชธเซเชคเซเชค เชเชฐเซเช.
เชเชฒเซเชชเชจเชพ เชเชฐเซ เชเซ เช เชเชฟเชธเซเชธเชพเชฎเชพเช เชชเซเชฒเซเชฌเซเช เชเซเชตเซ เชฆเซเชเชพเชถเซ:
- hosts: myapi
roles:
- api
- hosts: bbauth
roles:
- auth
- hosts: ghauth
roles:
- auth
เชชเซเชฒเซเชฌเซเชเชฎเชพเช เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชคเซเชฐเชฃ เชเซเชฅเซ เชเซ, เชคเซเชฅเซ เชเซเชฅ_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
เชธเชพเชฐเชพเชเชถ
เชฒเซเช เช เชจเซเชธเชพเชฐ เชเชฒเซเชจเซ เชเซเช เชตเซเชฏเชพ เชชเชเซ: เชเชฒ เชธเชพเชฅเซเชจเซ เชฆเชฐเซเช เชซเชพเชเชฒ เชเซเชเซเชเชธ เชเชพเชฐเซเชฏ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ. เช เชจเซ เชซเชพเชเชฒเชฎเชพเช เชเซเชเซเชเชธ เชเชพเชฐเซเชฏเซ เชนเซเชตเชพเชฅเซ, เชฆเชฐเซเช เชซเชพเชเชฒเชจเซ เชถเซเชฆเซเชงเชคเชพ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชตเซเชฏเชเซเชคเชฟเชจเซ เชธเซเชเชชเชตเชพเชจเซเช เชถเชเซเชฏ เชฌเชจเซเชฏเซเช. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชธเชฟเชธเซเชเชฎ เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเชเชจเชพ เชกเซเชตเชฒเชชเชฐ เชชเซเชฒเซเชฌเซเช เชตเซเชฐเซเชเชฌเชฒเซเชธเชจเชพ เชฏเซเชเซเชฏ เชญเชฐเชตเชพ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชฌเชจเซ เชเซ, เชเซเชฏเชพเชฐเซ เชเชกเชฎเชฟเชจเชฟเชธเซเชเซเชฐเซเชเชฐ, เชเซเชจเซเช เชธเซเชเซเชจเซเชก เชเชจเซเชตเซเชจเซเชเชฐเซเชฎเชพเช เชตเชฐเซเชฃเชตเซเชฒ เชเซ, เชคเซ เชเชฒเซเชจเซ เชเชจเซเชตเซเชจเซเชเชฐเซ เชญเชฐเชตเชพ เชฎเชพเชเซ เชธเซเชงเชพ เช เชเชตเชพเชฌเชฆเชพเชฐ เชเซ.
เชญเซเชฎเชฟเชเชพเช เชคเซเชฎเชจเชพ เชชเซเชคเชพเชจเชพ เชเชจเซเชเชฐเชซเซเชธ เชธเชพเชฅเซ เชธเซเชต-เชธเชฎเชพเชตเชฟเชทเซเช เชตเชฟเชเชพเชธ เชเชเชฎ เชฌเชจเซ เชนเชคเซ, เชเซ เชญเซเชฎเชฟเชเชพ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชจเซ เชธเชฟเชธเซเชเชฎเชฎเชพเช เชซเชฟเช เชเชฐเชตเชพ เชฎเชพเชเซ เชญเซเชฎเชฟเชเชพเชจเซ เช เชจเซเชฐเซเชช เชฌเชจเชพเชตเชตเชพเชจเซ เชฌเชฆเชฒเซ เชธเซเชตเชฟเชงเชพเช เชตเชฟเชเชธเชพเชตเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เช เชฎเซเชฆเซเชฆเซ เชเชพเชธ เชเชฐเซเชจเซ เชเซเชเชฌเซเชถเชฎเชพเช เชคเชฎเชพเชฎ เชธเชฟเชธเซเชเชฎเซ เชฎเชพเชเซ เชธเชพเชฎเชพเชจเซเชฏ เชญเซเชฎเชฟเชเชพเช เชฎเชพเชเซ เชธเชพเชเซ เชนเชคเซ.
เชธเชฟเชธเซเชเชฎ เชธเชเชเชพเชฒเชเซเชจเซ เชนเชตเซ เชเชฎเชพเชตเช เชเซเชก เชธเชฎเชเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ. เชธเชซเชณ เชเชฎเชพเชตเช เชฎเชพเชเซ เชคเซเชฎเชจเซ เชเซ เชเชฐเซเชฐเซ เชเซ เชคเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซเชจเซ เชซเชพเชเชฒเซ เชญเชฐเชตเชพเชจเซเช เชเซ.
เชธเชพเชนเชฟเชคเซเชฏ
เชฒเซเชเช
เชเชพเชฒเซเชฏเซเชเชจเซ เชกเซเชจเชฟเชธ เชเชฒเซเชเซเชเชพเชจเซเชกเซเชฐเซเชตเชฟเช
เชธเซเชฐเซเชธ: www.habr.com