ΠΡΠΎ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π½Π°
ΠΡΠΎ ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄ Π½Π° Ansible Π·Π°ΡΡΠ½ΡΠ»ΡΡ Π½Π° 18 ΠΌΠ΅ΡΡΡΠ΅Π².
ΠΠ΅Π½Ρ β -Π₯Π₯Π₯: Before the beginning
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ»Π° ΡΠΎΠ±ΠΎΠΉ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΡΠΎΡΡΠΈΡ Ρ ΠΎΡΡΠΎΠ² ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Hyper-V. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ: ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π΄ΠΈΡΠΊΠΈ Π² Π½ΡΠΆΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ DNS, Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ DHCP, ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΠ Π² git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ» ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, Π½ΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΠ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ»ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Ρ ΠΎΡΡΠ°ΠΌΠΈ ΡΡΠΊΠ°ΠΌΠΈ. ΠΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΠ Π² git ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΠ² ΠΠ.
Custom Configuration Management Solution
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΈΠ΄Π΅Ρ, ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Ρ, Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΈ ΠΊΠ°ΠΊ IaC: ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ stateless ΠΠ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΎΠ±Π½ΡΠ»ΡΠ»ΠΈ ΡΠ²ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π§ΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ»ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ ΠΠ? Π‘Ρ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΎΡΡΠΎ:
- ΠΠ»Ρ ΠΠ ΠΏΡΠΈΠ±ΠΈΠ²Π°Π»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ MAC.
- Π ΠΠ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π»ΠΈ ISO Ρ CoreOS ΠΈ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ Π΄ΠΈΡΠΊ.
- CoreOS Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΊΡΠΈΠΏΡ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠΊΠ°ΡΠ°Π² Π΅Π³ΠΎ Ρ WEB ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ IP.
- Π‘ΠΊΡΠΈΠΏΡ Π²ΡΠΊΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ΅Π· SCP ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΠ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° IP Π°Π΄ΡΠ΅ΡΠ΅.
- ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠΎΡΡΡΠ½ΠΊΠ° systemd unit ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΡΡΡΠ½ΠΊΠ° bash ΡΠΊΡΠΈΠΏΡΠΎΠ².
Π£ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ:
- ISO Π² CoreOS Π±ΡΠ»ΠΎ deprecated.
- ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈ ΠΌΠ°Π³ΠΈΠΈ ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ/ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΠ.
- Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΠ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π²Π΅ΡΡΠΈΠΈ. ΠΡΠ΅ Π²Π΅ΡΠ΅Π»Π΅Π΅ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΡΠ΄ΡΠ°.
- ΠΠ Π½Π΅ ΡΠ°ΠΊΠΈΠ΅ ΡΠΆ Π±Π΅Π· Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈΡΡ, Ρ.Π΅. ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΠ Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ Π΄ΠΈΡΠΊ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ.
- ΠΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΊΡΠΎ-ΡΠΎ ΠΊΠΎΡΡΡΠΈΠ» Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ systemd unit ΠΈ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ΅ CoreOS Π·Π°Π²ΠΈΡΠ°Π»Π°. ΠΠΌΠ΅ΡΡΠΈΠΌΠΈΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Π² CoreOS ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ.
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈ.
- CM Π½Π΅ Π±ΡΠ»ΠΎ ΡΡΠΈΡΠ°ΠΉ. ΠΡΠ» bash ΠΈ YML ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ CoreOS.
Π§ΡΠΎ Π±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΠ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ, Π½ΠΎ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ. ΠΡΠΎΠ΄Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ ΠΏΠ΅ΡΡΠΈΡΡΠ΅Π½ΡΠ½ΡΡ Π΄ΠΈΡΠΊΠΎΠ² Π½Π΅Ρ β Π»ΠΎΠ³ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π½Π΅ΠΊΡΠ΄Π°. ΠΡ ΠΎΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ΄ΡΠ° ΡΡΠΎ Π±Ρ Π»ΠΎΠ³ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π»ΠΈ. ΠΠΎ Π½Π΅Ρ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π²ΡΡ.
ΠΠ΅Π½Ρ β0: ΠΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΡΠΎ Π±ΡΠ»Π° ΠΎΠ±ΡΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°: jenkins, ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΈ, registry. CoreOS Π·Π°Π΄ΡΠΌΡΠ²Π°Π»Π°ΡΡ Π΄Π»Ρ Ρ ΠΎΡΡΠΈΠ½Π³Π° k8s ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ², Ρ.Π΅. ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ CoreOS. ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ» Π²ΡΠ±ΠΎΡ ΡΡΡΠΊΠ°. ΠΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ Π½Π°:
- CentOS ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², Ρ.ΠΊ. ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΈΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΊ production ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠΌ.
- Ansible Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ, Ρ.ΠΊ. ΠΏΠΎ Π½Π΅ΠΌΡ Π±ΡΠ»Π° ΠΎΠ±ΡΠΈΡΠ½Π°Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π°.
- Jenkins ΠΊΠ°ΠΊ ΡΡΡΠΉΠΌΠ²ΠΎΡΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Ρ.ΠΊ. ΠΎΠ½ ΡΠΆΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
- Hyper-V ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΡΡ ΡΡΠ΄ ΠΏΡΠΈΡΠΈΠ½, Π²ΡΡ ΠΎΠ΄ΡΡΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΠ°ΡΡΠΊΠ°Π·Π°, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΊΡΠ°ΡΠΊΠΎ β ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±Π»Π°ΠΊΠ°, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΠΆΠ΅Π»Π΅Π·ΠΎ.
ΠΠ΅Π½Ρ β30: Π€ΠΈΠΊΡΠΈΡΡΠ΅ΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ β Agreements as Code
ΠΠΎΠ³Π΄Π° Π±ΡΠ» ΠΏΠΎΠ½ΡΡΠ΅Π½ ΡΡΡΠΊ, Π½Π°ΡΠ°Π»Π°ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄Ρ. Π€ΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π° (Agreements as Code!). ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΡΡΡΠ½ΠΎΠΉ ΡΡΡΠ΄ -> ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΡΠΈΡ -> Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ.
1. Configure VMs
Ansible ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. Π‘ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ ΠΠ:
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
- Π‘ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΠ Π² inventory, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² ΠΏΠ»ΡΠΉΠ±ΡΠΊΠΈ ΠΈ ΡΠΎΠ»ΠΈ.
- ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ jenkins slave Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ansible.
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ job, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Jenkins.
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π³ΠΎΡΠΎΠ². ΠΠΎΠ³ΠΎΠ²ΠΎΡΡΠ½Π½ΠΎΡΡΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ.
2. Create new VM
ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ Π±ΡΠ»ΠΎ. ΠΠ· Π»ΠΈΠ½ΡΠΊΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΠ Π½Π° Hyper-V. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠΏΡΡΠΎΠΊ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ»ΠΎ:
- Ansbile ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· WinRM ΠΊ windows Ρ ΠΎΡΡΡ.
- Ansible Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ powershell ΡΠΊΡΠΈΠΏΡ.
- Powershell ΡΠΊΡΠΈΠΏΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ ΠΠ.
- Π‘ΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Hyper-V/ScVMM ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΠΌ Π² Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΠ‘ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ hostname.
- ΠΠ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ DHCP lease ΠΎΡΡΡΠ»Π°Π΅Ρ ΡΠ²ΠΎΠΉ hostname.
- Π¨ΡΠ°ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ddns & dhcp Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Domain Controller Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ DNS Π·Π°ΠΏΠΈΡΡ.
- ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΠ Π² ΠΈΠ½Π²Π΅Π½ΡΠΎΡΠΈ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π΅Π΅ Ansible.
3. Create VM template
ΠΠ΄Π΅ΡΡ Π½Π΅ ΡΡΠ°Π»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°ΡΡ β Π²Π·ΡΠ»ΠΈ packer.
- Π git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ packer, kickstart.
- ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ jenkins slave Ρ hyper-v ΠΈ Packer.
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ job, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Jenkins.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ° ΡΠ²ΡΠ·ΠΊΠ°:
- Packer ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΡΡΡΡ ΠΠ, ΠΏΠΎΠ΄ΡΠ΅ΠΏΠ»ΡΠ΅Ρ ISO.
- ΠΠ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ, Packer Π²Π²ΠΎΠ΄ΠΈΡ Π² Π·Π°Π³ΡΠ·ΡΡΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°Ρ kickstart ΡΠ°ΠΉΠ» Ρ Π΄ΠΈΡΠΊΠ΅ΡΡ ΠΈΠ»ΠΈ http.
- ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ anaconda Ρ Π½Π°ΡΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠΌ, Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΠ‘.
- Packer Π΄ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΠ.
- Packer Π²Π½ΡΡΡΠΈ ΠΠ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ansible Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
- Ansible ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ²Π½ΠΎ ΡΠ΅ ΠΆΠ΅ ΡΠΎΠ»ΠΈ ΡΡΠΎ Π² ΡΠ°Π³Π΅ β1 ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ.
- Packer ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½ ΠΠ.
ΠΠ΅Π½Ρ β75: Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠΌ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ Π½Π΅ Π»ΠΎΠΌΠ°Ρ = Test ansible + Testkitchen
ΠΠ°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΠ΅Π΄Ρ Π΅ΡΠ»ΠΈ Π² ΠΏΠΎΠ΄Π½ΠΎΠ³ΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡ Π·Π°Ρ
ΠΎΡΠ΅ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ β ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ»ΠΎΠΌΠ°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΠ°ΠΌΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. Π§ΡΠΎ Π±Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠ°Π»ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Ansible ΡΠΎΠ»ΠΈ. ΠΠ΅ Π±ΡΠ΄Ρ ΡΠ³Π»ΡΠ±Π»ΡΡΡ Ρ.ΠΊ. Π΅ΡΡΡ ΡΡΠ°ΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
ΠΠ΅Π½Ρ β130: Π ΠΌΠΎΠΆΠ΅Ρ CentOS+ansible Π½Π΅ Π½ΡΠΆΠ΅Π½? ΠΌΠΎΠΆΠ΅Ρ openshift?
ΠΠ°Π΄ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π±ΡΠ» Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈ Π±ΡΠ»ΠΈ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΡΠ΅Π» Π·Π°ΠΏΡΠΎΡ Π½Π° Π·Π°ΠΏΡΡΠΊ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² openshift ΠΈ ΡΡΠΎ Π²ΡΠ»ΠΈΠ»ΠΎΡΡ Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ Π½Π° ΠΎΠ΄Π½Ρ Π½Π΅Π΄Π΅Π»Ρ
ΠΠ΅Π½Ρ β170: Openshift Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, ΡΠΈΡΠΊΠ½Π΅ΠΌ Ρ Windows Azure Pack?
Hyper-V Π½Π΅ ΠΎΡΠ΅Π½Ρ Π΄ΡΡΠΆΠ΅Π»ΡΠ±Π΅Π½, SCVMM Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π»ΡΡΡΠ΅. ΠΠΎ Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΡΡΡΠΊΠ° Windows Azure Pack, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠΎΠΉ Π½Π°Π΄ SCVMM ΠΈ ΠΌΠΈΠΌΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ΄ Azure. ΠΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π·Π°Π±ΡΠΎΡΠ΅Π½Π½ΡΠΌ: Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Ρ Π±ΠΈΡΡΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ ΠΈ Π²Π΅ΡΡΠΌΠ° ΡΠΊΡΠ΄Π½Π°Ρ. ΠΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΆΠΈΠ·Π½ΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±Π»Π°ΠΊΠ° ΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΈ Π½Π° Π½Π΅Π³ΠΎ ΡΠΎΠΆΠ΅.
ΠΠ΅Π½Ρ β250: Windows Azure Pack Π½Π΅ ΠΎΡΠ΅Π½Ρ. ΠΡΡΠ°Π΅ΠΌΡΡ Π½Π° SCVMM
Windows Azure Pack Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅ΡΠ°ΡΡΠΈΠΌ, Π½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ Π½Π΅ ΠΏΡΠΈΠ²Π½ΠΎΡΠΈΡΡ WAP c Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π΄ΠΈ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΡΠΈΡ ΠΈ ΠΎΡΡΠ°Π»ΠΈΡΡ Π½Π° SCVMM.
ΠΠ΅Π½Ρ β360: ΠΠ΄ΠΈΠΌ ΡΠ»ΠΎΠ½Π° ΠΏΠΎ ΡΠ°ΡΡΡΠΌ
Π’ΠΎΠ»ΡΠΊΠΎ ΡΠΏΡΡΡΡ Π³ΠΎΠ΄ Π±ΡΠ»Π° Π³ΠΎΡΠΎΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΡΠ΄Π° ΠΏΠ΅ΡΠ΅Π΅Π·ΠΆΠ°ΡΡ ΠΈ Π½Π°ΡΠ°Π»ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ»Π° ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π° S.M.A.R.T. Π·Π°Π΄Π°ΡΠ°. ΠΡΠΏΠΈΡΠ°Π»ΠΈ Π²ΡΠ΅ ΠΠ ΠΈ Π½Π°ΡΠ°Π»ΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π΅Π΅ Π½Π° Ansible, ΠΏΠΎΠΊΡΡΠ²Π°ΡΡ ΡΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠ΅Π½Ρ β450: ΠΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ?
Π‘Π°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½. ΠΠ½ ΡΡΡΠΈΠ½Π΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π±ΡΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠΌΠΎΡΡΠ½ΡΠΌΠΈ ΠΈ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΠ°ΡΠ΅ΡΠΎ 80% ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π²ΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎ 20% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ 80% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ»ΠΎ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΡ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ 20% Π½Π° ΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄.
ΠΠ΅Π½Ρ β540: Π€ΠΈΠ½Π°Π»
Π§ΡΠΎ ΠΆΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π·Π° 18 ΠΌΠ΅ΡΡΡΠ΅Π²?
- ΠΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ ΡΡΠ°Π»ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ.
- Π ΡΡΠ½ΠΎΠΉ ΡΡΡΠ΄ -> ΠΠ΅Ρ Π°Π½ΠΈΠ·Π°ΡΠΈΡ -> ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ.
Links
ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΡΠΎΡΡ ΠΏΠΎΡΡ ΠΈΠ· Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠ³Π° slides ΠΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Ansible, ΠΎΡΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π·Π° Π³ΠΎΠ΄ ΠΈ Π½Π΅ ΡΠ»Π΅ΡΠ΅ΡΡ Ρ ΠΊΠ°ΡΡΡΠ΅ΠΊ Lessons learned from testiting Over 200 000 lines of Infrastructure Code Let us deploy to openshift How-to test your own OS distribution Test me if you can. Do YML developers Dream of testing ansible?
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com