αα·ααΈααΆααααααα½α α’αΆαα αααΈα αααΈ (Infrastructure as Code) αα·αααααΉαααααΆαααΌααααααααΌαααΆααααααΆαα»ααααα»αααααΆααααα»ααααααα ααα»ααααααααΆαααα»ααα αα·αααααΎαααΆαααααα αα»ααα·αααΌαααααααααα ααΎααΆα’αΆα αα αα½α αααααα»αααΆαααααΎααααΆααα‘αΎααα·αααΌααα·ααΈααΆαααααααΈααΆαα’αα·αααααααααααα·ααΈ αα αΌααααααΆααααααααααα αααααΆαα ααΆαααααααα αα·αααΆααα·αααααΆ? ααΆααΆααΆαααα’αααα»αααΆααααααΆαααα·αααααααα»αα α·ααααα αααα’αααα’αΆαα’αααααα
αααααΊααΆααααα·α
αΆαα·ααααααααα»α
ααααΆα αα·αααΈααα’αΌ
ααΆααΆα’ααααααα ααααααΆααΆααΆαα»ααααΈ - ααααΎαααΆααααα½α 2019-04-24
SpbLUG ααΈααα’αΌ (RU) ααΈ DevopsConf 2019-05-28 ααΈααα’αΌ(RU) ααΈ DINS DevOps EVENING 2019-06-20 ααααΆα
α αααααΆαα ααΆααααααααααΆαααααααα·ααΆααααα
α§αααΆααΆα’αααααααααααααααΈ α αΎααα½αααααααΆααα’αααααΆ βααΎαααΆα α αααααΆαα
ααΆααααααααααΆαααα"α αα
αααα»αααΆααα·αααΆααααα
αα α αααααΆαα
ααΆααααααααααΆαααααααα·ααΆααααα α¬α§ααΆα ααα ααΆαα
αααααα―αααΆαααΆαααααααα·ααΆααααα. αααααΊααΆααααΆαααΆαααΆααααααααα½α ααΆα§ααΆα ααα ααααΈααααααααααΆαααααααΌαααΆααα·αααααΆααα Denis Lysenko αα
αααα»ααα»αααααααΆαα½αα
ααΆαα½αααΉαααααααααΆααααΆααααααΎαα’αΆα αα·ααΆαααΆαα α αααααΆαα ααΆααααααααααΆαααααααα·ααΆααααα αααααΊααΌα ααΆααΌαα
- ααΆαααααααΌαα α’αααα’αΆα αααααααααα· bash ααααΎαααΆαααΆααααααααΆααΈααΈααα α αΎαα’αααα’αΆα ααα½αααΆαααΆαααααααα ααΆααααααααααΆαααΆαααΆααααααα
- ααααααααααα α’αααααΉαααΆα’αααααΆαααα αΌααα αα·αα’αααΈααααα½αααααΆαααααΎ ααΆααααΈααααααα ααΆαα·ααααααΆααΆααα·ααααααΆααΆααΉαααΆαα’ααααα ααΆααααΆαααααααα ααΆααααααααααΆαααΆααα α αααα αααααααα
- αααααααα·ααΆαααααα ααΏαα’αααααΆααααΎα’αΈα ααΆαβααβα’αααβααΉαβαα·αβα’αΆα βααααΎβααΆβααΆαβααααα·αβααΎβα’αααβααΆααβαααβαααΆαααΈαβααα
ααΎαααα»ααα½αααααΎα’αααΈ?
α αααααΆαα ααΆααααααααααΆαααα
ααΌααααΈααααααΈα ααααααααααα α αααααΆαα ααΆααααααααααΆαααααααα·ααΆααααα α’αααα’αΆα ααΆαααΆααααααα αα α αααααΆαα ααΆααααααααααΆααααααα»αααααα ααααααααΎαα ααααααΎα’αααΈαα½αααααααα»αααααααΆαααΆααααΆαααΈααα LAMP α αΆααααα’ααα ααΎαααΉαααααα·ααααΆαααΆ ααΌααααααααΌαααααααΌαααΆααααααα ααααΆααααααΌα αα·ααααααα’α αααααΆααααΎαα αααα·α αΆαααΆααΆαααααααααααΆαααΆα α αααααΆαα ααΆααααααααααΆαααα αα·αααΆαα’αα·αααααααααααα·ααΈα
αααα½α
αα
ααΎααααααα’αα·αααααααααααααααααα»α ααΆααα·α
αα
ααΆααααα½αα
- α αΌααα ααΈαααααΆαααα ssh α αΎαααααα·ααααα·ααΆααααααααΆα
- α ααααα―αααΆααα ααΈαααα
- ααααΆαααααααα ααΈαααα
- α αΆααααααΎαααααΆαααααα ααΈααα
- ...
- αααααΆαααααΆαααααα½α!
αααααΆαααααααα·ααααΆαααααΆααα·αααααΆ bash ααΊα
αααΎαααΆααααααααααΆαα ααΆαα·ααααα
ααααΆααααΆαααααΌααααααααα αα
ααααααααΆααΎαααα
αΆααααααΎαα αααα
ααΆααααααΆααΆαααΆαα’αα»ααααααΌα ααΆ D.R.Y. (αα»αααααΎαααα½αα―αααααααα)α αααα·αααΊααααΎααΌααααααΆαααααΆααα‘αΎααα·αα ααΆααααΆαααα ααΆαααα ααα»ααααααΎααα·αααΆαααααααΆαααααααα αααα»αααααΈααααααΎα ααΆααΆαααα·αα αΆαααααΆαα ααΎααααΈαααααααΆααααααααΈααααααΈαα ααΆαααααα αααααα·ααααΆα’αΆααΈααααααααααααααααΆαααα‘αΎαααααΌαααΆαααΆαααααααΆααααα‘ααααΈααααΆ ααααααα ααΆαααααααααααα‘ααααΈααααΆα
ααΉαα αααααΆαα CFM
ααΌα α αα
ααααααααΆαααΈαα
ααααΎα
αααααΆααααααα½ααα»αααααΌααααα½α
ααααΆααααΈαα½ααα’αα»ααααααΆααα·α αα αααα½αα
αα·αα αΆαααΆα αααΆαααΌα αα·ααααααΎαααααα ααααα spaghetti αααααααΆα monolithic α α αααααΆαα ααΆαααααααααα½αααααΆαα₯αααααΆααααα ααΆααααααΆααααα·αααΎα’αααααααα Ansible playbook αα ααΆαααααααΌα α α’αΆααα½ααΆααΈ Ansible ααααα½αααααΆααααααΆααααα½ααααα»αααΆααααααΆα
αααααΆααααα·αααΎα
αααααΆαααααΎα / αα·αα
- ααΎααα αααααααααααα ααΆααααααΆα₯αα·ααΆααααααα’αααααΆαα’αΆα ααααΌαααΆααααααΈαααααααααΎαααααααα’αααααΆαααααΈα
- αα·ααααααΆααααΆαααααΆααααααΌαα ααΆααααααααααΆααααααΈαα₯αα·ααΆααααααα’αααααΆα αα·ααα½αααΆαααΆαααααΆααααααΌαααΆαα½αα ααααααΌααααααααΎααααΆααα’αααααΆαααΆαααααα‘αΎαα
ααααΌαα‘αΎα ααΎαααΆαααΆαααααααΆαα αααααΆαα ααΆααααααααααΆααααααα ααΎαααΆαααΈααα·αααα·α ααα»αααααααααΆαααααΆααα·ααααααΆαααααα·ααααΆα’αΆααΈαααααααααΆαααΆαααααααΆαααΊααΆα ααααα‘ααααΈααΆαα’αα»αααα ααΎαααΆαααααααααΆαααααΎαααΆααα ααΆαα baremetall αααααααΆααααα αΆα’αααΈα‘αΎαα
αααααΆααααααα½α Liskov
αααααΆααααααα½ααααα Barbara Liskov α ααααα»αα αααα»ααααααα·ααΈααααΌαααα’αΆα αααα½αααΆααααα§ααΆα αααααααααααααααααααΆααααα·αααααΆααααααΌαααΆαααααα·ααααα·ααααΉαααααΌααααααααα·ααΈ
ααααα·αααΎα’ααααααα‘ααααΎαααΆααΆααααααΌααααΌααΆα ααΆαα·ααααααΆαααααααααααααααα·αααααΆαα½ααααα’αΆα ααααΌαααΆαα’αα»αααααα ααΈαααααα ααΉααααΆααΌαα ααΆααΊα’αααΈ CFM ααΆα§ααΆα ααα αα ααΎαααααααα½ααααααααα ααΆα αΆαααΆα ααααα»αααΆαααΆαααααααΆααααααα·ααΈ Java αααααΆααααα’αααα ααΎ Java αααααα αααΆαααΈααααααααα·ααΈ ααΌαααααΆααα·αααααα ααααααααααααα·ααααα·ααΆαααα αααααααΎα§ααΆα αααααα αααα»αααΉααα·α αΆαααΆαααααΆαααααααααααα ααΉαα
αααα»αααααΈααααααΎα ααΆααα·α αα ααααααααααα½ααα αααα»ααααα»αα αααααΆαα ααΆααααααααααΆ ααααα·αααΎααΎαααΆαααα‘αΎααα½ααΆααΈ imbjava α¬ oraclejava ααα ααΎαααΆα java binary executable α αααααΊα αΆαααΆα ααααααΆααα αα½ααΆααΈααΆαααΎα’αΆαααααααΎα₯αα·ααΆααααα αα½αααααααΉαααΆ java α αααα»ααααααΆαα½αααααΆααα ααΆα’αα»ααααΆαα±ααααΎααααα½αααΆαα’αα»αααα/αααα java αα½αααΆαα½ααα½ααααααααα ααααα·αα αΆαααΆα αααααΆααααααΌααααααα·ααααΆααααΆαα’αα»αααααααααα·ααΈα
αααα αΆαα ααΈαααααΊαααα·ααα αααα»αααΆααα·ααααααΆααΆαα·αα’αΆα αα αα½α αααααα»αααΆαα’αα»ααααααΆαα αααα»α Ansible αααααΆαααααααααα·α αα ααααααααααα½αα ααα½αααα α‘αΎααα αααα»ααααα»αα
αααααΆααααααα ααα ααα»α αααααΆαα
αααααΆααααααααα ααα»α αααααΆααα βα ααα»α αααααΆααααΆααααΆααααααα’αα·αα·ααααΆα αααΎαααΊαααααΎαααΆαα ααα»α αααααΆαααααααααααΌαα αα½αα
ααααΌαα‘αΎα ααΎαααΆαααααΆααΆαααΆααααΆααααααααα½αααΆααα’ααααααΆαααΆαααααααΆααααααα·ααΈαα αααα»α Ansible playbook ααα»ααααααΆαα·ααΆααααα»αααΆαααΆαααα α αΎααα·ααΈααΆααααααα ααααααααΎαααΆαα ααα»α αααααΆααααΆααααα αααααΆααααααΆαα (α’αα·αα·ααααααΉαααΆααΉαααΆαα ααα 443) αααααΆααααα αααααΆαα ααΆααααααααα’αΆα ααααΌαααΆααααααΌααααα»αααΈαα»ααααααααΆαααα α₯ααααααααΆααααΆαα’αα»ααααααΆααααΆααα
αααααΆααααααα αααΆαααΆαα’αΆααααα
αααααΆαααααααΆααααα αααΆαααΆαα’αΆαααααα αααΌαα»ααα ααααα·αααααααα·ααα½αααΉαααα’ααααΎαααΌαα»ααα ααααα·αααΆαααα ααααααααΆααααΈααααααΌαα»αααααΌαααααΉαααα’ααααΎ abstractions α α’ααΌααΈαα·ααα½αα’αΆαααααααΎααααααΆααααα’α·αααα ααααααΆααααα’α·αααααΌαααααΉαααα’ααααΎα’ααΌααΈα
αα ααΈαααα§ααΆα αααααΉαααα’ααααΎααΆααααααΆααααααΆααα½αα
- α’αα·αα·ααααααΆααααΆααααα―αααα
- ααΎαααΆααααααΆαα·ααααΆαααΈααα·αααα·ααα ααΆααααα»ααααα
- ααα»αααααααααΆαααααααααΆαα·ααααα ααΆαααΆααα±ααααααΎααααΆαααααααα·ααΈααααΌαααΆαααααΆααααΆαα½α hypervisor ααα VM ααΎαα
ααΆαααααα αααααα·ααααΆααααΆαααΆαααααααΆααααααα·ααΈααααα·ααααααααΆαα αΌααααααΆαα’αΆααααααα ααααα·αααΆαααα’ααααααα½ααα·αα·αααααααα α αΎααααααΆααααααΆααΆααααα αΆαα αααααααΎαααααα·ααααΆαααα‘αΎααα·αα αα»αααααΎααΆααΆααααααααα
α’αααααααα
α αααααΆαα ααΆααααααααβααΆβααΌαβαα·αβααααΉαβααβαα·ααΆαβα’αααΈβααΌαβααα»αααααβαα ααα»ααααβααβα’αααΈβααααΆααβααααβαααΆαβααΌαβαα·αβααα»ααα α’αααΈβα’ααααααααβαααΆαβα’αααβαααααΎαβα αααααΆαα ααΆααααααααα
αααααΆα‘αΆααααα»α
α αΌααααααααΆα’αααααΆα Vasya αα ααΎααααααααααα’αααα Vasya ααΉαααααααααΆαα’αααΈα αααααΆαα ααΆααααααααααααα’ααα ααΎααΉαααΆαα’αααΈααΎαα‘αΎα ααααα·αααΎ Vasya ααΆαααααα½αααααΆαα? αααβααΆβααααΆαααΆαβααΆαααααααβααΆαα αααααβααΆααβα’αΆα βααααΌαβα‘αΆααααα»αβαα»αβα αααααααααΆααΎαα‘αΎαα ααααα·αααΎααΏααααααΎαα‘αΎα α αΎαα ααααααΉαα’αααΈααΌα αα ααΆααααααααααααααΆ αααααααααΆααααΎαααΆα ααΌαααΆα αα·αααΆααααααααΆαααα·αααααΌαααΆαα ααα αΆααααα»αα αααααααα»ααα αααα’αααα’αΆα αα½ααααααααΉαααααΆαααΆααα·αααα’αα½αα ααα½αα ααΎααααΈααΆαααααααα αΆαα·αααααΆααααα αα·αα ααα αΆαα ααααααΉααα αααα»ααααα»α α’αααα’αΆα ααααΎαα·ααΈααΆααααααααααα
ααΌ Devopsing
ααΆαα·αααΌα
αααααα
ααααΈβαα·αααβαα½αβαααβααΊβααΆαβα α βα§ααααααα·α ααα»α αααα»αα’αα‘α»ααααααΆααααα αΆαα½α αααα»αααα’ααααααααααΆαααααα·α αα αα·αα’αααααΆαααααααααΆααααααΌααααα»αααααΆ α’αααααΉαααΆαααααΆααααααΌαααΆααααααΆαα αααα αααααααα’ααααααααααααΆαα αα·ααααα αααααααααααααα·αα α’αααα αΌααα½αααααααααααααΎααΆααααα·αααααα’αααααΉαααΆα ααααααααΆαααααΈαααα·α ααΈαα»αααΌα αα·αα·αααααΎαααΆαα½ααααα·αααΆαααααΆααααααΆαααα αααα»ααααααα ααα» αα·ααααα’αααΈααααΈα’αααΈααααααααα αα·ααΈααΆααααααααααΆαααααα·αααααΆαα αααΎαααΆαααααααΆα
ααΆααα·αα·αααααΌα
ααΆααααααΆααα ααΆααΆααααααΆαααααα·αααααΆααααα»αααΆαααααααααααΆαα ααααααΉαα’αααΈα αααααΆαα ααΆαααααααα αα·ααααααααααΆααααΎαααΆααααααααΎααΆααα·αα·αααααΌαα
- α αααααΆαα ααΆααααααααααααΌαααΆααα·αααααΆααααααααΌααα αααα»αααααΆααα
- ααΆαααααΆααααααΌαααΎαα‘αΎααα αααα»αααΆααΆααΆα ααααα‘αααα½αα
- αααα»αα’αα‘α»ααααααααΎαααα αΌαααααΆ α’αααα’αΆα ααΎααααααααΈααααααααΆαααααΆααααααΌααα αααα»αα αααααΆαα ααΆααααααααα
ααΆαααααα·α αα ααΈαααααΊααΆα’ααααααα½ααα·αα·αααααααΌαααΆαααααΎαααΎααααααα½ααααΆαααΆααα·ααΆααααααΊα§α ααΆαα½αααΉαααααα·αααααααααααΌααΆαααΈααΈαα α’αααααΉαα‘αΎαα αΌααα αααα»ααααααααααΈααα αααααΆαα ααΆααααααααα
αα ααΆαααααααΌα
ααΌαααα ααΆααααααααααααααααΆ α αΆααααααΎαααα α ααααΆααΌαααΆα α’αα‘α»αααααα·αα·ααα ααΈααααα... α’ααααααα½ααα·αα·αααααΆααα ααΆαααααααααΆαααααα½ααααααα½ααα α αΎαααΆαααααα·αα’ααααααα½ααα·αα·αααααΆαααααα½αααΆααΆαα½αααΉααα ααΆααααααα»ααααααΆα α ααααα 2 α¬ 4, camelCase α¬ snake_case α ααΆαα·αα’αΆα αα αα½α αααααα»αααΆαα’αα»ααααααααΆααα
- αααα·αααααΌαααΊααααΌαααααΆαα±ααααααΎ linter αααααΆααααΈααΆααα’αα ααα»ααααααααααααΆααΊααΆαα·ααααα ααα»ααααααααααααΆααΊααααΆαα ααα»αααααααααα·ααΈαα·αααααααααααααΆ OS αα·αααΆααααα½αααα
- ααΆααΆααα·αααααα ααΆ bot ααααααααααΎααααΈααΊααααααΆααααΆααααααααΉαααα·αααα αΆααΈαα½αα αα·αααααΆαααα·ααααα linter α ααα»αααααααα»αααααΈααΆαα αααΎα ααΆαααΏαααααΆααααΆααααααααΌαααααΎ α αΎαααΌααα αααα·ααα½ααα»αα
Green Build Master
αααααααΆααΆαααααααα»ααα α αΎαααΎαααΆαααΆααααααΆαααααα·ααααΆαααΆ ααΆαααααααααΆα α·αααααααα·αααααααΆααααΆαααΆααααααα½αα ααα½α αα·αα’αΆα α’αα»ααααΆαα·α±ααα αΌααα αααα»αααααΆαααα α’αΈαααΆ! ααΎαααΆααααααΎα Green Build Master αααααααΌαααΆαα’αα»αααααααα»αααΆαα’αα·αααααααααααα·ααΈα’ααααααααααΆααΌαα
- ααΆαα’αα·αααααααααα»αααααΎαααΆααα αααα»αααΆααΆααΆα ααααα‘αααα½αα
- ααΆαααααΎααααααααα»αααααΎαααΆαααΎαααααααα
- ααααα·αααΎααΆαααααΎααααααααΆααα αααααΌαααΉααα·αααααΎα±ααααΆααααΆαααΆααααα
ααΆαβαααααα βα α·αααβαααβαα·αβααΆβααΊβα αΆααβααααΆααβααΆααβααααα... ααααβααΆβααΏαβα ααααΌαα ααααΆαβααΆβα αααΎα ααα»ααααβααΆβααΆαβαααααβααααα... ααΆααα·αα·αααα‘αΎααα·αααΆαα αΆααααααΎαααα½αααΆαααααΎαααααΆααααΆααα½ααααα αΌαααααΆαααααααΆαααΆααα»αααααΆαα αααα»ααα ααΆααααα α αΎαααΌα α αα α ααα½αααααααααααα αΆααΆαα αΆααααααΎαααα α»αα
ααΆαααααΎααααα IaC
ααααααααΈααΎααΆααααα½ααα·αα·ααααα ααΆααααα α’αααα’αΆα ααααΎααααααααααααα§ααΆα ααα ααΎααααΈαα·αα·αααααΎαααΆα αααααΆαα ααΆααααααααααααα’ααααα·αααΆα’αΆα ααΆαααααααΆαααΆαα α¬αα·αα·αααααΎαααΆααΆαααααΆααααααΌαα αααααΆαα ααΆααααααααααΉααα·αααΆαα±ααααΆααααααα»αααα α ααα»α’αααΈααΆαααΆαααα’αΆα ααααΌαααΆα? αααα½αααΊαααα»αααααααΆα αα·αααΆααααααα·ααααΆ ααΆααΆααΆααααααΎαααΆααααα»αααΆαααααΎαααΆαα½αααΉαααΏααα½ααααααΆααΆαα§αααααααααΎααΆαααααααΆααααααααααααααααα·αα ααΎ Powershell ααααα·αααΆααα·αα·αααααααααααααααααα => VMs ααΆααααα αααΎαααααΌαααΆααααααΎαα‘αΎαααΎαααΈααΆαα αΆαααΆα α => α’αα·αα·ααααΆαα αααΆαααααΆααα αααΎαααΆαααΆαααααααα»αα αααβαα·αβααΌαβαααααΆαβα α·αααβαα ααα»ααααβααΆβα’αΆα βααΉαβα’αΆα βα αΆααβααα α»αβαααβαα βααααΆααααΆαβαα»αβααΆαα
ααα»αααααααΆααα’αΆα αα½αααΆ α ααα»α’αααΈααΆαααΆααααΎα±ααα αααααΆαα ααΆαααααααααααα»αααααΆαααΆαααααααα»αααααΆα? ααΆαααααΎααααααααααΆααα αααααΆαα ααΆαααααααα ααΌα ααΆαααααΆααααΌα αα·αααααα·ααΆαα’αααΈααΆαααΆααααααααα ααα»ααααα’αααΈααΆαααΉαααΈαααααααα αααααΆαα ααΆααααααααααααα’ααααα½αααααΎαααΆαα
ααΈαααΆααΈαααΆααααα IaC
ααΆαααααΎααααα IaCα ααΆααα·ααΆααα·αα·αααα
ααααα·αααΎα’αααααΆαααααααΆαα αααααΆαα ααΆααααααααααΆααααΌααααα»αααααααα½α α αΎααα·αα·αααααΎαααΆααΆααααΎαααΆα α’αααα’αΆα ααΎαααΆααΆααααΌαααΆααααααααΆα αααΎα α αΎαααααΌαααΆααααααααΆα αααΎαα ααΌα ααααα αΎα ααΌαααααΆαααααΌαααααΆα’αααΈαα½ααααααααΎαααΆαααΆαααΏα ααΆαα αααΎα α αΎαααΆαααααααααααααααααα»αααααΆαα αααΎαα
Bash ααΆααααα·α
ααΌααααα‘ααααΎαα§ααΆα ααααααααααα½αα ααααΎαααΎαα―αααΆαααΆααα’αααα αααα»ααααα αα α»αααααα α αΎαα αααααα ααΈααΆααααααααααα ααΏαααααΌαααααα·ααααα
for i in * ; do
cp $i /some/path/$i.bak
done
α α»αααααα·αααΎααΆαα ααααααα αααα»ααααααα―αααΆα? αα·αα’αΈαα ααΎαααααΆα ααΎαααΉαααΈααααααααΎααααααα
for i in * ; do cp "$i" "/some/path/$i.bak" ; done
ααα’βααΆαα? αα! α α»αααΎαα·αααΆαα’αααΈαα αααα»ααα, i.e. ααΆααααααΉααα·αααααΎαααΆαααα
find . -type f -exec mv -v {} dst/{}.bak ;
ααααΎααΆαααα’α₯α‘αΌαααα? αα... ααααα
α’αααΈαααα’αΆα
ααΆααα
αααα»ααααααα―αααΆα n
.
touch x
mv x "$(printf "foonbar")"
find . -type f -print0 | xargs -0 mv -t /path/to/target-dir
α§ααααααα·ααΆααα·αα·αααα
αααα αΆβααΈβααα αΆαβαα»αβα’αΆα
βα
αΆααβααΆαβαα
βαααβαααβααΎαβααααα
βαααααα αααααβααΆβααΆαβαα·ααΈβααααΆααΆαβααΆβα
αααΎαβαααα»αβααααααΆαα·
ααΆααΆ
α§ααααα
bash
Ruby αααα
αααααααΆαα
ansible
ααΆαααααΎααααα IaC: ααΆαααααΎαααααα―αααΆ
ααΌα
αααααΎαααΆαααΎαααΈα§ααΆα ααααα»α αα»αααααΆααα·αααΆαααΆααααααααααα α αΎααα·αα’αΆα
α
ααα’α»ααααα αΆαααααααααα αΆααΆααα’αααααααα ααΎαααΈααα αααααΆαααααααααααΆαα½αααΉαααΆαααααΎααααααα
αααα»αααΆαα’αα·αααααααααααα·ααΈ ααΎαα’αΆα
ααααΉαα‘αΎααα·αααΌαααΆαααααΎαααααα―αααΆα α’αααΈαααααΉαααΎαααααΆαααααααΊ
αα ααΎαααααΌαααΎαααΆααα·ααΆαα’αααΈ ααΉαα α αΎαααΆα αααααΆαα ααΆααααααααααααααΎααα½αααααΆαα₯αααααΌα αα αααααααΆαααααα½αααααΆααααααα αΎαα
- α αααααΆαα ααΆααααααααααααΌαααΆααααα αααα ααΆα₯αααααΌα α α§ααΆα ααα αα½ααΆααΈ Ansible α
- ααααααααα·ααΆααΆααα½αα ααα½αααααΌαααΆαααΆαααααααΆα αα·αααΆααΆ docker α¬ VM ααα
- ααΎαα’αα»αααααα½ααΆααΈ Ansible ααααααΎαα ααααααα·ααΆααΆαααΆααααααααα
- ααΎααα·αα·αααααΎαααΆα’αααΈαααααΎαααΆαααΌα αααααΎαααααΉααα»α (ααΎαααααΎαααΆαααααα)α
- ααΎααααααα ααΆααααααα α¬αα·ααααααααα
ααΆαααααΎααααα IaCα α§αααααααααΎαααααα―αααΆ
αααα½α ααΎαααααα’αααΈαααααααααΆαα CFM? α’αααααααΆααααα’αΆα ααααΎαααΆαααααααΈα α¬α’αααα’αΆα ααααΎαααααααααΆααααααααααα½α ααΆααααα αααααΆααααΆααααα
CFM
α§ααααα
Ansible
αααααΆα
αααααΆα
α’ααα·α
α§ααΆα ααααααααΆαα testinfra αα·αα·αααααΎαα’αααααααΎααααΆαααααα test1
, test2
ααΆαα αΎααααα·ααααα»ααααα»α sshusers
:
def test_default_users(host):
users = ['test1', 'test2' ]
for login in users:
assert host.user(login).exists
assert 'sshusers' in host.user(login).groups
ααΎααααΌαααααΎαααΎαα’αααΈ? αααα½αααΊαααα»αααααααΆα αα·ααα·αα αααΆααααΆαα αααααΊααΆα§ααΆα αααααααΆαααααΆααααααΌααααααααα ααΎ github αααααΆααααααΆα 2018-2019α
αααααααααααααΆαααααΎααααα IaC
αααα½αααΎαα‘αΎα: ααααααΆααααΆααΆααα’αααα½αααααΆα αΎαα
αΆααααααΎαααΆ? α’αΆα
CFM
α§ααααα
Ansible
αααααΆα
Terraform
α§ααΆα αααααααΆαααααΆααααααΌααααααααα ααΎ github αααααΆααααααΆα 2018-2019α
αααΌαααα»ααααααΉα ααααααΆαααΆααααα
ααααΌαααΎα
- αααααΎα VM ααααααααΆα
- α’αα»αααααα½ααΆααΈ Ansible α
- ααααΎαααΆαα’αα·ααΆααα·α αα α
αααααΆαα 25-35 αα½ααΆααΈααΆααααΎαααΆα 40-70 ααΆααΈαααααΆαααααααααΌαα
ααα αΆααααααΆααααΊααΆαααααΆααααααΌααα jenkins/docker/ansible/moleculeα Idiologically α’αααΈααααααααΆαααΊααΌα ααααΆα
- ααΈαααααα αααα
- αααααααα½ααα½ααΆααΈα
- ααΎαααααΎαααΆααα»αααΊααα
- α’αα»αααααα½ααΆααΈ Ansible α
- ααααΎαααΆα testinfra α
- αα·αα·αααααΆαααααΆααααααααΆαα
Linting αααααΆαα 40 αα½ααΆααΈ αα·αααΆαααααΎααααααααααΆααααΆαααα·αα αΆααααααΎαα αααΆαααααααα αα 15 ααΆααΈα
α’αααΈβαααβααααΌαβααααΎαααΎαβα’αΆαααααβααΎβαααααΆβααΆβα αααΎαβααΌα βααΆβαααβαααβααΆαβααααΎ ααααΆαβαααα»αβαααα»αααα αα ααΈαααα’ααααααααααααΆαααααα α α·αααααααααα½αα―αα’αααΈαααααα·ααααα½ααααααα―αααΆ
ααΆαααααΎααααα IaCα ααΆαααααΎααααααα½ααααα αΌα
ααα αΆααααααΆαααααα»αααΆαααααΎαααααα αααααΆαα ααΆααααααααααΈαααΆααΈαααΉαααΆααΆαααααΎααααααααΆα ααααααα αα½αααΆααααααααΉαααΆαααααΎαααααα―αααΆα
- α αααααΆαα ααΆααααααααααααΌαααΆααααα αααα ααΆα₯αααααΌα α α§ααΆα ααα αα½ααΆααΈ Ansible α
- ααααααααα·ααΆααΆααα½αα ααα½αααααΌαααΆαααΆαααααααΆα αα·αααΆααΆ docker α¬ VM ααα
- αααααΆααααα·ααΆααΆαααΆααααααααααααΌαααΆαα’αα»αααα αα½αβααΆα α αα½ααΆααΈααααα·αα’αΆα αααααΆαα
- ααΎααα·αα·αααααΎαααΆα’αααΈαααααΎαααΆαααΌα αααααΎαααααΉααα»α (ααΎαααααΎαααΆαααααα)α
- ααΎααααααα ααΆααααααα α¬αα·ααααααααα
αα·ααΆαααΆαα½α ααΎααα·ααα·αα·αααααΎαααααΎαααΆαααααΆαα»ααΈαα½ααααααααααααααΌα αα αααα»αααΆαααααΎαααααα―αααΆααααα ααΎααα·αα·αααααΎαααΈααααααααααΆαααΈαααααααΌαααΆαααααααα ααΆααααααααααΆααααΌαα
ααΆαααααΎααααα IaCα ααΆαααααΎααααααααα αα
αα ααΎααααΌαααααΈαααΆααΈα ααΎαααααΌαααΆαααααΆαααααααααΆαααααΎαααααααΈα α»ααααα ααα ααΆαααααα ααΎααα·ααα·αα·αααααΎαααααΎαααΆααααααΆαααΈαααααΆα ααααα‘αα ααααααΈαααΆα ααααα‘αα α¬α₯αααααΆα ααααα‘ααααα αααααΆαα ααΆααααααααααααααΎαααα ααΎααα·αα·αααααΎαααΆαααΆαααΈαααααΆα αααΎαααΆααααααΆααααΆαα½αααααΆ α αααααΆαα ααΆααααααααααααααΎαααααΎαααΆαααΌα αααααΎαααααΉααα»αα ααΆα’αα»αα αααα»ααα·ααααααΎααααααααααΆααααα’αααααααααααα½α ααΆααααα αα αααα ααααΆαααααΆααα... α αααααΆαα ααΆαααααααααααα αααΎαααααΆαααααααααααα αα·ααα·ααΆαααααΎααααΌ αα·ααααααΎαααααααααααααααΆααααΆαααααΎαααααα ααΆαααααα ααα»ααααααααααΌααααααΎααααααααααΆαααααΆαααααα½αα ααΆαααΆαααΆαααΆα ααα»ααααααααΆαα ααααΎαα ααΌα ααααα αΎα αααα»αααΉαααααΆααα’αααααΈα’αααΈαααααΆα ααΎααααΈαααα»αα’ααααααα±αααααα αααααα·α α¬ααααα»αα αααα»ααααααααα»α αααααΆααα·αααΆ α’αααΈαααΆααα’ααααααΌαααΆααααααΎααα»αααΎαααΆααααΈααΌαααΆαααΆααααα αΎαα
αααααααααααΆααααααααα·αααααΌααααα ααΆααααΌαααΆαααααΎαα αααα»αα’αααααΆαααα α αΎααααα ααααΆα’αααααααΆαααααΆαααααααΆααααααΌααααααααααααΆαα½αααΆα αααααα·ααΈαααααΆααααααΌαααααΆααα·ααααααααΆα αααΎα ααΆααα½ααααα αΌαααα ααΆαααΉαααΈα’αααΈαααα αααααΆαα ααΆααααααααα’αΆα ααΆαααΌαααΆαααΆα―αααΆα docker-compose ααΆα αααΎα αα·αααΆαααΉαααΆααΆαααααΎαααααααΆαα½ααααααααΌαααααΎαααΆααααα»αααα·ααΆααΆααα½αααΆααΊ Jenkins α
αααααααΆααααααααααΎαααΆαααΆααΌαααΆααααα αΎα αα αΌαααααααα»αααααααααα
αααα·αααααΆαααααΆαααΆααααααα αα»αααα α αΎααα αααα»α openshift αα½αααααΆαααααΎαααΏαααΌα ααΆ APB (Ansible Playbook Bundle) αααα’αα»ααααΆαα±ααα’αααααα ααα ααααααΉαα’αααΈααααααΆαααααααΆαα αααααΆαα ααΆαααααααααα αααα»ααα»αααΊαααα ααΆαααααα ααΆαα ααα»α αααα’αΆα ααΆαααααααΆα αα·αα’αΆα ααΆαααααααΆαααα ααααααΉαα’αααΈααααααΆαααααααΆαα αααααΆαα ααΆααααααααα
ααΆααα’αααααααααΆαααα ααα’αα αΌααααααΎααααα αΌααα αααα»αα αααααΆαα ααΆααααααααα αααα»αα ααΎαααααΌαααΆα Windows αααααΆααααΆαααααΎαααααα ααΆαααααα α ααααααΉαααα’αααΈ ααααααααΆ ααααααΆαααααααΆα αα·αααΆαααααΎαααααααΊαααα·ααα αααα»α jenkins α
ααααα·ααααΆα
α αααααΆαα ααΆααααααααααΌα ααΌα
- αααααΌααα αααα»αααααΆααα
- α’ααααααααααααααα»αααα
- ααΆαααααΎαααααα αααααΆαα ααΆααααααααα
αααβααααΆαα
ααΆααΆα’ααααααα αααααααααΆαααΈαααα»αααααΆαααααα½α - ααααΎαααΆααααα½α 2019-04-24
SpbLUG ααΈααα’αΌ (RU) ααΈ DevopsConf 2019-05-28 ααΈααα’αΌ(RU) ααΈ DINS DevOps EVENING 2019-06-20 ααααααααααΆααααααΈααΆααααααααΌααα ααΆααααααααααΆα 300,000 αα½α &ααααα’ααααα ααΆααα½ααααα αΌαα αααααΆαα ααΆααααααααααΆααΌααα αααα»ααααααα ααα αΆααααα ααΆαααααα αααααΆαα ααΆααααααααααΆααΌα ααΆαα’αα·αααααα αα·ααααααααΆαα½ααΆααΈ Ansible ααααααααααααα·αααααΆα Ansible αα·ααααααΆααΏαα’αΆααααΌααα!
ααααα: www.habr.com