แแฃ แแฅแแแแ IT แแแคแ แแกแขแ แฃแฅแขแฃแ แ แซแแแแแ แกแฌแ แแคแแ แแแ แแแแ, แแแ แ แแฃ แแแแแ แแ แฉแแแแแแก แฌแแแแจแ แแแแแแแแ: แฎแแแแแแแ แแแแแ แแแ แแแแแแแแฃแ แ แ แแกแฃแ แกแแแ แแแก แแฎแแ แแแกแแญแแ แแ แแ แแแแฌแงแแ แแแขแแแแขแแแแชแแ. แ แแฆแแช แแแแแแขแแแแ แฉแแแ แแชแฎแแแ แแแแแ แแแ แแแ แแแ แแแแแแแจแ แแ แจแแแแแ แแแแฌแงแ แแ แซแแแ แแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แ-แ แแแแ แช แแแแแกแแแ.
แ แ แแฅแแ แฃแแแ, NSPK แแ แแ แแก แกแขแแ แขแแแ, แแแแ แแ แแกแแแ แแขแแแกแคแแ แ แกแฃแคแแแแ แแแแแแแแแจแ แแ แกแแแแแแก แแแ แแแ แฌแแแแจแ แแ แแก แแงแ แซแแแแแ แกแแแแขแแ แแกแ แฌแแแแ. แฒแ แแฅแแแ
แแแแแแแ, แจแแแแแซแแแ แแแฅแแแ, แ แแ แฉแแแแ แแฃแแแ แแฌแแแแก 2 แแ แแแฃแฅแขแก แแแแแแแแแกแแแแก. แแแ แแแแ แแ แแก แแแคแ แแกแขแ แฃแฅแขแฃแ แ. แคแแกแขแแ แฃแแแ แแแฃแจแแแก, DNS แฃแแแ แแแฃแจแแแก แแ แแแแแแแก แแแแขแ แแแแ แแแแ แฃแแแ แจแแแแจแแแ แกแแ แแแ แแแแ, แ แแแแแแแช แแ แฃแแแ แแแแ แฆแแแก. แแแแแแแแแก IT แแแแแจแแคแขแ แฃแแแ แแแแแ แแ! แแก แแ แแก แแแแแแกแแกแ แแ แแแกแแแก แแ แแขแแแฃแแ แกแแกแขแแแแแ, แแแแแแ แแแกแแแแก แฎแแแแแกแแฌแแแแแแแแก แแแแฎแแแแแแ แแ แแก 99,999. แแแแ แ แแ แแแฃแฅแขแ แแ แแก แแแแแ แกแแ แแแ แแแ, แคแแแแแฃแ แ แแ แแแ แขแฃแแแฃแ แ. แแ แกแแแฃแแแก แแแแแขแแ แแแแ แฃแแแ แแแฎแแแก แแ แแฎแแแแ แ แแแฃแแแ แฃแแแ แฃแแแ แแแแฌแแแแก แแแแฎแแแ แแแแแก แแ แแแแแ แแแแแ แขแแแแแขแแแแ. แแ แกแขแแขแแแจแ แแแแแ แแแแแแแฎแแแแ แงแฃแ แแแฆแแแ แแแแแ, แแฃ แ แแแแ แแแแแแแแแแ แแ แแแคแ แแกแขแ แฃแฅแขแฃแ แ, แ แแแแแแช แแแกแฃแฎแแกแแแแแแแแ แกแแ แแแ แแก แกแแกแแชแแชแฎแแ แชแแแแแ.
แแแกแแฌแงแแกแ แแแแแแฃแ แแแ
แฉแแแแ แแแแแแฃแ แแแแก แแแกแแฌแงแแกแจแ แฉแแแแ แขแแฅแแแแแแแฃแ แ แแแกแขแ แแกแ แแแแแแงแฃแ แแแแแ:
OS CentOS 7
FreeIPA แแแแแแแก แแแแขแ แแแแ แแแ
แแแขแแแแขแแแแชแแ - Ansible(+Tower), Cobbler
แแก แงแแแแแคแแ แ แแแแแแแกแแแฃแแ แแงแ 3 แแแแแแจแ, แแแแ แชแแแแ แ แแแแแแแแ แแแแแชแแแแ แชแแแขแ แจแ. แแ แ แแแแแชแแแแ แชแแแขแ แจแ แแ แแก แกแแแคแแกแ แกแแกแขแแแแแ แแ แกแแขแแกแขแ แแแแแแแแ, แแแแแ แฉแแแจแ แแ แแก PROD.
แกแแ แแแ แแแแก แจแแฅแแแ แแ แ แแแแแแขแจแ แแกแ แแแแแแงแฃแ แแแแแ:
VM แจแแแแแแจแ, CentOS แแแแแแแแฃแ แแ แแ แกแแญแแ แ แแแแแแฃแแ แแ แแก แกแฌแแ แ /etc/resolv.conf, แแแแแ แฉแแแ แแแแแก Ansible-แแก แกแแจแฃแแแแแแ.
CMDB - Excel.
แแฃ แกแแ แแแ แ แคแแแแแฃแ แแ, แแแจแแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแก แแแแแ แแแแก แแแชแแแแ, แแแกแแ OS แแแแแกแขแแแแ แแแฃแแ แแงแ Cobbler-แแก แแแแแงแแแแแแ - แกแแแแแแ แกแแ แแแ แแก MAC แแแกแแแแ แแแแ แแแแขแแแ Cobbler แแแแคแแแฃแ แแชแแแก, แกแแ แแแ แ แแฆแแแก IP แแแกแแแแ แแก DHCP-แแก แกแแจแฃแแแแแแ, แจแแแแแ แแ OS-แก. แแแแขแแแ.
แแแแแแแ แฉแแแ แแชแแแแแแแแ แแแแแแแแแแแแแ แ แแแแ แกแแฎแแก แแแแคแแแฃแ แแชแแแก แแแ แแแ Cobbler-แจแ. แแแแ แแ แแ แแแ แแแแแแแแแแแจแ, แแแแ แแแแฌแงแ แแ แแแแแแแแ แแแแคแแแฃแ แแชแแแก แแแ แขแแแแแฃแ แแแแกแแแ แแแแแแจแแ แแแแ, แ แแแแ แช แกแฎแแ แแแแแชแแแแ แชแแแขแ แแแจแ, แแกแแแ VM-แแแแก แแแแแแแแแแก Ansible แแแแจแ.
แแ แแ แแก แแแแ แ แฉแแแแแแแ แแฆแแฅแแแแแ Ansible-แก, แ แแแแ แช Bash-แแก แแแกแแฎแแ แฎแแแแ แแแคแแ แแแแแแก แแ แแ แแแแแแแ แแแแแแแก shell-แแกแ แแ sed-แแก แแแแแงแแแแแแ. แกแแแ แแ Bashsible. แแแแ แกแแแแแแแ แแแแแแแ แแแ แแก, แ แแ แแฃ แกแแแแแแจแ แฌแแแแ แ แแแแ แแแแแแแ แแ แแฃแจแแแแแ แกแแ แแแ แแ, แฃแคแ แ แแแแแแ แแงแ แกแแ แแแ แแก แฌแแจแแ, แแแแแ แแก แฌแแแแแก แแแคแแฅแกแแ แแแ แแ แฎแแแแฎแแ แแแจแแแแ. แแ แกแแแแแแ แแ แแ แกแแแแแแ แกแแ แแแขแแแแก แแแ แกแแแ แแแ, แแแแคแแแฃแ แแชแแแแแก แแแ แขแแแแแฃแ แแแ.
แแแแแแแแแ, แฉแแแ แแแแแแแแ แจแแแแแชแแแแ แแแ แแแแฃแแ แแแแคแแแฃแ แแชแแ แงแแแแ แกแแ แแแ แแ:
- แฉแแแ แแชแแแแ แแแแคแแแฃแ แแชแแแก แแ แกแแแฃแ แกแแ แแแ แแแแ แแแแแแฃแ แกแแแแแแขแจแ/แแแแแชแแแแ แชแแแขแ แจแ. แแแแฏแแ แแ แ แแ แ แแฆแแจแ - แฎแแแแแกแแฌแแแแแแแแก แแแแฎแแแแแแ แแ แแแแ แ แแชแฎแแแแแก แแแแแแ แแ แแซแแแแ แงแแแแ แชแแแแแแแแก แแ แแแ แแฃแแแ แแแแแงแแแแแแก แกแแจแฃแแแแแแก. แแ แแแแแแ แแ แชแแแแแแแ แแแขแแแชแแฃแ แแ แแแกแขแ แฃแฅแชแแฃแแแ แแ แแแแแฎแแแก แ แแฆแแชแแก แแแแแขแแแ แแแแก - แกแแ แแแกแแแแแแ แแแแแ OS-แแแ.
- แแแกแ แแแคแแฅแกแแ แแแ Ansible-แจแ
- แฉแแแ แแแกแฌแแ แแแ แแแก Cobbler-แจแ
- แแแแแแแ แแ N แฏแแ แแแแแแฃแแ แแแแแแฃแ แ แกแแแแแแขแแกแแแแก/แแแแแชแแแแ แชแแแขแ แแกแแแแก
แแแแกแแแแแก, แ แแ แงแแแแ แชแแแแแแแ แจแแฃแคแแ แฎแแแแแ แฌแแกแฃแแแงแ, แกแแญแแ แ แแงแ แแ แแแแแ แคแแฅแขแแ แแก แแแแแแแแกแฌแแแแแ แแ แชแแแแแแแแแ แแฃแแแแแแ แฎแแแแ.
- แแกแแฎแฃแแ แแแแแก, แแแแคแแแฃแ แแชแแแก แคแแแแแแแก แ แแคแแฅแขแแ แแ แแแ
- แจแแแ แกแแฃแแแแแกแ แแ แแฅแขแแแแก แจแแชแแแ
- แชแแแแแแแแแ แแแชแแแแแขแแแแก/แแแแ แแแแแก แแแแแแแแก แจแแแแแแแแ แแแงแ แแแแแแ
- แฃแกแแคแ แแฎแแแแแก แกแขแแแแแ แขแแแแก แจแแชแแแ, แ แแแแ แช แจแแแ, แแกแแแ แแแ แ. แแแแแแแแแ, PCI DSS แงแแแแแฌแแแฃแ แแ แแแแแฎแแแแแ แแฎแแแ แแแแฎแแแแแแแ
แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแ แแ แแ แแแแแแฃแ แแแแก แแแกแแฌแงแแกแ
แแแแแแ แแ แกแแ แแแ แแแแก/แแแแแแฃแ แ แแแแแแแแแก/แแแแแชแแแแ แชแแแขแ แแแแก แ แแแแแแแแ แแ แแแแแแ แแ แแแ แแแแแแ แแ แจแแชแแแแแแแก แ แแแแแแแแ แแแแคแแแฃแ แแชแแแแจแ. แ แแฆแแช แแแแแแขแจแ แแแแแแแ แกแแ แแแแแ แแฃแแแแแแแ, แ แแแแแแจแแช แแแแคแแแฃแ แแชแแแก แแแแแฏแแแแขแ แฃแแแ แแแแแแแแ แแแก:
- แแแขแแแแขแแแแชแแ. แแแแแแแแฃแ แ แจแแชแแแแแแ แแแแแแแ แแแแ แแแแ แแชแแแแจแ แแแฅแกแแแแแฃแ แแ แฃแแแ แแฅแแแก แแชแแแแแฃแแ.
- แแแแแแแ แแแแแแแ. แแแชแแแแแแ แแแแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแ แแแ, แ แแชแ แแก แแ แแแแแแแ แแแแแแ. แกแแ แแแ แแแแกแ แแ แแแแ แแแแแแแแแแก แฎแแแกแแฌแงแแแแแก แแแแคแแแฃแ แแชแแ แงแแแแแแ แแ แแแแแ แ แฃแแแ แแงแแก. แแก แแกแแแ แแแแจแแแแแแแแแแ แแ แแแฃแฅแขแแก แแฃแแแแแแกแแแแก - แขแแกแขแแ แแแแก แจแแแแแ, แแแแแแแชแแ แแแ แแแขแแ แแแฃแแ แฃแแแ แแงแแก, แ แแ แแฆแแแฉแแแแก แกแแฌแแ แแแ แแแ แแแแจแ, แ แแแแแแช แแแแคแแแฃแ แแ แแแฃแแแ แขแแกแขแแก แแแ แแแแก แแแแแแแแฃแ แแ.
- แแแแคแแแฃแ แแชแแแก แแแแแฏแแแแขแจแ แชแแแแแแแแแแก แจแแขแแแแก แกแแแแ แขแแแ แแ แแแแญแแแ แแแแแแ.
แ แฉแแแ แ แแแแแแแแ แฎแแแกแแฌแงแแก แแแแแขแแแ.
แฉแแแ แแแแ แฉแแแ GitLab CE, แ แแแแ แช แฉแแแแ แแแแแก แกแแชแแแ, แแแแกแแแฃแแ แแแแ แแแกแ แฉแแจแแแแแฃแแ CI/CD แแแแฃแแแแแกแแแแก.
แกแแแแฃแแแแแแแก แกแแ แแแคแ - Hashicorp Vault, แฉแแแแแแ. แแแแ API-แกแแแแก.
แขแแกแขแแ แแแแก แแแแคแแแฃแ แแชแแแแ แแ แแแกแฃแฎแแกแแแแแแแ แ แแแแแ - Molecule+Testinfra. แขแแกแขแแแ แแแแ แแ แฃแคแ แ แกแฌแ แแคแแ แแแแแก, แแฃ แแแฃแแแแจแแ แแแแแ แแแแ แแ แแแขแแแแแก. แแแแแแ แแฃแแแ, แฉแแแ แแแแแฌแงแแ แกแแแฃแแแ แ CMDB แแ แแ แแแกแขแ แแก แแแฌแแ แ แแแขแแแแขแฃแ แ แแแแแแแแแแกแแแแก (แกแฃแ แแแแ แแแแแ Cobbler), แแแแ แแ แแก แแ แแก แกแ แฃแแแแ แแแแกแฎแแแแแแฃแแ แแแแแแ, แ แแแแแกแแช แฉแแแ แแแแแแ แแ แแ แกแแกแขแแแแแแก แแแแแแ แ แแแแแแแแแ แ แแแแแแแแจแ แแแแแงแแแแแ.
แฉแแแแ แแ แฉแแแแแ:
แแแแแแฃแแ + แขแแกแขแแแคแ แ
Ansible + Tower + AWX
แกแแ แแแ แแแแก แกแแแงแแ แ + DITNET (แกแแแฃแแแ แ แแแแแแแแ แแแ)
แแแแแแแ แ
Gitlab + GitLab แแแ แแแแแแ
Hashicorp Vault
แกแฎแแแแ แจแแ แแก, แแแแแแ แฃแแ แ แแแแแแก แจแแกแแฎแแ. แแแแแแแ แแงแ แแฎแแแแ แแ แแ, แแแแ แแ แ แแแแแแแแ แ แแคแแฅแขแแ แแแแแก แจแแแแแ แแงแ 17. แแแขแแแแ แแฃแแแ แแแ แฉแแแ แแแแแแแแแก แแแจแแแก แแแแแแแขแแแขแฃแ แ แแแแแแ, แ แแแแแแแช แจแแแแแ แจแแแซแแแแ แชแแแแ แแแฃแจแแแ; แแแแแขแแแแ แจแแแแซแแแแ แแแแแแขแแ แขแแแแแ. แฉแแแ แแแแงแแแแ แ แแแแแ แคแฃแแฅแชแแแแแแฃแ แแแแก แแแฎแแแแแ - แฅแกแแแ, แแแแแแแ, แแแแแขแแแ, แแแแ แแขแฃแ แ, แแแแแแฃแแ แแ แ.แจ. แแแแแแแ, แฉแแแ แแแแงแแแ แฅแแแแแ แแแชแแแฃแ แกแขแ แแขแแแแแก. แแ แแ แแแแขแแแชแแ, แ แแ แแก แแ แแแแแ แแ แญแแจแแแ แแขแแแแ, แแแแ แแ แแก แฉแแแแแแแก แแฃแจแแแแแ.
- แกแแ แแแ แแแแก แแแแแ แแแ "แแฅแ แแก แกแฃแ แแแแแแ" แแแ แแขแแแแ!แแแแแแ แ แแแแฃแกแ แแ แแก แแก, แ แแ แแฅแแแ แแ แแชแแ แแฃแกแขแแ แ แ แแแแแแแ แแแแแจแแ แกแฃแ แแแแแ แแฎแแ แแ แ แแ แงแแแแ แชแแแแแแแ แแแแ แงแแแแ แกแฃแ แแแแ แงแแแแ แแแ แขแฃแแแแแแชแแแก แคแแ แแแจแ.
- แแแแแแงแแแแ แแแแฃแแแกแฎแแแแ แแแแคแแแฃแ แแชแแแก แคแแแแแแ แแแแแแฃแแแแแ แแ แแแแแแแฎแแแ แกแฎแแ แแแแงแแคแแแแแแแก, แ แแ แแแกแฃแฎแแกแแแแแแแ แฎแแ แ แกแแกแขแแแแก แแแแแแ แคแแแแแแแ, แแแแแแแแแ:
- แแแขแแแแ /etc/sysctl.conf แชแแ แแแแ, แแแ แแแแขแ แแแ แฃแแแ แแงแแก แแฎแแแแ /etc/sysctl.d/-แจแ. แแฅแแแแ แแแแฃแแแกแฎแแแแ แแ แ แคแแแแจแ, แแแ แแแแฃแแแ แแแแแแแชแแแกแแแแก แแแแ แแจแ.
- แแแแแแงแแแแ แฃแแฃแแแแแแงแแคแแแ แคแแแแแแ แกแแกแขแแแฃแ แ แแ แแแฃแแแแแก แ แแแแฅแขแแ แแแแกแแแแก.
- แจแแฅแแแแแ แงแแแแ แแแแคแแแฃแ แแชแแแก แจแแแแแแ แแ แแแแแแแแ แฉแแ แแแ แแกแแแ; แแฃ แจแแกแแซแแแแแแแ, แแ sed แแ แแแกแ แแแแแแแแแ แกแแแแแแจแ แฌแแแแแแจแ
- แแแแคแแแฃแ แแชแแแก แแแ แแแแก แกแแกแขแแแแก แแแแแก แ แแคแแฅแขแแ แแ แแแ:
- แแแงแแแแ แแแแชแแแแแ แแแแแแฃแ แแ แแแฃแแแแแ แแ แแแแแฌแแ แแ แแแแแแแแ แ แแแแแแ
- แแแแแแงแแแแ แแแแขแแ แแแ! Ansible-lint, yaml-lint แแ แ.แจ
- แจแแชแแแแแ แแฅแแแแ แแแแแแแ! แแ แ แกแแแแแฆแแ แ. แแฃแชแแแแแแแแ แกแแกแขแแแแก แแแแแแแ แแแแแก แแฆแฌแแ แ
- Ansible-แแก แงแแแแ แ แแแแกแแแแก แแฅแแแ แฃแแแ แแแฌแแ แแ แขแแกแขแแแ แแแแแแฃแแแจแ แแ แจแแฅแแแแ แแแฎแกแแแแแแแ แแฆแแจแ แแ แแฎแแ.
- แฉแแแแก แจแแแแฎแแแแแจแ, แขแแกแขแแแแก แแแแแแแแแแก แจแแแแแ (แ แแแแแแแช 100-แแ แแแขแแ), แแแแฎแแแแแแ 70000 XNUMX แจแแชแแแแ แแฅแแ แแแแแแแ. แแแก แแแแแกแฌแแ แแแแก แ แแแแแแแแ แแแ แแแกแญแแ แแ.
แฉแแแแ แแแแฎแแ แชแแแแแแ
แแกแ แ แแ, แแแแแแ แฃแแ แ แแแแแ แแแแ แแงแ, แจแแแแแแ แแ แจแแแแฌแแแแฃแแ แแแแขแแ แแแแ. แแ แแแขแแแแช แแ แงแแแแแแ แแแแฆแแแแฃแแแ. แแแแ แแ แกแฎแแแแแกแฎแแ แกแแแแแแขแแ แแแแแก แกแแแแแแ แแแฌแแแแแแก แกแแแแแฎแ แฆแแ แแแ แฉแ. แแแแแแฌแงแแแขแแ แกแแ แแแขแแแแแ แกแแแฅแ แแแแแแชแแ. แแกแ แแแแแแงแฃแ แแแ:
แชแแแแแแแแก แแแกแแแแก แจแแแแแ, CI แแแแฅแแแแแแแ, แแฅแแแแแ แกแแขแแกแขแ แกแแ แแแ แ, แ แแแแแ แแจแแแแ แแ แแแแแแฃแแ แจแแแแฌแแแแแ. แแฃ แงแแแแแคแแ แ แฌแแกแ แแแจแแ, แแแแ แแแแแแแก แแ แแ แคแแแแแแจแ. แแแแ แแ แฉแแแ แแ แแแงแแแแแ แแฎแแ แแแแก แแแแ แแขแจแ แแ แกแแแฃแ แกแแ แแแ แแแแ. แแก แแ แแก แแ แแแแแ แ แกแแชแแแ, แ แแแแแแช แแฃแชแแแแแแแแ แฉแแแแ แกแแกแขแแแแแแก แแแฆแแแ แฎแแแแแกแแฌแแแแแแแแกแแแแก. แแ แ แแแแกแแช แแแคแ แแกแขแ แฃแฅแขแฃแ แ แฃแแแ แแแแแ แ แฎแแแแ, แแแแ แ แแชแฎแแแแแก แแแแแแ แแแฅแแแแแแก - แแแจแแแแช แแ, แแฃ แแแ แฌแแฃแแแแฃแแ แฎแแ แ, แ แแ แชแแแแแแแ แฃแแแแแแแแ, แแแแ แจแแแซแแแแ แแแแแแฌแแแแก แกแแจแแแแแ แจแแแแแแแ.
แแกแแแ แแแแ แ แแแ แแแแขแแ แกแแ แแแ แแแแก แจแแกแแฅแแแแแแ. แฉแแแ แแแแแกแ แฃแแแ แแแแแแแก แแแ แกแแแแแฃแ แ แกแแ แแแขแแแแก แแ แฉแแแ. แแ CI แแแกแแแแแแกแแแแก:
- name: create1.yml - Create a VM from a template
vmware_guest:
hostname: "{{datacenter}}".domain.ru
username: "{{ username_vc }}"
password: "{{ password_vc }}"
validate_certs: no
cluster: "{{cluster}}"
datacenter: "{{datacenter}}"
name: "{{ name }}"
state: poweredon
folder: "/{{folder}}"
template: "{{template}}"
customization:
hostname: "{{ name }}"
domain: domain.ru
dns_servers:
- "{{ ipa1_dns }}"
- "{{ ipa2_dns }}"
networks:
- name: "{{ network }}"
type: static
ip: "{{ip}}"
netmask: "{{netmask}}"
gateway: "{{gateway}}"
wake_on_lan: True
start_connected: True
allow_guest_control: True
wait_for_ip_address: yes
disk:
- size_gb: 1
type: thin
datastore: "{{datastore}}"
- size_gb: 20
type: thin
datastore: "{{datastore}}"
แแก แแ แแก แแก, แ แแกแแช แฉแแแ แแแแแแแ, แกแแกแขแแแ แแแ แซแแแแแก แชแฎแแแ แแแแก แแ แแแแแแแแ แแแแก.
- 17 แแแแจแแแแแแแแแ แ แแแ แกแแ แแแ แแก แแแกแแงแแแแแแแ. แแแแแแฃแแ แ แแแ แจแแฅแแแแแแ แชแแแแแฃแแ แแแแแแฃแ แ แแแแชแแแแก แแแแแกแแญแ แแแแ (แแแฌแแ แ, แแฃแแแขแ, แแแแฎแแแ แแแแแก แแแขแแ แแแแชแแ, แแแแแขแแ แแแแ แแ แ.แจ.).
- แ แแแฃแ แ แขแแกแขแแ แแแ. แแแแแแฃแแ + TestInfra.
- แกแแแฃแแแ แ แแแแแแแแ แแแ: CMDB + แแ แแแกแขแ แ.
- แกแแ แแแ แแก แจแแฅแแแแก แแ แ แแ แแก ~ 30 แฌแฃแแ, แแแขแแแแขแแแแ แแแฃแแ แแ แแ แแฅแขแแแฃแแแ แแแแแฃแแแแแแแแ แแแแแแแแแก แ แแแแกแแแ.
- แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแ แแ แแ แแแแแ แแแแแแแ แแแแ/แแแกแแฎแแแแแ แงแแแแ แกแแแแแแขแจแ - แกแแแแแแจแ แฌแแแแแแ, แกแแชแแแ, แแแ แขแฃแแแแแแชแแแก แแแแแแแขแแแ.
- แกแแ แแแ แแก แกแขแแขแฃแกแแก แงแแแแแแฆแแฃแ แ แจแแแแฌแแแแ แกแขแแแแแ แขแแแ แจแแฃแกแแแแแแแแก แจแแกแแฎแแ แแแฎแกแแแแแแแแก แแแแแ แแ แแแแ.
แแแแแ แแแฅแแก, แ แแ แฉแแแ แแกแขแแ แแ แแแแแแแแแแ แแแแแแแก, แแแแช แแแแแแฃแ แแแแก แแแกแแฌแงแแกแจแแ. แ แ แแแขแแแแขแแแแชแแแก แแแกแขแแก แแงแแแแแ?
แฌแงแแ แ: www.habr.com