Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
SaltStack: Äܹ»Áé»îÇÒ¿ÉÀ©Õ¹µÄÅäÖùÜÀí
 
×÷Õß Joseph Hall £¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-08-26
  4129  次浏览      31
 

ÅäÖùÜÀí×÷Ϊ»ù´¡Ê¹ÏÖ´ú»ù´¡ÉèÊ©³ÉΪ¿ÉÄÜ¡£ÔÚÈκÎÔËάÍŶӵŤ¾ßÏäÖУ¬¶¼ÐèÒªÄÇЩʵÏÖÅäÖùÜÀíµÄ¹¤¾ß£¬ÉõÖÁ¶ÔÓںܶ࿪·¢ÍŶÓÒ²ÊÇÈç´Ë¡£¾¡¹ÜËùÓеŤ¾ßÖ¼ÔÚ½â¾öͬÑùµÄ»ù±¾ÎÊÌ⼯£¬µ«ËüÃÇ×ñÑ­Á˲»Í¬µÄ¿´·¨£¬²¢±íÏÖ³ö²»Í¬µÄÌØµã¡£ÎÊÌâÔÚÓÚÈçºÎÑ¡³öÊʺϸ÷¸ö×éÖ¯¾ßÌåÇé¿öµÄ×î¼Ñ¹¤¾ß¡£

±¾ÎÄ×÷Ϊ¸ÃϵÁеÄÒ»²¿·Ö£¬Ö¼ÔÚ½éÉܵ±Ç°Êг¡ÉÏ´æÔڵ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·þÎñºÍÖ§³ÖÍŶӡ£

   
4129 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

ÿÈÕ¹¹½¨½â¾ö·½°¸
ÈçºÎÖÆ¶¨ÓÐЧµÄÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀíÖ÷Òª»î¶¯¼°ÊµÏÖ·½·¨
¹¹½¨¹ÜÀíÈëÃÅ
Ïà¹ØÎĵµ

ÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀí°×ƤÊé
CM09_CÅäÖùÜÀí±ê×¼
ʹÓÃSVN½øÐа汾¿ØÖÆ
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

Èí¼þÅäÖùÜÀíµÄÎÊÌ⡢ĿµÄ
Èí¼þÅäÖùÜÀí¹æ·¶
CQWeb 7.1ÐÔÄܲâÊÔÓëµ÷ÓÅÖ¸ÄÏ
ΪʲôÐèҪʹÓÃClearCase
ClearCaseÓëRTCµÄ¼¯³É
ÀûÓÃClearQuest ½øÐвâÊÔ¹ÜÀí


²úÆ··¢²¼¹ÜÀí
ÅäÖùÜÀí·½·¨¡¢Êµ¼ù¡¢¹¤¾ß
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
ʹÓÃCCÓëCQ½øÐÐÏîĿʵ¼ù
CVSÓëÅäÖùÜÀí
Subversion¹ÜÀíÔ±


ÅäÖùÜÀíʵ¼ù£¨´Ó×éÖ¯¼¶µ½ÏîÄ¿¼¶£©
ͨºÅÔº ÅäÖùÜÀí¹æ·¶ÓëÓ¦ÓÃ
ÅäÖùÜÀíÈÕ¹¹½¨¼°³ÖÐø¼¯³É
µ¤·ð˹ ClearCaseÓëÅäÖùÜÀí
ÖйúÒÆ¶¯ Èí¼þÅäÖùÜÀí
ÖйúÒøÐÐ Èí¼þÅäÖùÜÀí
Ìì½ò»ªÒíÀ¶Ìì¿Æ¼¼ ÅäÖùÜÀíÓëPvcs