ÅäÖùÜÀí×÷Ϊ»ù´¡Ê¹ÏÖ´ú»ù´¡ÉèÊ©³ÉΪ¿ÉÄÜ¡£ÔÚÈκÎÔËάÍŶӵŤ¾ßÏäÖУ¬¶¼ÐèÒªÄÇЩʵÏÖÅäÖùÜÀíµÄ¹¤¾ß£¬ÉõÖÁ¶ÔÓںܶ࿪·¢ÍŶÓÒ²ÊÇÈç´Ë¡£¾¡¹ÜËùÓеŤ¾ßÖ¼ÔÚ½â¾öͬÑùµÄ»ù±¾ÎÊÌ⼯£¬µ«ËüÃÇ×ñÑÁ˲»Í¬µÄ¿´·¨£¬²¢±íÏÖ³ö²»Í¬µÄÌØµã¡£ÎÊÌâÔÚÓÚÈçºÎÑ¡³öÊʺϸ÷¸ö×éÖ¯¾ßÌåÇé¿öµÄ×î¼Ñ¹¤¾ß¡£
±¾ÎÄ×÷Ϊ¸ÃϵÁеÄÒ»²¿·Ö£¬Ö¼ÔÚ½éÉܵ±Ç°Êг¡ÉÏ´æÔڵIJ¿·ÖÅäÖù¤¾ß£¬ÒÔ¼°¸÷¸ö¹¤¾ß±³ºóµÄÔÀí£¬ºÍʹËüÃDZ˴ËÍÑÓ±¶ø³öµÄÔÒò¡£Äú¿ÉÒÔÔÚÕâÀï¶©ÔÄ´ËϵÁÐÐÂÎÄÕµÄÌáÐÑ¡£
лᵱǰ״̬
¼¸¸öÔÂǰ£¬ÔÚÃÉÌØÀû¶ûPythonºÍDevOpsÓû§×éµÄÁªºÏ»áÒéÉÏ£¬ÎÒ×öÁËÒÔϱ¨¸æ£º¿ÉÓÃÓÚÅäÖùÜÀíµÄ¶àÖÖ¿ÉÑ¡¹¤¾ßÏî¡£²»ÂÛÊÇ×Ô¼º¿ª·¢£¬»¹ÊÇ´Ó¿ªÔ´ÖлñÈ¡£¬Òà»òÊÇÉÌÒµ¹ºÂòÀ´µÄ£¬´ó¶àÊýϵͳ¹ÜÀíÔ±¡¢¿ª·¢ÈËÔ±ºÍITÔËάר¼Ò¶¼Óõ½Ò»Ð©¹¤¾ßÓÃÓÚ×Ô¶¯»¯»ù´¡ÉèÊ©ºÍÅäÖÃËùÓз½ÃæÒÔÈ·±£¸÷¼¼ÊõÍê³ÉÎÒÃÇËùÆÚ´ýµÄ¹¤×÷¡£Ôڸñ¨¸æÖУ¬ÎÒÊÔͼΪÄÇЩ×îÁ÷ÐеÄÑ¡ÏîÌṩ¿Í¹ÛµÄ¿´·¨¡£µ«ÕâҲȡ¾öÓÚÄãµÄ×Éѯ¶ÔÏó¼°Æä˼ά·½Ê½£¬»¹ÓÐËûÃǵĹÜÀí¶ÔÏ󣬼¸ºõÿ¸öÈ˶¼ÓÐ×Ô¼ºµÄÆ«ºÃ¡£
ÔÚÒÔÍùµÄ¼ÆËãÈÕ×ÓÀһ°ã¹«Ë¾Ö»Ðèά»¤ÉÙÁ¿·þÎñÆ÷£¬ITÈËԱͨ¹ýƵ·±µØÊÖ¶¯µ÷Õû¼°ÖØÐµ÷ÕûÕâЩ·þÎñÆ÷¾Í¿ÉÒÔ±£Ö¤ÆäLOLcatsÍøÕ¾Õý³£Æ½ÎȵØÔËÐС£
µ«×Ô´ËÖ®ºóºÜ¶àÇé¿ö¶¼·¢ÉúÁ˱仯£¬ÓÈÆä×î½üÕ⼸Äê±ä»¯Ìرð´ó¡£ÏÖÔÚ´óÐÍÊý¾ÝÖÐÐĺÍÏòÍâÍØÕ¹µÄ·þÎñÆ÷¼¯ÈºÕ¼¾ÝÁËÖ÷µ¼µØÎ»£¬ÊÖ¶¯¹ÜÀí¸÷¸ö·þÎñÆ÷ÒѲ»ÔÙ¿ÉÄÜ¡£¸÷ÖÖÅäÖùÜÀí¹¤¾ß²»¶ÏÓ¿ÏÖ£¬¾¡¹ÜÈç´Ë£¬¼´Ê¹ÊÇÔÚ¹ýȥʮÄêÀïÉè¼ÆµÄһЩ¹¤¾ßÒ²²»ÄÜÊÊӦĿǰÕâÖÖ¹æÄ£µÈ¼¶µÄ·¢Õ¹¡£
SaltStackÒò´ËÓ¦Ô˶øÉú¡£¾¡¹ÜÒ²ÓÐһЩ°®ºÃ½«SaltStack masterÔËÓÃÔÚRaspberry
Pi£¬»òÀûÓÃËü¹ÜÀí¼¸Ì¨ÔÚ×Ô¼ºµØÏÂÊҵķþÎñÆ÷Ëù×é³ÉµÄ¼ÒÍ¥ÍøÂ磬µ«SaltStackµÄÕæÕýÄ¿±êÊÇËٶȺ͹æÄ£¡£Õâ¾ÍÊÇΪʲôLinkIn¡¢WikiMediaºÍGoogle¶¼ÀûÓÃËüÀ´¹ÜÀíÓÉÊýÒÔÍò¼Æ·þÎñÆ÷¹¹³ÉµÄ´óÐÍ»ù´¡¼Ü¹¹¡£Êг¡ÐèÒªµÄ²¢·ÇÊÇÁíÍâÒ»¸öÅäÖùÜÀí¹¤¾ß£¬ËüÐèÒªµÄÊÇÄÜÊʺÏÏÖ´úWeb´ó¹æÄ£»ù´¡ÉèÊ©µÄÅäÖùÜÀí¹¤¾ß¡£ÕâÆªÎÄÕÂÖУ¬ÎÒ½«Öصã·ÅÔÚʹÓÃSaltStackÀ´½øÐÐÅäÖùÜÀíÉÏ¡£
Ê×ÏÈÊÇÒ»¸ö¿ìËÙÔ¶³ÌÖ´ÐÐÆ½Ì¨
×î³õSaltStack±»Éè¼ÆÎªÒ»¸öÌØ±ð¿ìËÙ¡¢¾ßÓпÉÍØÕ¹ÐÔºÍÇ¿´óµÄÔ¶³ÌÖ´ÐÐÒýÇæ£¬Ä¿µÄÊÇΪÁËÓÐЧ¿ØÖÆ·Ö²¼Ê½»ù´¡¼Ü¹¹¡¢´úÂëºÍÊý¾Ý¡£Ëæºó£¬ÔÚÔ¶³ÌÖ´ÐÐÒýÇæÉϲ㹹½¨ÁËÅäÖùÜÀí£¬²¢Ê¹ÓÃÁËÏàͬµÄÄں˹¦ÄÜ¡£
¡°SaltStackÄÜ×öµ½Õâµã¡±ÊÇSaltÉçÇø×î³£¼ûµÄÆÀÂÛ¡£¶ÔÓÚSaltÓû§À´Ëµ£¬SaltStack¾ÍÊÇÊý¾ÝÖÐÐĵÄÈðÊ¿¾üµ¶¡£³ÖÐøÈ´ÇáÁ¿¼¶µÄSaltStack
master/minionÍØÆËΪËùÓл·¾³´øÀ´Á˹㷺µÄ¿ØÖƺ͹¦ÄÜÐÔ£¬¶øËùÓÐÕâЩ¶¼ÊÇÀ´×Ôµ¥Ò»Æ½Ì¨£¬²»´øÓеÚÈý·½ÒÀÀµ¡£
Salt masterÊǹÜÀíSalt minionsµÄÊØ»¤½ø³Ì¡£Í¬ÑùSalt minionsÒ²ÊÇÊØ»¤½ø³Ì£¬ÔËÐÐÓÚÊÜ¿ØÏµÍ³ÉÏ£¬ÓÃÓÚ½ÓÊÕÀ´×ÔSalt
masterµÄÃüÁî¡£°´SaltStackµÄÉè¼Æ£¬Ã¿¸ömasterÄÜ´¦ÀíÒ»Íò¸öminion½ø³Ì£¬µ«ÕâÒ²Ö»ÊDZ£ÊعÀ¼Æ¡£ÕâÒ»¹æÄ£¿ÉÒÔͨ¹ýÒì²½¡¢²¢ÐÐÖ¸Áî¡¢¶Ôʵʱ¹ÜÀíµÄ¿ØÖÆÒÔ¼°ÓëÈκÎÊý¾ÝÖÐÐÄϵͳµÄ¹µÍ¨À´ÊµÏÖ¡£
¶ÔÓÚ²»ÐèҪʵʱ¿ØÖÆ»ò¼«¶ËËٶȼ°¹æÄ£µÄÇáÁ¿¼¶ÓÃÀý£¬SaltStackͬÑùÒ²ÌṩÁËSalt SSH¡°ÎÞ´úÀí¡±Ä£Ê½µÄϵͳ¹ÜÀí¡£
´ËÍ⣬Զ³ÌÖ´ÐкÍÅäÖùÜÀí½áºÏÔÚÒ»Æð»á¸üºÃ¡£ÒòΪ±Ë´Ë¶¼ÐèÒª¶Ô·½ÔÚijһʱ¿Ì¿ªÊ¼ÎªÆäÌá¹©ÕæÕýµÄ»ù´¡ÉèÊ©×Ô¶¯»¯ºÍ¿ØÖÆ¡£SaltStackƽ̨ΪÀàËÆ³ÖÐø´úÂ벿Êð»ò×Ô¶¯ÍØÕ¹×ÊÔ´µÈʼþÇý¶¯ÐÐΪÌṩÁËSalt
Reactorϵͳ¡£
ÏëÒª»ù±¾Àí½âSaltStackʼþϵͳÔòÐèÒªÏÈÀí½âSaltStack reactorϵͳ¡£Ê¼þϵͳÊDZ¾µØZeroMQ
PUB½Ó¿Ú£¬ÓÃÓÚ´¥·¢SaltStackʼþ¡£¸Ãʼþ×ÜÏßÊǸö¿ª·Åϵͳ£¬ÓÃÓÚ¸øSaltStackºÍÆäËüϵͳ·¢ËÍÕë¶Ô¸÷¸ö²Ù×÷µÄÌáʾÐÅÏ¢¡£¸ÃʼþϵͳËù´¥·¢µÄʼþ´øÓÐÊ®·ÖÌØ¶¨µÄ±ê×¼¡£ËùÓÐʼþ¶¼´øÓбêÇ©¡£¸Ãʼþ±êÇ©ÔÊÐí¶Ôʼþ½øÐпìËٵĶ¥²ã¹ýÂË¡£³ýÁ˱êÇ©£¬ËùÓÐʼþ»¹ÓµÓÐÊý¾Ý½á¹¹¡£¸ÃÊý¾Ý½á¹¹ÊÇÒ»¸ö°üº¬¸ÃʼþÐÅÏ¢µÄĿ¼¡£
SaltStack reactorϵͳ´¦ÀíSaltStackʼþ£¬²¢»ùÓÚÂß¼ÒýÇæÖ´ÐÐÃüÁ´Ó¶øÔÊÐíʼþ´¥·¢ÐÐΪ¡£SaltStackÄÜ´¦ÀíºÍÏìÓ¦À´×Ô±¾ÉíºÍÆäËüÀàËÆJenkinsµÈϵͳµÄʼþ¡£
½üÆÚHearbleed©¶´¾ÍÊǸöºÜºÃµÄÀý×Ó£¬ËüչʾÁËÎÒÃǵĿͻ§ÈçºÎͨ¹ýʹÓÃSaltStack¿ØÖÆ»ù´¡¼Ü¹¹µÄËùÓеãµãµÎµÎ¡£SaltStackÒÔºÁÃëËÙ¶È¿çÔ½Õû¸ö´óÐÍ»ù´¡¼Ü¹¹£¬±»ÓÃÓÚÕï¶ÏºÍÐÞ¸´Heartbleed¡£±ÈÈ磺À´×ÔWebPlatform.orgºÍWikiMediaµÄÕâÐ©ÍÆÎÄÇ¿µ÷ÁËSaltStackÔÚ×÷³öÕâЩÐÞÕýʱµÄ¼òµ¥ÐÔ£º
ÔÚ¶ą̀·þÎñÆ÷ÉÏ´òOpenSSLµÄ©¶´²¹¶¡°ü£¿Ö»ÒªÊäÈësalt ¡®*¡¯pkg.install openssl¡£Êǵ쬾ÍÕâô¼òµ¥£¡Salt
StackÕæµÄÊÇÌ«°ôÁË¡£
- Renoir Boulanger £¨@renoirb£©2014Äê4ÔÂ8ºÅ
¶à¿÷ÁË#SaltStack ,WikimediaµÄheartbleed ²¹¶¡°ü°²×°µÄÏ൱¿ìËÙÇÒÈÝÒס£
- Ryan Lane£¨@SquidDLane£©2014Äê4ÔÂ8ºÅ
ÒÔÏÂSaltStackÃüÁîʹµÃÆÀ¹ÀºÍÐÞ¸´Heartbleed©¶´³ÉΪ¿ÉÄÜ£º
Salt \*pkg.install openssl refresh=True; salt \*service.restart
nginx; #devops #saltstack #heartbleed
- Dan Garthwaite(@DanGarthwaite) 2014Äê4ÔÂ8ºÅ
IMO£¬1000%ÖµµÃ£¬×îеÄ@SaltStackInc½öÔ¶³ÌÖ´Ðй¦ÄܾÍÖµµÃÓµÓС£ÃüÁîÐмì²â40̨·þÎñÆ÷ÉϵÄOpenSSL¾ÍÖ»Òª0.2Ã룡
- John Albietz£¨@inthecloud247£©2014Äê4ÔÂ10ºÅ
»ù´¡ÉèÊ©¼´Êý¾Ý£¬¶ø·Ç´úÂë
ͨ¹ýʵʩ¡°»ù´¡ÉèÊ©¼´Êý¾Ý¡±·½·¨£¬SaltStackµÄÅäÖùÜÀíѧϰºÍ²ÉÓÃÇúÏßÒѽµµÍ¡£ÔÚ²»ÎþÉüÈκι¦ÄܺÍÐÔÄܵÄÇé¿öÏ£¬¸Ã·½·¨Ïà¶Ô´«Í³¡°»ù´¡ÉèÊ©¼´´úÂ롱·½·¨´ó´ó½µµÍÁ˸´ÔÓ¶È¡£¡°»ù´¡¼Ü¹¹¼´´úÂ롱ͨ³£ÒªÇóÓû§Äܹ»Àí½â¸´ÔӵĻúÆ÷´úÂëÓïÑÔ»òÁìÓòÌØ¶¨ÓïÑÔ¡£¶øSaltStack·½·¨¿ÉÈ˹¤ÔĶÁ£¬µ±È»Ò²ÄÜÇáËɵر»»úÆ÷½â¶Á¡£
¾¡¹ÜSaltStackÊÇÓÃPythonÓïÑÔ±àд£¬µ«ÆäÅäÖùÜÀíÊÇÓïÑÔÎ޹صģ¬ÇÒʹÓÃÁ˼òµ¥¡¢ÈËÀà¿É¶ÁµÄYAMLÎļþºÍJinjaÄ£°å¡£
DevOpsºÍ¿ÉÀ©Õ¹µÄWebITÒªÇóËÙ¶È¡¢Ãô½ÝÐÔºÍͨÐÅ¡£Ñ§Ï°ÇúÏßÔ½¶Ì£¬Æä¾ºÕùÓÅÊÆ¾ÍÔ½´ó¡£¾¡¹ÜÔÚ¡°»ù´¡ÉèÊ©¼´´úÂ롱ÉÏͶ×ÊÏÔÖø£¬µ«Æäʵ²¢²»ÐèÒª£¬ÒòΪËü×è°ÁË´´ÐºͲ¿Ê𣬱¾À´²¿Êð¾ÍÓ¦ÒÔ¿ìËÙΪÔÔò¾¡¿ÉÄÜ¿ìµØ½«·þÎñÆ÷¼°ÆäÉÏÃæÔËÐеÄÈí¼þµ÷Õûµ½Îȶ¨¡¢¿ÉÖØÓúÍÉú²ú¾ÍÐ÷µÄ״̬¡£ºÎ±Ø×ø×ź½Ìì·É»úµ½½Ö½ÇÊг¡£¬Ã÷Ã÷×ß·»òÆï×ÔÐгµ¸üÈÝÒ×£¿
¼«¾ßÁé»îÐÔ
SaltStackÓɶà¸ö²»Í¬Ä£¿é²ã×é³ÉµÄ£¬È«²¿¶¼ÀûÓÃÁËÏàͬµÄ¿ìËÙͨÐÅ×ÜÏߣ¬ÕâÔÊÐíÁËÆäÓ뾡¿ÉÄܶàµÄ·þÎñÆ÷½øÐв¢ÐÐͨÐÅÒÔ֪ͨ·þÎñÆ÷Ó¦¸Ã×öʲô¡£ÕâЩÃüÁî¡¢ÀýÐгÌÐòºÍ¹¦ÄÜËù×é³ÉµÄ²ãΪÕû¸ö¼ÆËã»ù´¡¼Ü¹¹ºÍËùÓÐÊý¾ÝÖÐÐÄÄÚÈÝÌṩÁ˹㷺µÄ¿ØÖÆ¡£ÎÒÃǵĺܶàÓû§¶¼Í¨¹ýSaltStack֪ͨPuppet
manifestÓ¦¸Ã×öʲô£¬ÒòΪSaltStack¿ÉÒÔÓÃÓÚ¹ÜÀíÈí¼þ¡¢ÔÆ»òÐéÄ⻯µÄÆäËüÈÎÒⲿ·Ö¡£
ÔÚ¹ýÈ¥¼¸ÄêÀï¶ÔÓÚÑ¡ÔñÉùÃ÷ʽ»¹ÊÇÃüÁîʽ·½Ê½À´ÅäÖùÜÀí£¬Ò»Ö±´æÓз×Õù¡£¶øÎÒÃÇ£¬Ôò¡°Íù¸Ã·×ÕùÖвåÁ˸ö²æ×Ó¡±¡£SaltStack²»½ö¿ÉʹÓÃÉùÃ÷ʽÅäÖùÜÀí£¬Ò²¿ÉÒÔÓÃÓÚÃüÁîʽ¡£ÖÁÓÚÔõôÓ㬾ÍÈ¡¾öÓÚÄãÔõôÏ룬ÒÔ¼°ÄãµÄϵͳÈçºÎ±»¹ÜÀí¡£
SaltStackÅäÖùÜÀí¿ÉÒÔÒÔÃüÁîʽ·½Ê½Ö´ÐУ¬ËùÓÐÊÂÎñ½«°´¸ø¶¨Ë³ÐòÖ´ÐС£Ò²¿ÉÒÔÒÔÉùÃ÷ʽ·½Ê½Ö´ÐУ¬ÏµÍ³¾ö¶¨ÈçºÎÖ´ÐжÔÏó¼äÆ¥ÅäÓйØÁªµÄ¸÷ÊÂÎñ¡£
ÃüÁîʽÅÅÐòÊÇÓÐÏ޵쬯ձ鱻ÈÏΪ±È½ÏÈÝÒ×±àд¡£ÉùÃ÷ʽÅÅÐòÔòÇ¿´óºÜ¶à£¬Ò²¸üÁé»î£¬µ«ÍùÍù±È½ÏÄÑд¡£
SaltStackµÄ´´½¨¾ÍÊÇΪÁË×îºÃµØÊ¹ÓÃÕâÁ½ÖÖÅäÖ÷½Ê½¡£×´Ì¬ÒÔÓÐÏÞ˳ÐòÆÀ¹À£¬±£Ö¤ÁËËùÓÐ״̬×ÜÊǰ´Í¬ÑùµÄ˳ÐòÖ´ÐУ¬¶ø×´Ì¬ÔËÐÐʱȷÊÇÉùÃ÷ʽµÄ£¬Ê¹µÃSaltÄÜÍêÈ«Òâʶµ½¹ØÁª¡£Salt×ÜÊÇÒÔÓÐÏÞ·½Ê½Ö´ÐÐ״̬£¬ÕâÒâζ×Ų»ÂÛÔËÐÐϵͳÔõÑù£¬ËüÃǶ¼½«ÒÔÏàͬµÄ˳ÐòÖ´ÐС£¾¡¹ÜÈç´Ë£¬SaltStack½üÆÚÌí¼ÓÁË״̬×Ô¶¯ÅÅÐòÕâһѡÏʹµÃ״̬Äܰ´ÆäÔÚSalt״̬ÎļþÖÐËù¶¨ÒåµÄ˳Ðò±»ÆÀ¹À¡£
ÆÀ¹À˳ÐòÔÊÐíÎÒÃǼòµ¥µØ»ñ֪״̬½«ÒÔʲô˳ÐòÖ´ÐУ¬µ«ÖµµÃ×¢ÒâµÄÊÇ£¬ÔÚ±ØÒªÊ±ÏµÍ³»á¸²¸ÇÎļþÖж¨ÒåµÄÅÅÐò¡£ÏÂÃæ½«ÒªÃèÊöµÄÅÅÐòÑ¡ÏîÒ²¿ÉÒÔ¸²¸ÇSalt״̬ÎļþÖÐËù¶¨ÒåµÄ״̬˳Ðò¡£
µ±SaltStackÌṩhook£¨±ÈÈ磺¡°on fail¡±»ò¡°on change¡±£©µ½ÉùÃ÷ʽ·¾¶ÖÐʱ£¬Æä¼Ü¹¹ËùÔ̺¬µÄÄÜÁ¿ÔÊÐíÍùÅäÖùÜÀíÔËÐйý³ÌÖвåÈëÀýÐгÌÐò£¬ÕâÑù¼´Ê¹µÚÒ»´Îʧ°ÜÁË£¬Ò²¿ÉÄÜÔÚ»»ÖÖ·½Ê½³¢ÊÔºó³É¹¦¡£SaltStackµÄÏȾöÌõ¼þ¾ÍÊÇÆäÖÐÒ»¸öÀý×Ó¡£ÏȾöÌõ¼þÖ»Óе±ÏµÍ³Öн«À´ÓÐÆäËûÊÂÇé·¢Éúʱ²Å»á¶Ôϵͳ²úÉú¸Ãʼþ¡£ËüÊǸöÃݵȷ½Ê½ÄÚǶԤ²â·ÖÎö¡£Ëü»áÎÊÕâ¸öÎÊÌ⣺¡°ÎÒÊÇ·ñ¼´½«Òª²¿Êð´úÂëÁË£¿È·¶¨£¿ÄǾͰѷþÎñÆ÷´Ó¸ºÔØÆ½ºâÆ÷ÉÏжÏÂÀ´£¬»òÕß½«Apache¹Ø±Õ°É¡£µ«ËùÓÐÕâЩ²Ù×÷Ö»Óе±ÎÒ¶ÔϵͳÓÐËùÐÞ¸Äʱ·¢Éú¡£¡±»òÕßSaltStack¡°fail
hard¡±±êʶ»á½øÒ»²½ÎªÃüÁîʽÅäÖùÜÀíÌṩÄÜÁ¿£ºÏà¶ÔÓÚ·ÅÆúÀýÐгÌÐò£¬Ëü»á֪ͨÁ÷³Ì¹ØÓÚÊÂÇ鲿ÊðµÄÇé¿ö¡£
ʹÓÃSaltStackÔÚRed HatÉϰ²×°LAMP Stack
Ò»¸ö¼òµ¥µÄSaltStackÅäÖùÜÀí³¡¾°Êǰ²×°LAMP stack¡£¾¡¹ÜÔÚGitHubÉÏÓйØÓÚ¸üÍêÕû²ÉÓÃSaltStack·½°¸µÄ×é֯ʵÀý£¨https://github.com/saltstack-formulas£©£¬µ«±¾ÀýÓ¦Äܳä·ÖµØÕ¹Ê¾ÁË»ù±¾µÄ·½°¸£¬ËüÊÇijһָ¶¨×ÊÔ´ÅäÖùÜÀíµÄÔ¤±àдSalt״̬¡£SaltStack·½°¸ºÍ״̬¿ÉÒÔÓÃÓÚÀàËÆ¡¢£º°²×°Èí¼þ°ü¡¢ÅäÖÃºÍÆô¶¯Ò»¸ö·þÎñ¡¢ÉèÖÃÓû§»òȨÏÞÒÔ¼°ÆäËû³£¼ûÈÎÎñ¡£
ÓÉÓÚ¸ÃÀý×ÓÊÇΪ»ùÓÚLinuxµÄRed Hat»·¾³Éè¼ÆµÄ£¬ÆäÖаüº¬ÁËPython 2.6ΪÏÖÓлù´¡°²×°µÄÒ»²¿·Ö£¬ÆäLinuxºÍPython²¿·ÖÒѾÍê³ÉÁË¡£ËùÓÐÐèÒª×öµÄ¾ÍÊÇÅäÖÃÒ»¸öWebÓ¦ÓóÌÐò²¢Ê¹ÓÃApache
Web·þÎñÆ÷ºÍMySQLÊý¾Ý¿â·þÎñÆ÷¡£
¿ªÊ¼Ç°£¬ÎÒÃÇҪȷ±£/srv/salt/Ŀ¼´æÔÚÓÚ·þÎñÆ÷ÖС£
ÒòΪWebÓ¦ÓóÌÐòÐèÒªÔÚʹÓÃǰ°²×°Êý¾Ý¿â·þÎñÆ÷£¬ÎÒÃǽ«Ê×Ïȶ¨ÒåÊý¾Ý¿â·þÎñÆ÷¡£
# /srv/salt/mysql.sls mysql: pkg.installed: - name: mysql-server service.running: - enable: True - require: - pkg: mysql-server |
ÓÉÓÚ¸ÃÀý×Ó³ýÁËÉùÃ÷Í⣬²¢²»°üº¬ÆäËüÈκÎÎļþ¡£ÎÒÃÇ¿ÉÒÔ¼òµ¥µØ½«Æä±£´æÎª:/srv/salt/mysql.sls¡£µ«ÊÇApacheµÄ°²×°±È½Ï¸´ÔÓ£¬ÒòΪËü°üº¬ÁËÒ»¸öÅäÖÃÎļþ¡£¸ÃÎļþͨ¹ýʹÓÃfile.managed¹¦Äܱ»¿½±´µ½web·þÎñÆ÷ÉÏ£¬Ö§³ÖÁËÏñtemplatingÕâÑù¼ÓÇ¿µÄ¹¦ÄÜ¡£ÎªÁËÊÊÓ¦ÕâÖÖÇé¿ö£¬ÎÒÃÇͨ¹ýÔÚ/srv/salt/Ŀ¼Ï´´½¨apache/×ÓĿ¼£¬²¢´´½¨ÒÔÏÂÎļþ£º
# /srv/salt/apache/init.sls httpd: pkg.installed: - name: httpd - file: httpd service.running: - enable: True - require: - pkg: httpd file.managed: - name: /etc/conf/httpd/httpd.conf - source: salt://httpd/httpd.conf - require: - pkg: httpd |
ÓÉÓÚ¸ü¶àµÄÎļþ½«Ìí¼Óµ½¸Ã·½°¸ÖУ¬ÎÒÃÇ´´½¨ÁíÍâÒ»¸öĿ¼À´±£´æËüÃÇ¡£¸ÃĿ¼ÔÚ°üº¬Ò»¸öinit.slsÎļþµÄͬʱ£¬Ò²°üº¬±»¹ÜÀíµÄhttpd.confÎļþ¸±±¾¡£ÕâЩÎļþÏÖÔÚ»áÓëtop.slsÎļþ°ó¶¨ÔÚÒ»Æð¡£
# /srv/salt/top.sls base: web*: - apache db*: - mysql |
¸ÃÎļþ¾ÍÏñ½ºË®Ò»Ñù½«ÕâЩ״̬Á¬½ÓÔÚÒ»Æð£¬¶¨ÒåÁËÿ¸ö·þÎñÆ÷ÉÏËùÓ¦ÓõÄ״̬¡£ÐèҪעÒâµÄÊǸÃÎļþ²¢Ã»ÓÐÉæ¼°ÈκξßÌå·¾¶¡£ÒòΪtop.sls¶¨ÒåÁËÕâÀàÐÅÏ¢£¬Òò´ËSaltStack»áµ½top.slsĿ¼Ï²éÕÒ¡£µ±SaltStackÔÚtop.slsÖÐÕÒµ½ËùÐèÃû³Æ£¬½ÓÏÂÀ´Ëü»á²éÕÒÓëÆäÃû³ÆÏà¶ÔÓ¦µÄ.slsÎļþ£¨±ÈÈ磺mysql.sls£©»òÕßĿ¼£¬¸ÃĿ¼°üº¬Ò»¸öinit.slsÎļþ£¨±ÈÈ磺apache/init.sls£©¡£
¸Ã¶¨ÒåÈ·±£ÁËËùÓÐÃû×ÖÒÔ¡°web¡±Îª¿ªÍ·µÄ·þÎñÆ÷£¨±ÈÈ磺web01£¬ÉõÖÁÊÇweb01.example.com£©¶¼»áÓÐÖ¸¶¨µÄApache״̬£¬»¹ÓÐÈκÎÃû×ÖÒÔ¡°db¡±¿ªÍ·µÄ·þÎñÆ÷£¨±ÈÈ磺db01»òdb01.example.com£©¶¼»áÓÐÖ¸¶¨µÄMySQL״̬¡£
½«ÕâЩ״̬ӦÓõ½ËùÓзþÎñÆ÷ÉÏ£¬ÎÒÃÇÐèÒª¿ªÊ¼ÔËÐÐÒ»¸öhighstateÃüÁî:
salt ¡®*¡¯ state.highstate |
HighstateÊÇ״̬Êý¾ÝµÄ½áºÏ£¨³ÌÐò°ü¡¢·þÎñºÍÎļþµÈ£©£¬Ëü½«Ó¦Óõ½Ä¿µÄϵͳÖС£
È»¶ø£¬ËüÒ²Ìá³öÁËÁíÒ»¸öÌôÕ½¡£ÕýÈçÎÒÉÏÃæËù˵µÄ£¬ÕâЩweb·þÎñÆ÷Èç¹ûûÓпɹ¤×÷µÄÊý¾Ý¿â·þÎñÆ÷µÄ»°£¬»ù±¾ÉÏÊÇÅɲ»ÉÏʲôÓó¡¡£¸Ã³¡¾°ÔÚÁ½Õß¶¼´æÔÚµÄÇé¿öÏ¿ÉÒÔÕý³£¹¤×÷£¬ÎÒÃÇÖ»ÒªÍù×éºÏÖÐÌí¼Ó·þÎñÆ÷¾Í¿ÉÒÔÁË¡£µ«¶ÔÓÚÒ»¸ö¸É¾»µÄ»·¾³£¬Ã»ÓÐÈκηþÎñÆ÷µÄÇé¿ö¸ÃÔõô°ì£¿
Õâʱºò¾Í¸ÃÂÖµ½SaltStackÁ÷³ÌÒýÇæÉϳ¡ÁË¡£¿ÉÒÔͨ¹ý¶¨Òå״ִ̬ÐÐ˳ÐòÀ´¶¨Òå»úÆ÷²¿Êð˳Ðò£º
# /srv/salt/myorchestration.sls db_setup: salt.state: - tgt: ¡®db*¡¯ - highstate: True web_setup: salt.state: - tgt: ¡®web*¡¯ - highstate: True - require: - salt: db_setup |
Õâ¸öÎļþ¶¨ÒåÁËÎÒÃÇ֮ǰ¶¨ÒåµÄweb״ֻ̬ÓÐÔÚÎÒÃÇËù¶¨ÒåµÄÊý¾Ý¿â״ִ̬ÐÐÍêºó²ÅÄÜÖ´ÐС£Æô¶¯¸Ã״̬£¬¿ÉÒÔÖ´ÐУº
salt-run state.orchestrate myorchestration |
×¢Ò⣺ÔÚsalt 0.17.xÀ¸ÃÃüÁîΪ£º
salt-run state.sls myorchestration |
ѰַÅäÖÃÆ¯ÒÆ
ÉÏÊö³¡¾°¶Ô³õʼÅäÖÃÒ»×é·þÎñÆ÷ÊÇ¿ÉÐеġ£Èç¹û°´¼Æ»®Ö´Ðеϰ£¬Ëü»áͨ¹ýÅäÖÃÆ¯ÒÆ»º½âÎÊÌ⣺Èç¹û·þÎñÆ÷ÉÏhttpd.confÎļþ±»ÐÞ¸ÄÁË£¬SaltStack»á½«Æä·ÅÖûØËüÐèÒªÔڵĵط½£¬È»ºó»ã±¨¸øÓû§¶¼Òª×öÄÇЩÐ޸ģ¬ÒԻص½ÕýÈ·µÄ״̬¡£µ«³ÌÐò°üµÄ°æ±¾Ôõô°ìÄØ£¿
µ±pkg.installed״̬±»ÉùÃ÷ºó£¬SaltStack»á¼ì²âµ×²ã°ü¹ÜÀíÆ÷À´²é¿´¸Ã³ÌÐò°üÊÇ·ñÒѾ°²×°¡£Èç¹ûÊÇ£¬ÄÇô¸Ã״̬¾ÍÒѾʵÏÖÁË£¬²»ÐèÒªÈκνøÒ»²½ÐÐΪ¡£È»¶ø£¬Èç¹û¸Ã³ÌÐò°ü»¹Ã»±»°²×°µÄ»°£¬SaltStackÒ²»á֪ͨ°ü¹ÜÀíÆ÷°²×°¸Ã³ÌÐò°ü£¬Í¨³£»á¼ì²â¸Ã³ÌÐò°ü(ÒÀ¾ßÌå»·¾³¶øÒì)µÄ×îпÉÓð汾£¬È»ºó°²×°¡£
µ«Ëæ×Åʱ¼äµÄÍÆÒÆ£¬Õâ»áÔì³ÉһЩ·þÎñÆ÷ÉϵijÌÐò°üËù´ø°æ±¾²»Ò»Ñù£¬Óɴ˲úÉúµÄÎÊÌâÒ²½«ÄÑÒÔ¶¨Î»¡£Æä½â¾ö·½°¸¾ÍÊÇʹÓÃpkg.lastes״̬ȡ¶ø´úÖ®£¬ÕâÑù¿ÉÒÔÒ»Ö±±£Ö¤ËùÓзþÎñÆ÷ÉÏÔËÐеijÌÐò°ü°æ±¾¶¼ÊÇ×îеġ£
httpd: pkg.latest: - name: httpd |
¾¡¹ÜÈç´Ë£¬ÕâÒ²¿ÉÄܲúÉúÎÊÌâ¡£Ö»ÒªÓÐа汾³öÀ´£¬ËùÓзþÎñÆ÷¶¼»áÊÔͼÏÂÔØ°²×°¡£Èç¹ûÄãûÓÐÔ¤Áϵ½»áÓÐа汾£¬ÇÒ»¹Ã»ÓÐʱ¼äÖ´ÐÐÄÚ²¿²âÊԵϰ£¬Õâ»áÔì³ÉºÜÑÏÖØµÄÎÊÌâ¡£ËùÒÔ×îºÃ»¹ÊÇËø¶¨Ä³Ò»Ìض¨°æ±¾µÄ³ÌÐò°ü±È½ÏºÃ£º
httpd: pkg.installed: - name: httpd - version: 2.2.15 |
Õâ±£Ö¤ÁËÖ»ÓÐÔÚ״̬ÉùÃ÷ÖÐÃ÷È·¸üÐÂʱ£¬°²×°°ü²Å»á±»Éý¼¶¡£
SaltStack²âÊÔģʽ
ÁíÍâÒ»¸öÖØÒªÌØÐÔÊÇÌáǰ֪µÀ¼´½«·¢ÉúµÄ±ä»¯¡£Õâµã¼òµ¥µ½Ö»ÒªÍùhighstateÃüÁîÌí¼ÓÒ»¸öÑ¡Ïî¾Í¿ÉÒÔ£º
salt ¡®*¡¯ state.highstate test=True |
µ±ÔËÐÐÓÚ²âÊÔģʽʱ£¬ÄÇЩÒѸ÷¾Í¸÷λµÄ״̬½«ÏÔʾΪÂÌÉ«£¬¶øÄÇЩ»¹Î´Ö´ÐеÄ״̬½«ÏÔʾΪ»ÆÉ«¡£ºÜ¶àÓû§¾õµÃÔÚʵ¼ÊÖ´ÐÐǰ£¬Äܹ»¿´µ½ËùÐèÖ´ÐÐµÄ±ä»¯ÌØ±ðÖØÒª¡£
µ±È»£¬²âÊÔģʽҲ¿ÉÒÔÓÃÔÚÒµÎñÁ÷³ÌÒýÇæÖУº
salt-run state.orchestrate myorchestration test=True |
¸ÃÃüÁî»á°´myorchestration.slsÎļþÖж¨ÒåµÄ˳ÐòÆÀ¹Àhighstate£»Óë´Ëͬʱ£¬Èç¹ûÃüÁîÔÚ²âÊÔģʽÒÔÍâÔËÐеϰ£¬Ò²»áÒÔÏàͬµÄ·½Ê½ÏÔʾ½«×ö³öµÄÐ޸ġ£
×ܽá
SaltStackÔÚÅäÖùÜÀíÉÏÓÐÃ÷ÏÔµÄÖØµãÍ»ÆÆ£¬µ«ÎÒÃÇÒ²²»¸Ò´ò°üƱ¡£SaltStackѧϰºÍÔËÐÐÆðÀ´¶¼ºÜ¼òµ¥£¬ÎÒÃǵÄÉçÇøÒ²·Ç³£ÓлîÁ¦ºÍ°ïÖú£¬¿ÉÒÔһ·°ïÖúÄÇЩ×Ô¼º¶¯ÊÖµÄÈË£»¶ÔÓÚÐèÒª°ïÖúµÄ¹«Ë¾£¬SaltStack
EnterpriseÌṩÁËÏàÓ¦µÄSaltStack·þÎñºÍÖ§³ÖÍŶӡ£ |