å 責äºé
å æãç§ã¯3ã€ã®è£œåãã¹ãŠã«ã€ããŠéçºè ãšã®ã€ã³ã¿ãã¥ãŒãèããã [Ansible / Salt / StackStorm]æ¥çå€ãæ€èšããŠãã ããããšãã声æãèããŸããã ãããŠä»ãç§ã¯ã¢ããã¥ã¢ã®èªå®¶è£œã¢ããã¥ã¢ãšããŠãç§ã®ã¬ã¬ãŒãžã«ã¯æ¥çå€ã®å¯äžã®éã¯æ±ºããŠãªãããšãåãã§ããŸãã çšéãæ¥çå€ãç°å¢æ¡ä»¶ã«å¿ããŠã6çš®é¡ã®æ¥çå€ããããŸãã ããã3ã€ã®è£œåã¯ãã¹ãŠåãé£å¶ã«ãããããããã䜿çšããŠå®å šã«ç°ãªãç®æšãéæã§ããŸãã æè¿ãæ©èœã倧ããéè€ããŠããããããã¯ãã¹ãŠãããã¯ãŒã¯èªååã®åéã«æµžéããŠãããšããäºå®ããæãç«ã£ãŠããŸãã 以äžã®æèŠã¯ãéçšäž»ïŒæ°ååãã«çžåœã®ãããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ãšå±é補åã販売ããŠããïŒã§ã¯ãªãã ç§ã«å±ããŸãã
ç§ã¯ 3ã€ã®è£œåãã¹ãŠã䜿çšãããã®ãã¡ã®2ã€ïŒSaltãšStackStormïŒã®éçºã§ãAnsibleã®éçºã«å€§ããè²¢ç®ããéšåçã«è²¢ç®ããŸããã ççŽã«èšã£ãŠãç§ãæããªãã¿ã®ãªã補åã¯Ansibleã§ãããååãšè©±ããæ å ±ãåéããŠç©ºçœãåããŸããã
ããã¹ããã¹ã¯ããŒã«ããŠãåè ãšããŠçºè¡šãã補åãèŠã€ããããšãããšã倱æããã§ãããã èŠä»¶ã«ã€ããŠèããè€æ°ã®è£œåãè©ŠããŠãã ããã
倧人ã®ç£ç£äžã§äœ¿çšãã
ããã€ã質åãããŠãã ããïŒ
- ã©ã®ç°å¢ããµããŒãããå¿ èŠããããŸããïŒ ãµãŒããŒãšãããã¯ãŒã¯ããã€ã¹ã®ã»ããã¯äœã§ããïŒ
- ãŠãŒã¶ãŒã¯èª°ã§ããïŒ çéå ¥ãã®ã·ã¹ãã 管çè ãæ å ±ã»ãã¥ãªãã£ã®å°é家ãéçºè ïŒ
- ãŠãŒã¶ãŒéçºã«ãããè²»ãããŸããïŒ
ãšãŒãžã§ã³ãã®æç¡ã«ãããããïŒ
ããã«æ³šæããŠãã ãããããã¯æ¬åœã«éèŠã§ãã ãã®èšäºã§ã¯ãããã€ã¹ã®èªååãšãã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®åé¡ã«çŠç¹ãåœãŠãŸãã ãããã®ããã€ã¹ã¯ãã«ãŒã¿ãŒãã¹ã€ããããã¡ã€ã¢ãŠã©ãŒã«ã§ããã次äžä»£ã®ãµãŒãã¥ã¬ãŒã¿ãŒã®é»ç£æ³¢ãæŸåºããŸãããããã¯éèŠã§ã¯ãããŸããã æ¬åœã«éèŠãªããš-ãšãŒãžã§ã³ãã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ã€ã³ã¹ããŒã«ãããŸããã Ansibleã«ã¯äºææ§ã®ãããœãªã¥ãŒã·ã§ã³ããããŸãã-SSHããã©ã³ã¹ããŒããšããŠäœ¿çšãããããSSHãæãäžè¬çãªåæ¯ã§ã¯ãªããšã³ããã€ã³ãæ§æã®äžçã«ããŸãé©åããŸãã SaltStackã¯ãéä¿¡ãå¶åŸ¡ããé«éã§å®å šãªãããªã³ïŒãšãŒãžã§ã³ãïŒçšã®ãã¹ãšããŠäœæãããŸãããããšãŒãžã§ã³ãã䜿çšããªãã¢ãŒããåããŠããŸãã StackStormã¯æåŸã«ç«¶æå Žã«åå ¥ããŸãããããã®ã¢ãŒããã¯ãã£ã«ãããã©ã®äœåãåªå ãããŸããã ChefãPuppetãSaltã®ããã±ãŒãžãšãç¬èªã®SSHããŒã¹ã®ãªã¢ãŒãã³ã³ãããŒã«ããŒã«ãããã³ã¹ã¯ãªããã®ã³ã¬ã¯ã·ã§ã³ãåŒã³åºãããã®çµã¿èŸŒã¿ãµããŒã-Ansible PlaybookãéããŠããšãŒãžã§ã³ãããŒã¹ã®ããŒã«ããµããŒãããŸãã
API
ãã1ã€ã®éèŠãªéãã¯APIã§ãã
- Ansibleã¯CLIã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããAnsible TowerïŒãšã³ã¿ãŒãã©ã€ãºçïŒã¯APIãåããŠããŸãã
- StackStormã«ã¯CLIããããŸãããç¡æçã®ãã¹ãŠã®ã³ã³ããŒãã³ããšãµãŒãã¹çšã®REST APIããããŸãã
- Saltã«ã¯CLIãšREST APIã®äž¡æ¹ãããïŒããã©ã«ãã§ã¯æå¹ã«ãªã£ãŠããŸããïŒãRBACãªã©ã®æ©èœãå«ããšã³ã¿ãŒãã©ã€ãºè£œåã®äžéšãšããŠãEnterprise APIãã䜿çšããããšãã§ããŸãã
ã¢ã³ã·ãã«
ã¢ã³ã·ãã«-ãã€ã±ã«ã»ãããŒã³ã®çºæ¡ã ãã®è£œåã¯ã倧èŠæš¡ãªç°å¢ã§ã®ãµãŒããŒç®¡çã®çµ±äžã¿ã¹ã¯ãèªååããããã«éçºãããŸããã ãã€ã±ã«ã¯æ°ããèšç«ãããRedHatãã¯ãããžãŒã°ã«ãŒãã«æå±ããããŸããŸãªãããžã§ã¯ãïŒ Cobblerãªã©ïŒãèšç«ããRedHatãé¢ããåŸãAnsibleãèšç«ããŸããïŒçŸåšAnsibleã¯RedHatãææããŠããŸãïŒã ãããžã§ã¯ãã®ç®çã説æãããã€ã±ã«ã®Ansible Essentialsããã°ããã®æç² ïŒ
ãç§ãã¡ã¯ãRed Hatã®æ°ãããªãŒãã³ãœãŒã¹ã®åé¡ã解決ããããã«ãéåžžã«æ°äž»çãªãããžã§ã¯ãããã1ã€äœæãããã£ãã®ã§ãã busrpcã«ã€ããŠæãåºããŸããã ãã®ãããžã§ã¯ãã¯ãã³ãã©ãŒãšããããã®éã®ã®ã£ãããåããããã«ååšããŸããã Cobblerã¯ã·ã¹ãã ãæºåã§ããPuppetã¯æ§æãã¡ã€ã«ãè¿œå ã§ããŸãã ãã ããPuppetã¯èšè¿°çãããããããµãŒããŒã®åèµ·åããããªã³ããã³ããã§ã®ãã¹ãŠã®ã¿ã¹ã¯ã®å®äºãªã©ã®æäœã®å®è¡ã«ã¯äœ¿çšã§ããŸãã ã
ãããã®ãªã³ããã³ãã¿ã¹ã¯ã¯Ansibleãã¬ã€ããã¯ã«é²åãããã®åŸAnsibleã¢ãžã¥ãŒã«ãšã³ã·ã¹ãã ãåºçŸããéçºãéå§ããŸããã
èšèš
Ansibleã¯ã·ã³ãã«ã§ããããäž»ãªå質ã§ãïŒä»ã®2ã€ã®å質ãèŠããšããã«æããã«ãªããŸãïŒã ããŒã¢ã³ãããŒã¿ããŒã¹ã¯å«ãŸããŠããããã€ã³ã¹ããŒã«èŠä»¶ã¯æå°éã§ãã Ansibleã¯Linuxãã·ã³ã«ã€ã³ã¹ããŒã«ããã ãã§ãã ã¿ãŒã²ãããµãŒããŒãéçãã¡ã€ã«ã§å®çŸ©ããæå³ã®ããã»ã¯ã·ã§ã³ã«ã°ã«ãŒãåããããåçãã¹ãæ€åºã¢ãžã¥ãŒã«ïŒAmazon EC2ãOpenStackãªã©ïŒã䜿çšããŠãAPIåŒã³åºãã«åºã¥ããŠä»®æ³ãã·ã³ãæ€çŽ¢ã§ããŸãã ã€ã³ãã³ããªãå®è¡ãããåŸããã¬ã€ããã¯ã§äœ¿çšãããã¹ãåºæãŸãã¯ã°ã«ãŒãåºæã®å€æ°ãéžæã§ããŸãã åã³ããããã¯éçããã¹ããã¡ã€ã«ã«æ ŒçŽãããŸãã
次ã«ãAnsibleã¯éžæãããã¹ããŸãã¯ã°ã«ãŒãã«æ¥ç¶ãããã¬ã€ããã¯ãéå§ããŸãã ã¹ã¯ãªããããã¯ïŒãã¬ã€ããã¯ïŒã¯ãYAMLã§èšè¿°ããããªã¢ãŒããã¹ãã§å®è¡ããããã®äžé£ã®Ansibleã¢ãžã¥ãŒã«ã§ãã
ãªã¢ãŒããã¹ããžã®æ¥ç¶ã¯ã ããèšç»ãããè»äºæŒç¿ã®ãããªãã®ã§ãããã°ã€ã³ããŠãä»äºãããŠããã°ã¢ãŠãããŸãã
Ansibleã¯ãSSHïŒãŸãã¯WS-Man / WinRM for WindowsïŒãä»ããŠãµãŒããŒã«æ¥ç¶ããPythonã³ãŒããã³ããŒããèªèº«ãå®è¡ããã³åé€ããã¢ã«ãŽãªãºã ã«åŸã£ãŠåäœããŸãã
建ç¯
Ansibleã®ã¢ãŒããã¯ãã£ã¯ç°¡åã§ããããŒã«ã«ã³ã³ãã¥ãŒã¿ãŒã§å®è¡ãããã¢ããªã±ãŒã·ã§ã³ãšããªã¢ãŒããã¹ãã§å®è¡ãããã¿ã¹ã¯ããããSSHãšSCP / SFTPçµç±ã§è»¢éããããã¡ã€ã«ãä»ããŠçžäºã«éä¿¡ããŸãã Ansibleã¯ãä»ã®2ã€ã®è£œåãšã¯ç°ãªãããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®ã¢ãŒããã¯ãã£ãæããªããããããŒã«ã«ãã·ã³ã§ã¿ã¹ã¯ã®äžŠååãè¡ãããŸãããè€æ°ã®ãµãŒããŒã«æ¡åŒµããŸããïŒTowerã䜿çšããªãå ŽåïŒã
ãªã¢ãŒããã·ã³ã管çããå ŽåãAnsibleã¯ç¬èªã®ã³ãŒããæ®ããªããããæ°ããããŒãžã§ã³ã«åãæ¿ãããšãã«AnsibleãæŽæ°ããæ¹æ³ã«ã€ããŠã®è³ªåã¯ãå®éã«ã¯äŸ¡å€ããããŸããã
æ¡åŒµæ§
å®é ãAnsibleã®ã¢ãžã¥ãŒã«ã¯ãä»ã®2ã€ã®è£œåãšåæ§ãéçºãéåžžã«ç°¡åã§ãã åŸã§ãªãã¡ã¯ã¿ãªã³ã°ããã®ã§ã¯ãªãããœãªã¥ãŒã·ã§ã³ããªãŒãã³ãœãŒã¹è£œåãªããžããªã«èžã¿èŸŒãããšã«ããå Žåã¯ãã¹ã¿ã€ã«ã¬ã€ãããèªã¿ãã ããã
#!/usr/bin/python import datetime import json date = str(datetime.datetime.now()) print json.dumps({ "time" : date })
ansible/hacking/test-module -m ./timetest.py
次ã®ãããªãã®ã衚瀺ãããã¯ãã§ãã
{"time": "2012-03-14 22:13:48.539183"}
ã¢ãžã¥ãŒã«ã§ã¯ãã ã³ã¬ã¯ã·ã§ã³ ã段éã§ãªã¢ãŒããã¹ãã«é¢ããã ãã¡ã¯ã ããçæããããã®ç¬èªã®ã³ãŒããå®çŸ©ã§ããŸããããã¯ãç¬èªãŸãã¯ãµãŒãããŒãã£ã®ã¢ãžã¥ãŒã«ã§äœ¿çšã§ããŸãã ããã¯ãã€ã³ã¹ããŒã«ããããã¡ã€ã«ãšæ§æã®äž¡æ¹ã衚瀺ããŠããµãŒãã¹ã®æ§ææ¹æ³ã決å®ãã圢åŒã§å®è£ ã§ããŸãã
ã³ãŒãã¬ãŒããµããŒã
Ansible Towerã¯ãAnsibleã³ãã³ãã©ã€ã³ãWebã€ã³ã¿ãŒãã§ã€ã¹ãã¹ã±ãžã¥ãŒã©ãããã³éç¥ã·ã¹ãã ãåãããµãŒãã¹ã«å€æãããšã³ã¿ãŒãã©ã€ãºããŒãžã§ã³ã§ãã
ã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©
ãŸãããã¬ã€ããã¯çšã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããããŸããããã«ãããã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã®å±éãèªååãããªã¹ãã«ä»®æ³ãã·ã³ãèªåçã«è¿œå ã§ããŸãã
ã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©ãã¯ã©ãŠãå±éãããã³ãµãŒããŒããSaltãšStackStormã®äž¡æ¹ã®ç¡æããŒãžã§ã³ã®æ©èœã§ããããšã¯æ³šç®ã«å€ããŸãã
ãããã¯ãŒã¯ãµããŒã
Ansible Network Supportã»ã¯ã·ã§ã³ã¯ã3ã€ã®è£œåãã¹ãŠã®äžã§æãå æ¬çãªãã®ã§ããããã¹ãŠã®äž»èŠãªãããã¯ãŒã¯æ©åšããã³ãã©ãããã©ãŒã ãã³ããŒã察象ãšããŠããŸãã Ansibleã§ã¯æ¬¡ã®ããšãå¯èœã§ãã
- ç¹å®ã®ãããã¯ãŒã¯ãã©ãããã©ãŒã çšã®ã¢ãžã¥ãŒã«ãšãã¬ã€ããã¯ã䜿çšããŠãæ¥ç¶ããã·ã¹ãã ã®æå®ããåºæ¬ãµãŒãã¹ã®æ§æãŸã§ããããã¯ãŒã¯æ©åšã«é¢é£ãããã¹ãŠã®æ§æãèªååããŸãã
- ãããã¯ãŒã¯ã®çŸåšã®ç¶æ ããã¹ãããã³æ€èšŒããããæ¢åã®æ§æã«é¢ããäºå®èª¿æ»ããã»ã¹ãå®è¡ãŸãã¯å»¶æããŸãã
- ãããã¯ãŒã¯èšå®ã®å€æŽãç¶ç¶çã«ç¢ºèªããŸãã
Ansibleã¯ãAristaãCiscoïŒãã¹ãŠã®ããã°ã©ã å¯èœãªãã©ãããã©ãŒã ïŒãF5ãJuniperãããã³ãã®ä»ã®ã¡ãŒã«ãŒããµããŒãããŠããŸãã Ansibleåç¬ã§ã¯ããµããŒãã¯äž»ã«ã³ãã¥ããã£ã§ã¯ãªããã³ããŒã«ãã£ãŠæäŸããã³æäŸãããŸãã çŸæç¹ã§ã¯ããããã¯æé«ã®APIãæé«ã®æ©èœã§ãããææ°ã®ãã©ãããã©ãŒã ã§åäœããŸãïŒæ°ããããŒãžã§ã³ããµããŒããããŠããããïŒã
匷ã¿
- ããã«å§ããããŸãã
- ã³ãã¥ããã£ããã®å€ãã®äŸãããã¥ã¡ã³ããããã³ã¢ãžã¥ãŒã«ã
- Ansible Towerã¯ã倧èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºå±éåãã®æ©èœãå®è£ ããŠããŸãã
- ãã³ããŒããµããŒããããããã¯ãŒã¯ã¢ãžã¥ãŒã«ã
匱ç¹
- é©åãªå¶åŸ¡ããªãå Žåããªãã¬ãŒã¿ãŒã¯ãã¬ã€ããã¯ãšSSHããŒãã©ãããããã«ä¿åã§ããŸãã Ansibleã®å®å šãªæ¬ é¥ã§ã¯ãããŸããããç¶ç¶çãªç£èŠãå¿ èŠã§ãã
- èªååã€ãã³ãã®å±¥æŽã¯ãããŸãããã¿ãŒã²ãããã¹ãã®å¶åŸ¡ã¯ããã¬ã€ããã¯ã®å®è¡äžã®ã¿ç¶æããããã以äžã¯ãããŸããã é·æçãªã¿ã¹ã¯ã«ã¯äœ¿çšã§ããŸããã
Stackstorm
ããŒãžã§ã³v0.11ïŒåæã®ããŒã¿ãã¬ãã¥ãŒïŒããææ°ããŒãžã§ã³v2.2ãŸã§StackStormã䜿çšããŸããã ããã¯ãSaltã®ãããªæŽç·Žãããåºç¯ãªã¢ããªã±ãŒã·ã§ã³ãã©ãããã©ãŒã ã§ãã ããã«ã€ããŠã®è©±ã¯æéãããããŸãããããã§ãå€ãã®å Žåããªã¹ããŒã¯ã·ã¹ãã ã®ééã£ãå°è±¡ãäœæããŸãã ç§ã¯ãããé·æãšçæã®äž¡æ¹ãšèããŠããŸãã ã·ã¹ãã ã®è€éãã«ããããããã€ã¡ã³ããå®å
šã«æŸæ£ããããStackStormãé©åãªä»£æ¿æ段ãšãªãåçŽã§èª€ã£ããœãªã¥ãŒã·ã§ã³ã䜿çšãããããããšãããããïŒå€ãã®å Žåãç¬èªã®ãœãªã¥ãŒã·ã§ã³ããŒãããäœæããããšããããŸãïŒã 匷ã¿ã¯ã匷ã¿ã®äœ¿çšæ¹æ³ãæ確ã«ãªããšããã«ãã·ã¹ãã ãæ¬åœã«æè»ã«ãªãããšã§ãã
StackStormã€ã³ã¿ãŒãã§ãŒã¹
èšèš
StackStormã®ã³ã¢ã¯ãæ·±ãã«ã¹ã¿ãã€ãºå¯èœãªIFTTTãµãŒãã¹ãšããŠèšèšããããã©ã°ã€ã³ã«ãŒã«ãåããå®è¡å¯èœãšã³ãžã³ã§ãïŒif-this-then-thatãâ if thisãthen thatâïŒã StackStormã¯ãåçŽãªãã¢ã¯ã·ã§ã³ãïŒã³ãã³ãïŒãŸãã¯è€éãªã¯ãŒã¯ãããŒãããªã¬ãŒããããšã«ãããã€ãã³ãã«å¿çããããã«èšå®ã§ããŸãã ã¯ãŒã¯ãããŒã«ã¯2ã€ã®ããŒãžã§ã³ããããŸããActionChain-ã¢ã¯ã·ã§ã³ã®ãã§ãŒã³ïŒç¬èªã®DSLã¯ãŒã¯ãããŒïŒãšããŠããŸãã¯OpenStack Mistralã®ã¯ãŒã¯ãããŒïŒYAMLã«åºã¥ããšã³ãžã³ïŒã§ãã
StackStormã«ã¯ããchatopsãã®ãµãŒãã¹ãå«ãŸããŠããŸãããã®ãµãŒãã¹ã䜿çšããŠãã€ãã³ãããã¯ãŒã¯ãããŒãéå§ãããããã£ãããã©ãããã©ãŒã ïŒSlackãªã©ïŒããã®ã¡ãã»ãŒãžãéå§ãããã§ããŸãã
StackStormã®äž»èŠã³ã³ããŒãã³ãã®ãªã¹ãïŒ
- ã»ã³ãµãŒã¯ãã€ãã³ããåä¿¡ãŸãã¯ç£èŠããã€ã³ããŠã³ããŸãã¯ã¢ãŠãããŠã³ãçµ±åçšã®Pythonãã©ã°ã€ã³ã§ãã å€éšã·ã¹ãã ã§çºçããã€ãã³ããã»ã³ãµãŒã«ãã£ãŠåŠçããããšãStackStormããªã¬ãŒãèµ·åããŸãã
- ããªã¬ãŒ -StackStormã®å€éšã€ãã³ãã®è¡šçŸã äžè¬çãªããªã¬ãŒïŒã¿ã€ããŒãwebhookãªã©ïŒãšçµ±åããªã¬ãŒïŒSensuã®ã¢ã©ãŒã ãJIRAã®ã¿ã¹ã¯æŽæ°ãªã©ïŒããããŸãã æ°ããã¿ã€ãã®ããªã¬ãŒã¯ãã»ã³ãµãŒãã©ã°ã€ã³ãèšè¿°ããããšã§èå¥ã§ããŸãã
- ã¢ã¯ã·ã§ã³ã¯ãçºä¿¡StackStormçµ±åã§ãã äžè¬çãªã¢ã¯ã·ã§ã³ïŒsshãRESTåŒã³åºãïŒãçµ±åïŒOpenStackãDockerãPuppetïŒãŸãã¯ã«ã¹ã¿ã ã¢ã¯ã·ã§ã³ããããŸãã ã¢ã¯ã·ã§ã³ã¯ãPythonãã©ã°ã€ã³ããŸãã¯æ°è¡ã®ã¡ã¿ããŒã¿ãè¿œå ããŠStackStormãšçµ±åããä»ã®ã¹ã¯ãªããã®ããããã§ãã ã¢ã¯ã·ã§ã³ã¯ãCLIãŸãã¯APIãä»ããŠãŠãŒã¶ãŒãçŽæ¥åŒã³åºãããšããã«ãŒã«ãšã¯ãŒã¯ãããŒã®äžéšãšããŠäœ¿çšããŠåŒã³åºãããšãã§ããŸãã
- ã«ãŒã«ã¯ ãäžèŽåºæºãé©çšããããªã¬ãŒããåãåã£ãæ å ±ãã¢ã¯ã·ã§ã³ã®å ¥åã«ãªã³ã¯ããããšã«ãããããªã¬ãŒãã¢ã¯ã·ã§ã³ïŒãŸãã¯ã¯ãŒã¯ãããŒïŒã«ãã€ã³ãããŸãã
- ã¯ãŒã¯ãããŒã¯ ãã¢ã¯ã·ã§ã³ãããŠãŒããŒã¢ã¯ã·ã§ã³ãã«çµã¿åãããé åºãé·ç§»æ¡ä»¶ãããã³ã¯ãŒã¯ãããŒéã®ããŒã¿è»¢éãå®çŸ©ããŸãã ã»ãšãã©ã®èªååãœãªã¥ãŒã·ã§ã³ã«ã¯è€æ°ã®ã¹ãããããããããè€æ°ã®ã¢ã¯ã·ã§ã³ãå¿ èŠã§ãã ã¢ãããã¯ã¢ã¯ã·ã§ã³ã®ãããªã¯ãŒã¯ãããŒã¯ã¢ã¯ã·ã§ã³ã©ã€ãã©ãªã§å©çšã§ããæåã§åŒã³åºãããã«ãŒã«ã«åŸã£ãŠå®è¡ã§ããŸã ã
- ããã±ãŒãžã¯ã³ã³ãã³ãã®å±éåäœã§ãã çµ±åããŒã«ïŒããªã¬ãŒãšã¢ã¯ã·ã§ã³ïŒãšèªååïŒã«ãŒã«ãšã¯ãŒã¯ãããŒïŒãã°ã«ãŒãåããããšã«ãããStackStorm察å¿ã³ã³ãã³ãã®ç®¡çãšå ±æãç°¡çŽ åããŸãã StackStormã³ãã¥ããã£ã§å©çšå¯èœãªããã±ãŒãžãå¢ããŠããŸãã ãŠãŒã¶ãŒã¯ããã±ãŒãžãäœæããããGithubã«ã¢ããããŒããããã StackStorm Exchangeã«éä¿¡ãããã§ããŸãã
- ã³ã³ããã¹ãã®èµ·åã«é¢ããå®å šãªæ å ±ãšãæåãŸãã¯èªåã§éå§ãããã¢ã¯ã·ã§ã³ã®çµæãå«ãç£æ»èšŒè·¡ ã
èšèš
StackStormã¯ãã¡ãã»ãŒãžãã¥ãŒïŒãŠãµã®ïŒãšããŒã¿ã¹ãã¬ãŒãžïŒmongoïŒã䜿çšããŠç¶æ ãä¿åããçžäºã«ããŒã¿ã亀æããå€æ°ã®ãµãŒãã¹ã§æ§æãããŠããŸãã StackStormã«ã¯WebããŒã¹ã®ã€ã³ã¿ãŒãã§ã€ã¹ããããŸãïŒç¡æçã§ãããã§ãïŒïŒãããã«ãããã«ãŒã«ãæ§æããããªã³ããã³ããã§ã¢ã¯ã·ã§ã³ãå®è¡ããç£æ»ãã°ã確èªã§ããŸãã
建ç¯
AnsibleãSaltãšã¯ç°ãªããStackStormã¯ã¯ãŒã¯ã¹ããŒã·ã§ã³ãéä¿¡ãæ§æããããã«ã¯èšèšãããŠããŸããã StackStormã«ã¯ãSaltãChefãPuppetãããã³Ansibleã®ããã±ãŒãžãå«ãŸããŠããããããšãŒãžã§ã³ãããã³æ§æ管çã·ã¹ãã ã«Chefã䜿çšããå¿ èŠãããå Žåã¯ãStackStormã䜿çšããŠãSensuãKubernetesãªã©ã®APIããŒã¹ã®ãµãŒãã¹ãåŒã³åºããŸãã ããã¯ç°¡åã«éæã§ããæãããªãœãªã¥ãŒã·ã§ã³ã§ãã Saltã«ã¯ãæçµãã·ã³ãŸãã¯ãã¹ã¿ãŒïŒãªãã·ã§ã³ïŒã§ã®å®è¡ã®æŠå¿µããŸã ååšããŸãã Kubernetes APIãåŒã³åºãå¿ èŠãããå Žåãã©ã®ã³ã³ãã¥ãŒã¿ãŒãAPIãåŒã³åºããããšããåé¡ãè°è«ã®çã«ãªããŸãã ãããã¯ãŒã¯ããã€ã¹ã®æ§æã«ã€ããŠãåãããšãèšããŸãã
MongoDBã¯ãååã«ææžåããããã³ãã¬ãŒãã䜿çšããŠã¹ã±ãŒãªã³ã°ã§ããŸããRabbitMQã«ã€ããŠãåæ§ã§ãã ãµãŒãã¹èªäœã¯HTTP / RESTful APIã䜿çšããŠéçºãããããŒããã©ã³ã·ã³ã°ã䜿çšããŠæ¡åŒµã§ããŸãã 圹å²ã¯ãããŒãºã«å¿ããŠãåäžã®ãµãŒããŒã«å±éããããšããè€æ°ã®ãµãŒããŒã«åæ£ããããšãã§ããŸãã
StackStormã®æ¡åŒµæ§ãæ¬åœã«å¥œãã§ããããã¯ééããªãä»ã®2ã€ã®è£œåãããéèŠãªå©ç¹ã§ãã StackStormæ¡åŒµãã€ã³ãã¯ããã±ãŒãžãšåŒã°ããŸã ã ãããã¯èªå·±å®çµåã§ãããGitã«ä¿åã§ããPythonã®ä»®æ³ããã±ãŒãžã¬ãã«ç°å¢ãä»ããŠäŸåé¢ä¿ã管çã§ããŸãã ããã±ãŒãžãã€ã³ã¹ããŒã«ãããšãã«ãGit URLãŸãã¯HTTP URLïŒãªãã·ã§ã³ïŒè³æ Œæ å ±ãæå®ãããStackStormã¯æ¢ã«ããã±ãŒãžãããŠã³ããŒããæ§æãããã³ã€ã³ã¹ããŒã«ããŸãã
StackStormãããã°ã©ãã³ã°èšèªã§ããå Žåã 匷ãåä»ããããŸãã ã¢ã¯ã·ã§ã³ã®å Žåããã¹ãŠã®å ¥åããŒã¿ã®ã¿ã€ãã瀺ãããããªã¬ãŒã®å Žåããã£ãŒã«ããšã¿ã€ãã瀺ãããŸãã ããã«ããããµãŒãããŒãã£ã®æ¡åŒµæ©èœã«ãã£ãŠäœãè¿ãããããç°¡åã«äºæž¬ã§ããŸããããã¯StackStormã®ãŠããŒã¯ãªæ©èœã§ãã
SaltãAnsibleãšã¯ç°ãªããStackStormã«ã¯é
ä¿¡æã«æ¡åŒµæ©èœãå«ãŸããŠããŸãã ããããã¯ãã¹ãŠåå¥ã«ã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã ããã«ãããå±éã容æã«ãªããäŸåé¢ä¿ãç°¡çŽ åãããŸãã
StackStormã®çµ±åã¡ã«ããºã ãéçºããå Žåã1ã€ã®å®çŸ©ã§ã»ã³ãµãŒãã¢ã¯ã·ã§ã³ãããã³ã¯ãŒã¯ãããŒãäœæã§ããŸãã Saltããã³Ansibleã¢ãžã¥ãŒã«ã¯ã¹ã¿ã³ãã¢ãã³ã§ãã ãããã£ãŠãæ¡åŒµæ©èœïŒSaltãªã©ïŒã«ããŒã³ã³ãã©ã³ã¿ã€ã ã¢ãžã¥ãŒã«ãããã³ã¹ããŒã¿ã¹ã¢ãžã¥ãŒã«ãå«ãŸããŠããå Žåãã¿ã€ãã«ãšäœæè
ãé€ããŠå
±éã®æ©èœã¯ãããŸããã ããã«ãããpipäŸåé¢ä¿ã管çãããšãã«åé¡ãçºçããå¯èœæ§ããããŸãã
StackStormã§ã®ãã®åé¡ã®è§£æ±ºçã¯ãåããã±ãŒãžã«ç¬èªã®requirements.txtãã¡ã€ã«ãšãããã±ãŒãžã®ç®çãèŠä»¶ãããã³ããŒãžã§ã³ã説æããYAMLãã¡ã€ã«ãããããšã§ãã æ¢åã®æ§æãç¶æããªãããããã±ãŒãžãç·åœ¢ã«ã¢ããã°ã¬ãŒãã§ããŸãã ããã±ãŒãžã«ã¯ãã¢ãžã¥ãŒã«ã®æ§æ圢åŒãããã¥ã¡ã³ãã«ã®ã¿ä¿åãããAnsibleãSaltãšã¯ç°ãªãããã³ãã¬ãŒãæ§æãå«ãŸããŠããããŠãŒã¶ãŒãšã©ãŒã®åœ±é¿ãåãããããªã£ãŠããŸãã ããã«ãéçºè ãããããæ§æãã©ã¡ãŒã¿ãé©åã«ææžåããªãå Žåãã¢ãžã¥ãŒã«ã®ã³ãŒãã調ã¹ãå¿ èŠããããŸãã
ãã1ã€ã®ãŠããŒã¯ãªæ©èœã¯ãChatOpsãšã€ãªã¢ã¹ïŒãã£ããã³ãã³ãïŒãããã±ãŒãžã«çµã¿èŸŒãŸããŠããããšã§ãã ãããã£ãŠãããšãã°NAPALMããã±ãŒãžãã€ã³ã¹ããŒã«ãããšãNAPALMã®ãã¹ãŠã®ãã£ããã³ãã³ããã€ã³ã¹ããŒã«ãããŸãã
ã³ãŒãã¬ãŒããµããŒã
StackStormã¯ãGitHubã§ãã¹ãããããªãŒãã³ãœãŒã¹ã®Apache-2ã©ã€ã»ã³ã¹è£œåã§ãã StackStormã®ææè ã¯Brocadeã§ãïŒæè¿è³ç£ã®äžéšã売åŽããStackStormã®äžéšã¯çŸåšExtreme NetworksãææããŠããŸãïŒã
StackStormã®ã©ã€ã»ã³ã¹ãååŸãããšããBrocade Workflow Composerããšãã補åãè³Œå ¥ãããã©ã€ã»ã³ã¹ææè ã¯è¿œå ã®æ©èœãšãšã³ã¿ãŒãã©ã€ãºã¬ãã«ã®ãµããŒããåãåããŸãã å®çšŒåç°å¢ã§äœ¿çšããã·ã¹ãã ã«ã¯ã©ã€ã»ã³ã¹ãä»äžãããŠããããããµããŒãããŒã ã¯å¿çæ§ãšç¥èãè±å¯ã§ãããšããå°è±¡ãåããŸããã RBACãååŸããŸããRBACã§ã¯ãã¢ã¯ã·ã§ã³ã®åã¬ãã«ã«å¯ŸããŠãã ããã©ã®ã¢ã¯ã·ã§ã³ã«ã¢ã¯ã»ã¹ã§ããããæå®ã§ããŸãã
Brocadeã¯ãŒã¯ãããŒã³ã³ããŒã¶ãŒ
ãããã¯ãŒã¯ãµããŒã
Brocade VLXãŸãã¯SDXã䜿çšããå Žåã¯ã幞éã«ããµããŒããããŠããŸããããã¯äºæ³ãããããšã§ãã
2017幎4æã«ãNAPALMã©ã€ãã©ãªã®ãµããŒããšãCiscoãJuniperãAristaãããã³ãã®ä»ã®ãã³ããŒåãã®ã¯ãã¹ãã©ãããã©ãŒã Pythonæœè±¡åããã±ãŒãžãçµã¿åãããŸããã ããã§ãã«ãŒãã£ã³ã°ãã€ã³ã¿ãŒãã§ãŒã¹ãBGPãã¢ãªã³ã°ãããã³ãã®ä»ã®åªããæ©èœã«é¢ããŠNAPALMæ©èœã䜿çšã§ããŸãã Matt OswaltïŒãããã¯ãŒã¯èªååã«é¢ããO'Reillyã®æ¬ã®å ±èè ïŒã¯ããã®æ¹åã§ã®é²æ©ã«ã€ããŠã®è¯ãããã°ãæžããŠããŸãã
StackStormã®NAPALMãã¢
匷ã¿
- ç¡æã®Webã€ã³ã¿ãŒãã§ãŒã¹ã¯ããã©ã«ãã§äœ¿ãããããPythonãDevOpsã®æ·±ãç¥èã¯å¿ èŠãããŸããã
- ChatOpsçµ±åã¯çµã¿èŸŒã¿ã§ããããã®ãŸãŸäœ¿çšã§ãïŒSlackã䜿çšãããšãAPIããŒãåçŽã«ãããã€ãããŸãïŒãä»ã®å€ãã®ãã£ãããã©ãããã©ãŒã ããµããŒãããŸãã
- OpenStack Mistralã¯éåžžã«åŒ·åã§ããããã¹ã¿ãŒããã°ãããã€ãã®DevOpsããŒã«ãããã«ã«ããŒã§ããããã«ãªãããã©ã³ããšã«ãŒããç°¡åã«äœæã§ããŸãã
- Brocade Workflow Composerã¯ãéçºè 以å€ãã·ã¹ãã ã䜿çšã§ããããã«ããåªããæ¹æ³ã§ãã
匱ç¹
- å©çšå¯èœãªãœã«ããšã¢ã³ã·ãã«ã»ã©å€ãã®æ¡åŒµããã¯ã¯ãããŸããã ãŸããã·ã¹ãã ããã³APIã§ããã±ãŒãžãå©çšå¯èœãã©ãããããã³å«ãŸããŠããæ©èœã確èªããŸãã
- OpenStack Mistralã·ã¹ãã ã®ææžåã¯ãŸã äžååã§ãããYAQLã¯ãšãªã®æ§æã«ã¯å€ãã®è©Šè¡é¯èª€ããããŸãã
å¡©
ãŸã第äžã«ãSaltã¯è£œåã§ãããSaltStackã¯äŒç€Ÿã§ãã ãããã£ãŠãSaltã«ã€ããŠè©±ããšããç§ã¯Salt Open-ãªãŒãã³ãœãŒã¹ããŒãžã§ã³ã«ã€ããŠè©±ããŸãã
Saltã«ã¯èšå€§ãªã³ã³ããŒãã³ãã®ãªã¹ãããããæåïŒãããŠãæåããšèšããšãã¯ã1幎ç®ããæå³ããŸãïŒãæ¬åœã«çŽ æŽããããã®ã«ãªããŸãã Saltã«ã¯å€ãã®æ©èœããããããéåžžãSaltãAnsibleãšæ¯èŒãããšãSaltãã¡ã³ã¯ãã¯ããããããç§ãã¡ã«ãšã£ãŠã¯ãã£ãšå€ãã®ããšãããŸãããšèšããŸãã StackStormãšåæ§ã«ãããã¯Saltã«å¯ŸããŠãè³æã«ãå察ã«ãæ©èœããŸãã é±å±±ããç©ç©ïŒçµæ¶ïŒãæã¡èŸŒãããã«èšã£ããªããããŒã«ãã³ã®å°èª¬ãæå³ãããšæããŸãããå¡©ã®çšèªïŒå¡©é±å±±ïŒãå¡©ã®çšèªã§ããããšããã«ããã¹ãŠãæããã«ãªããŸãã
èšèš
Saltã¯ããªã¢ãŒãããŒããŸãã¯ãããªã³ã§ã³ãã³ããšã¯ãšãªããŒã¿ããªã¢ãŒãã§å®è¡ããããã®åæ£ã·ã¹ãã ãšããŠçãŸããŸããã ãªã¢ãŒãå®è¡ã¯ãä»»æã®éžæåºæºïŒã ã¿ãŒã²ãã£ã³ã° ãïŒã«åŸã£ãŠãåå¥ã®ããŒããŸãã¯ã°ã«ãŒãã§å®è¡ã§ããŸãã
Saltã¯ãæå®ãããç¶æ ã®ãªã¢ãŒããã¹ãããµããŒãã§ããæ§æ管çã·ã¹ãã ã«æ¡åŒµãããŸããïŒããšãã°ãç¹å®ã®ããã±ãŒãžããããã«ã€ã³ã¹ããŒã«ãããç¹å®ã®ãµãŒãã¹ãå®è¡ãããŠããããšã確èªããŸãïŒã ãœã«ãã«ã¯å€ãã®ã³ã³ããŒãã³ãããããäœããèŠéãããšç¢ºä¿¡ããŠããŸãïŒ
- ãœã«ããããªã³ãšéä¿¡ããããã®åºæ¬ãµãŒãã¹ãå®è¡ãããã¹ã¿ãŒãµãŒããŒã ãŸãããããšãããªã³ã®éã§æå·åããããã®ããŒã¹ãã¢ãå«ãŸããŠããŸãã
- ãããªã³ã¯ãããŒã«ã«å®è¡ããã³ãã¹ã¿ãŒãšã®éä¿¡ã«ãœã«ãã®ãã€ã¯ãããŒãžã§ã³ã䜿çšãããšãŒãžã§ã³ãã§ãã
ãšã³ãžã³-ãŸããSaltãšã³ãžã³ïŒå¡©ãšã³ãžã³ïŒ-ãããã¯ãé·æéå®è¡ãããSaltã§åäœããå€éšããã»ã¹ã§ãã
- ç¶æ ãŸãã¯åŒ -ãããªã³ãèšå®ããããã®YAMLããã³ãã³ãã¬ãŒãããŒã¿ãå«ããã¡ã€ã«ã ãã³ãã¬ãŒããšã³ãžã³ãéåžžã«æè»ã§ãã Jinjaã®ãµããŒãã«éå®ãããŸãããããã§ã¿ãgenshiãmakoïŒPuppetã®çµéšããã人ã«ãšã£ãŠéåžžã«éèŠïŒããŠã§ã³ããŒããŸãã¯çŽç²ãªPythonããããµããŒãããŸãã
ãããªã³ïŒãããã·ãŸãã¯ã¬ã®ã¥ã©ãŒïŒã¯ãã°ã¬ã€ã³ïŒã°ã¬ã€ã³ãã¯ãªã¹ã¿ã«ïŒããã©ãŒïŒãã©ãŒãã³ã©ã ïŒããŸãã¯èå¥åã䜿çšããŠã¢ãã¬ã¹æå®ã§ããŸãã SQLã¯ãšãªãKVPãªããžããªã®ãããªãã®ã«åºã¥ããŠç¬èªã®ã¿ãŒã²ãããäœæããæ©èœã ãã§ãªããã¿ãŒã²ãã£ã³ã°çšã®ãã©ã°ã€ã³ããããŸãã
ç©ç© -ãœã«ãã«ã¯ãããŠã³ã¹ããªãŒã ã·ã¹ãã ã«é¢ããæ å ±ãååŸããããã®ã€ã³ã¿ãŒãã§ã€ã¹ãå«ãŸããŠããŸãã æ å ±ã®ãç²ãã§æ§æããããå¡©ãã§ããããããç²ãã€ã³ã¿ãŒãã§ãŒã¹ãšåŒã°ããŸãã ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããã¡ã€ã³åãIPã¢ãã¬ã¹ãã«ãŒãã«ãOSã¿ã€ããã¡ã¢ãªãããã³ä»ã®å€ãã®ã·ã¹ãã ããããã£ã®ã°ã¬ã€ã³ãåéãããŸãã ã°ã¬ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ã¯ãSaltã¢ãžã¥ãŒã«ããã³ã³ã³ããŒãã³ãã§äœ¿çšã§ãããããå¿ èŠãªãããªã³ã³ãã³ãã¯ããããã®ã·ã¹ãã ã§èªåçã«äœ¿çšå¯èœã«ãªããŸãã
- Pillarsã¯ããããªã³ã«åæ£ãããã°ããŒãã«ãªå€ãæäŸããããã«èšèšãããSaltã€ã³ã¿ãŒãã§ãŒã¹ã§ãã Pillarã¯ãJSONãYAMLããŸãã¯ãã®ä»ã®å¿ é ã®èªç±åœ¢åŒã®ããŒã¿ãªãœãŒã¹ã§ããããã¡ã€ã«ãŸãã¯å€éšã«ä¿åã§ããŸãã ããã¯ãå ±éã®ããŒã¿ãŠã§ã¢ããŠã¹ã圹ç«ã€ä»ã®ã·ã¹ãã ïŒããšãã°ãITSMããªãœãŒã¹ã¬ãžã¹ããªïŒãšçµ±åã§ããåºæã®Saltããããã£ã§ãã
ããŒã¿ãæœåºããããã«ããããªã³ããã®ããŒã¿ã䜿çšããŠããããããœã«ããã€ã³ ïŒãœã«ããã€ã³ïŒã«ä¿åããããšãã§ããŸãã å°æ¥ããã®ããŒã¿ã¯ããã³ãã¬ãŒãã«åºã¥ãç¶æ ã®æ§æãªã©ãä»ã®ã¿ã¹ã¯ã§äœ¿çšã§ããŸãã ïŒYAMLã®ã¿ããµããŒãããïŒAnsibleãšã¯ç°ãªããç°ãªã圢åŒã§å®è£ ã§ããŸãã
建ç¯
ãœã«ãã¢ãŒããã¯ãã£ã¯ããã€ãŒã«ãããšã¹ããŒã¯ïŒãã¡ã³æ§é ïŒã®åçã«åºã¥ããŠããŸãã éåžžã«å€§èŠæš¡ãªå±éã§ã¯ãããã€ãã®ãŠã£ã¶ãŒãã䜿çšããŸãããããã¯ãã£ãã«èµ·ãããŸããã ãŠã£ã¶ãŒãã¯ãZeroMQã¡ãã»ãŒãžãã¹ã軜éã§ãããããæ°åã®ããŒãã«ç°¡åã«æ¡åŒµã§ããŸãã ãã®ä»ã®å±éã¢ãã«ïŒ
- ãŠã£ã¶ãŒããªãã®ã€ã³ã¹ããŒã«ã
- ã·ã³ãžã±ãŒãã®å©ããåããŠçžäºæ¥ç¶ãããéå±€ãã¹ã¿ãŒã
ãŠã£ã¶ãŒãã«ã¯ãéåžžãå
±æã¹ãã¬ãŒãžããªã¥ãŒã ã«é
眮ãããã¹ããŒã¿ã¹ãã¡ã€ã«ãå«ãŸããŠããŸãã ã¿ãŒã²ãã£ã³ã°ã䜿çšããŠãæ§æçšã®ãµãŒããŒã°ã«ãŒããšå±éçšã®ç°å¢/ã¢ããªã±ãŒã·ã§ã³ãå®çŸ©ã§ããããã«ãããªãŒãã¥ãŒã§æ§æãããŸãã
ã€ãã³ãããŒã¹ã®Saltã·ã¹ãã ã¯ããŒã³ã³ã䜿çšããŸãã StackStormã»ã³ãµãŒããã³ããªã¬ãŒã·ã¹ãã ãšåæ§ã«ãSaltããŒã³ã³ã¯ã¡ãã»ãŒãžãã¹ã§ã€ãã³ããããªã¬ãŒãããã®åŸããªã¢ã¯ã¿ãŒïŒãã¹ã¿ãŒïŒã§åŠçã§ããŸãã éåžžãã€ãã³ããããªã¬ãŒããããŒã³ã³ã®èåŸã§ç¶æ ãŸãã¯å®è¡ã³ãã³ããã¢ã¯ãã£ãåãããããããªã¢ã¯ã¿ãŒã®ã«ãŒã«ã¡ã«ããºã ã¯StackStormãšæ¯èŒãããšããªãç²éã§ãã ãã ããããŒã³ã³ã¯ãããªã³ã§åäœããããããµãŒããŒã§ã€ãã³ããæ€åºãããå Žåããã¹ãŠãéåžžã«æ確ã§ãã StackStormãšAnsibleã«ã¯ãšãŒãžã§ã³ãããªããããããã¯ãŠããŒã¯ãªSaltæ©èœã«ãªããŸãã
ããªãŠã ïŒããªãŠã ïŒ-å¡©ã®è€éãªåå¿åšã¯ãå®éšãšããŠæåŸã®ãªãªãŒã¹ã«å«ãŸããŠããã ãããã ãå°æ¥ã®ãªãªãŒã¹ã§ãµããŒããããã§ããã ã Thoriumã¯ãããè€éãªã«ãŒã«ãšã€ãã³ãåéã®ãµããŒããè¿œå ããŸãã
æ¡åŒµæ§
Saltã®ãã¹ãŠã¯ãCLIã§ã©ã³ã¿ã€ã çµæã衚瀺ããã¢ãžã¥ãŒã«ã«è³ããŸã§æ¡åŒµå¯èœã§ãã ããã¯ãSaltã«ãšã£ãŠå€§ããªãã©ã¹ã§ããã¡ã€ã³ãããžã§ã¯ãã§äžŠååå²ãç¶æããå¿ èŠãªããç¬èªã®å€æŽãç°¡åã«å®è£ ã§ããããã§ãã Saltã®åæ©èœããã©ã°ã€ã³å¯èœã§ãã
æãäžè¬çãªæ¡åŒµã·ããªãªã¯ãç¶æ ã¢ãžã¥ãŒã«ã®éçºïŒãœãããŠã§ã¢ãŸãã¯ãµãŒãã¹ã®æ§ææ¹æ³ã説æããããïŒãŸãã¯å®è¡ã¢ãžã¥ãŒã« ïŒAPIãŸãã¯ã·ã¹ãã ãšå¯Ÿè©±ããããã®ã³ãŒãïŒã®éçºã§ãã ã©ã¡ãã®ã¿ã€ãã®ã¢ãžã¥ãŒã«ããæ¯èŒçå°ããªãã³ãã¬ãŒãã䜿çšããŠäœæã§ããŸããã©ã¡ããååã«ææžåãããŠãããåªããçµã¿èŸŒã¿ãã¹ãç°å¢ã䜿çšããŠãã¹ãã§ããŸãã PyTestã䜿çšããŠããŠã£ã¶ãŒãã䜿çšãããããŠã£ã¶ãŒãããŸã£ãã䜿çšããªããŠããã¢ãžã¥ãŒã«ã®ããŒããã¹ããå®è¡ã§ããŸãã çµ±åãã¹ãã«ã¯Linuxã·ã¹ãã ãå¿ èŠã§ãããããã«ãŒã¹ãã«ãã»ãšãã©äœ¿çšããã«OSXã§ã¢ãžã¥ãŒã«ãå®è¡ããããšãã§ããŸãïŒStackStorm with Ansibleã®å Žåã®ããã«ãWindowsã¯åé¡å€ã§ãïŒã
ã¹ã¿ã³ãã¢ãã³ããã±ãŒãžãç¶æããããGitHubã®Saltãããžã§ã¯ãã«çŽæ¥è²¢ç®ããããšãã§ããŸãã , . 3-5 , , Salt « », .
Salt , SPM , (state files). , , ( ).
Salt . - . ( Salt), , , .
«Salt Open» â , "Salt Enterprise", , :
- - , , LDAP;
- ServiceNow, ServiceNow ITSM;
- RBAC LDAP ();
- «Enterprise API», Enterprise REST API.
Salt , ZeroMQ , , Salt. Salt « ». - â â , SSH, HTTP . , , . Puppet ( , ), , , , . , . 40 . -, Python, . Salt SaltConf.
:
- JunOS (Juniper);
- NXOS (Cisco);
- Cisco NSO ( NETCONF Cisco);
- NAPALM.
Salt NAPALM Cloudflare. NSO NAPALM , NSO Cisco, , .
NAPALM Salt
- Salt , (
salt-ssh
). - ZeroMQ.
- Windows, Linux .
- (, LinkedIn) .
- Salt API- .
匱ç¹
- , , .
- , . . pip-.
ãããã«
?
. Salt StackStorm . StackStorm , (), , , . Salt â , , . . Ansible ( ) .
, Ansible , ( Brocade StackStorm) . , Ansible . NAPALM NSO StackStorm, Salt , Arista, JunOS (Juniper), Cisco APIC-EM, NXOS ..
Ansible â (, , ). CLI - . (, ), , . , , .
Salt , . Hashicorp Vault, . SQL, , , « ». , , .
å®å šæ§
Ansible Salt, Salt , Ansible SSH . Ansible, , , (, ). Salt . , grains . StackStorm MongoDB, , , , .
ãã¬ãŒãã³ã°
, , . Salt Ansible , StackStorm â . Salt (RedHat) Ansible , StackStorm â (). Salt Ansible PluralSight, .
å èš±
Salt, StackStorm Apache-2, Ansible â GPLv3. OSS, - «TLDR Legal». Salt SuSE ( - OSS).
( ), Ansible DevOps . , Ansible , Salt StackStorm. DevOps , , .
?
, . , , DevOps, , , .
, , , â .
: Salt, StackStorm, Ansible .
Dimension Data, , , Python, opensource, .