Jenkins ã¦ã¼ã¶ã»ã«ã³ãã¡ã¬ã³ã¹ 2015 æ±äº¬ã«è¡ã£ã¦ãã #jenkinsja #juc2015
» Jenkins ユーザ・カンファレンス 2015 東京 日本Jenkinsユーザ会
2015å¹´æåã®èª²å¤æ´»å㯠Jenkins ãconnpass ã®ãªãã¤ã³ãã¡ã¼ã«ã« 13 æéå§ã¨ãã£ãã®ã§ã13 æãããã¦åãã£ããå·å£ããã®åºèª¿è¬æ¼ã¯ 12 æåããã ã£ãã¿ãããç¾å°ã«çãã¦ããæ°ã¥ãããã ãã©ãä»ã«ããããã人å¤ãã£ãã¿ããã§ãå°ãéå§æéãé ããã¦ããããããããã§åºèª¿è¬æ¼ãååãããã¯èããã¨ãã§ããã
ã«ã³ãã¡ã¬ã³ã¹ã®æå¾ã«ããè©«ã³ããã¦ãããããããã大è¦æ¨¡ãªã¤ãã³ãã ã¨ãªããªãéå¶ã大å¤ã ã¨æãã¾ãããéå¶ã®æ¹ã ããç²ãæ§ã§ããã
å ¨ä½ã®ææ³ã¨ãé°å²æ°ã¨ã
æ°å¹´åã«åå ãã Jenkins ã«ã³ãã¡ã¬ã³ã¹ã ã¨ãã¾ã å°å ¥ãã¦ããã¨ããã®æ¹ãå°ãªãã¦ãã©ããããå°å ¥ã§ãã¾ããã¿ãããªè©±ãä¸å¿ã ã£ãã¨æãããã©ä»æ¥åå ãã¦ã¿ã¦ãæ¢ã«ãããããã§ã¼ãºã¯éãã¦ãã¿ããªç¾å ´ã§ Jenkins 使ã£ã¦ CI ã¯ãã¦ãããã©ãããå¹æçãªã¦ã¼ã¹ã±ã¼ã¹ãç¾å ´ã§ã®å·¥å¤«ãèãã¦ã¿ãããèºãããã¨ãªã©ãä»ã®ç¾å ´ã¯ã©ããã風ã«è§£æ±ºãã¦ããã®ãããããã£ããã¨ãèãã«æ¥ã¦ã人ãå¤ãã£ãããã«æããåã»ãã·ã§ã³ã®è³ªåã§ãã質åè ãå®éã«ã©ãéç¨ãã¦ããã®ãã®ã¤ã¡ã¼ã¸ããã£ãä¸ã§å®éã«ã©ããã¦ããã®ããã¿ãããªè³ªåãå¤ãã£ãæ°ãããã
ããã¯ãJenkins åä½ã®è©±ã§ã¯ãªããChef ã Docker ãªã©ã¨ãã£ãä»ã®ãã¼ã«ã¨ Jenkins ãçµã¿åããã¦åé¡ã解決ãã¦ãããã¨ãã£ãã»ãã·ã§ã³ãå¤ãã£ããã¨ãããç¹ã«æããããã¨ãã¤ã³ãã©æ§ç¯ããªã¼ã±ã¹ãã¬ã¼ã·ã§ã³ããããã¸ã§ãã³ã°ã¨ãã£ãã¤ã³ãã©ã®åéã§ã Jenkins ãä¸å¿ã¨ãã¦ããµã¼ãæ§ç¯ã®ãã¼ã«ãã§ã¤ã³ã¨ãã¦ä½¿ããã¦ããã®ãé¢ç½ãã£ããInfrastructure as a Code ããä»ã¯ããå®éã®ç¾å ´ã§å·¥å¤«ãã¦å½ããåã®ããã«æ§ç¯ããã¦ããããJenkins ããã®ä¸ç«¯ãæ ã£ã¦ããã¨ãããã¨ãå®æã§ããã«ã³ãã¡ã¬ã³ã¹ã ã£ãã
ãJenkinsãã·ã¹ãã ã®ä¸å¿ã«ãªãã¤ã¤ããã #jenkinsja
— Kohsuke Kawaguchi (@kohsukekawa) 2015, 1æ 11
åå ããã»ãã·ã§ã³
» Jenkins ユーザ・カンファレンス 2015 東京 – セッション/LT 日本Jenkinsユーザ会
- Jenkinsããã¸ã§ã¯ãã®ç¾ç¶ã¨ã¯ã¼ã¯ããã¼
- ã¯ã¦ãªã«ãããç¶ç¶çãããã¤ã¡ã³ãã®ç¾ç¶ã¨ Docker ã®å°å ¥
- ã¯ãã¯ãããã«ãããJenkinsã®æ´»ç¨
- ãInfrastructure as a Codeã«ãããJenkinsã®å½¹å²ã ãç°å¢æ§ç¯ãç¶ç¶çã¤ã³ãã°ã¬ã¼ã·ã§ã³ãè¡ãæ代ã§ãã
- LT大ä¼
以ä¸ãããããã®ã»ãã·ã§ã³ã§æ°ã«ãªã£ããã¨ããããªã¨æã£ããã¨ãã¡ã¢ãªã©ã
Jenkinsããã¸ã§ã¯ãã®ç¾ç¶ã¨ã¯ã¼ã¯ããã¼
éä¸ããã®è´è¬ã ã£ãã®ã§ãèå³æ·±ãã£ãã¨ãããã
- Jenkins Workflow Plugin
- ãã«ãã¸ã§ããå¢ãã¦ããã¨ãå ¨ä½ã®ã¯ã¼ã¯ããã¼ãå¶å¾¡ããããªããè¤éå
- 失æããå ´åã«æåããããç´ãããã®ã¯å¤§ããªæéã®ãã¹
- ã¸ã§ãã®åå©ç¨
- 人ã®æ¿èªã»å¤æãã¤ã³ã¿ã©ã¯ã·ã§ã³ãéä¸ã«å ¥ã
- ãããã®åé¡ã解決ããã®ã«ãGroovy ã«ãã DSL ã§ã¯ã¼ã¯ããã¼ãè¨è¿°ã§ããããã«ä½ãããæ°ãããã©ã°ã¤ã³
- ãã§ãã¯ãã¤ã³ãããã®åå®è¡
- ããã°ã©ã ã®å¶å¾¡æ§é ã使ã£ã¦ã¯ã¼ã¯ããã¼ãè¨è¿°
- ã¸ã§ãã®å®è¡éä¸ã«äººéã¨ã®ã¤ã³ã¿ã©ã¯ã·ã§ã³ãã§ããããã«
- é常ã®ããªã¼ã¹ã¿ã¤ã«ãã«ãã¨åãããã«è¨å®ãã§ãã
- ãã«ãã¹ã¯ãªããã GitHub ãªã©ã§ç®¡çããJenkins ã¯ã¹ã¯ãªãããå®è¡ããã ã
ã¯ã¦ãªã«ãããç¶ç¶çãããã¤ã¡ã³ãã®ç¾ç¶ã¨ Docker ã®å°å ¥
ãã¹ãã«ã¤ãã¦
- ã§ããã ãæ¬çªã«è¿ãç¶æ ã§ãã¹ã
- éçºè ã®ãã¹ãã¯ãã¼ã«ã«ã§å®æ½ãããã©ãããã®ã§ã©ããã¦ããµãããã¡
- æ¬çªã«è¿ãç¶æ ã®ãã¹ã㯠CI ãµã¼ãã§æ ä¿
Jenkins ã®éç¨æ¹é
- è¨å®ãè¤éã«ããªããç§ä¼ã®ã¿ã¬åãããªã
- ã³ãã³ãä¸ã¤ã§å¦çãå®è¡ã§ããããã«ã
/bin/bash ./script/jenkins.sh
ã¿ããã«å®è¡ - 失ææã« Slack ã«éç¥ãªã©ãã¦ãããããã®ã¾ã¾ã ã¨æ £ããåºã¦ããã®ã§ãXFD ãªã©ã使ã
Jenkins 㨠GitHub
ã¸ã§ãã®å®è¡çµæããã¹ãã®å®è¡çµæã Pull Request ã®ç»é¢ã«éç¥ãããã¨ã§ãã¬ãã¥ã¢ã¼ã GH;E ä¸ã§ãã¹ãçµæã確èªã§ãã
- ã³ã³ããªã¯ããå ã«ãããã®ã§ã³ã³ããªã¯ãã®è§£æ¶ãã¹ãªã©ãæ¸ããã
- ãã¹ã失æãã¦ããã®ã«ãã¼ã¸ãããã¨ããªãã®ã§ãéçºãã©ã³ãããªãªã¼ã¹å¯è½ãªç¶æ ã«ä¿ã¦ã
ãªãªã¼ã¹
- staging ãã©ã³ãã¸ã® Pull Request ã¯ã³ãã³ãä¸çºã§éããããã«
- æ¬çªãªãªã¼ã¹ç¨ã® Pull Request ã«ã¯ããã®ãªãªã¼ã¹ã«å«ã¾ããã³ããããã¾ã¨ãããªãªã¼ã¹ãã¼ããèªåã§ä½ããã
Docker ã®ã¦ã¼ã¹ã±ã¼ã¹
- éçºããæ©è½ã®ç¢ºèªã®ããã«ãéçºä¸ã®æ©è½ãç°¡åã«ç¢ºèªã§ããç°å¢ãããä½ããããã«
- ç¡é§ãªææ»ããéçºã¹ãã¼ãã®ä½ä¸ãé²æ¢
- ç¹ã« UI/UX ãªã©ã®ç¢ºèª
- ãã©ã³ãåã«å¯¾å¿ãããã¡ã¤ã³ã§ç°å¢ãããä½ããã¨ã§ããã¼ã ã¡ã³ãã¼ã社å¤ã®é¢ä¿è ããªã¢ã¼ãã¡ã³ãã¼ãªã©ã®ããã«ç¢ºèªåºæ¥ãç°å¢ãæä¾
Docker build ã«ã¤ãã¦
- æ®éã«å®è¡ãã㨠34 åããã£ã¦ãã
- ãã£ãã·ã¥ãæ´»ç¨ãããã¨ã§ã2 åç¨åº¦ã«
- ããã¸ã§ã¯ãå ¨ä½ãã³ãã¼ããåã«åæåå¦çç¨ã®ãã¡ã¤ã«ã ãã COPY ãã
ã¯ãã¯ãããã«ãããJenkinsã®æ´»ç¨
- ãµã¤ãã«ãã¦ãã
- ãªã CI ãã¦ããã®ã
- æ¯æ¥ã®æçã楽ãã¿ã«
- æ¹åãµã¤ã¯ã«ãçéã§åããã
CI ã§å®ãã¹ã価å¤
- æå³ããªãå¤æ´ãäºé²ã§ãã
- ã¿ã¼ã³ã¢ã©ã¦ã³ããçããã
- ããã«å¤±æãä¼ãã
- ä¸å ·åãæ¾ç½®ãããªã
- åç¾å¯è½ã§èªååããã¦ãã
- ãªã½ã¼ã¹ãæ å ±ãéç´ã§ãã
éç¥
- ãã éç¥ããã ãã ã¨èª°ãè¦ãªã
- 5W1H ãåãããããªéç¥ããã£ããã¸
- ã¡ã³ã·ã§ã³ãé£ã°ã
- éçºè ãå ¨å¡åå ãã¦ããã£ããã«ã¼ã ã¸éç¥ãã
- æåãã«ããéç¥ããªã
ä¸å ·åãæ¾ç½®ãããªã
- éçºè ã®æåã¨è¦å¾
- ã³ã¼ãã®å ±åææï¼Collective Ownershipï¼
- å½é½æ§ãå²ãçªçè«
- æéã«ä¾åãããã®
- çµåãã«ä¾åãããã®
- æ§è½ã«ä¾åãããã®
- ã¨ã©ã¼ãæ°ã«ããªããªã£ã¦ãã¾ã
- æ¬ç©ã®ã¨ã©ã¼ãè¦éãã¦ãã¾ããã¢ã©ã«ä½ä¸ãå¶æªç¯ç½ªã®å¤çº
- æå¾ã«æåãããã«ããç¹°ãè¿ãå®è¡ãã¦ã¿ã
- ç¿æåã«ã·ã¹ãã æéãè¨å®ãã¦å®è¡ãã¦ã¿ã
CI ãä½ã®ããã«ããã®ã
- ç¶ç¶çããªããªã¼ãã´ã¼ã«ã«ããã¨ããããããããªã
- èªååã¨ã¯ãèªååã
- ãã¨ã¿ã®ä¾ï¼トヨタ | トヨタ生産方式 | 自働化について
è¨é²ãã
- GrowthForecast 㧠CI ã®æåçãè¨é²ãã¦ãã
ãµã¤ãã«ãã¦ããã¨ã¯
- ããã¹ããã¨ããã
- 常ã«ããããããã«ãã
ãInfrastructure as a Codeã«ãããJenkinsã®å½¹å²ã ãç°å¢æ§ç¯ãç¶ç¶çã¤ã³ãã°ã¬ã¼ã·ã§ã³ãè¡ãæ代ã§ãã
å ¨ä½çã«ãåé¡ã®æ´ãåºãã解決ã¢ããã¼ãã®åå®ç¾©ãå½¹å²åæ ãæ¹æ³è«ã»æè¡ãã½ãªã¥ã¼ã·ã§ã³ã¨ãããããã®ã¹ãããä¸ã¤ä¸ã¤ããã¡ãã¨æ§ç¯ãã¦ããã¼ã ã¨ãã¦è¡ãã¦ãããã¨ãåãã¨æã£ãããç´ æ´ãããã¨æã£ããè¦ç¿ãããã
Chef ã§å ¨ä½ç®¡çãã¦ããæã®åé¡ç¹
- ã¬ã·ãã®è¤éå
- Cookbook ãå¯çµå
- åªçæ§ãæ ä¿ãããªããªã
- Chef Server ã®SPOFãåææ¥ç¶æ°åé¡
- å®è¡çµæã®ãã¬ã¼ãµããªãã£ããã°ãæ£ãã°ã
ãµã¼ãæ§ç¯ã®åå®ç¾©
- Provisioning Toolchain ã«æ²¿ã£ã¦åå®ç¾©ããå½¹å²ã®æ確åãé²ãã
- Bootstrapping
- Configuration
- Orchestration
- ããã«å ããReleasealizationï¼é èªï¼ãå®ç¾©
- ãµã¼ãã¹æä¾ã®ãããã¸ã§ãã³ã°
- Orchestration ã®å¦çå 容ããã¹ã
- Serverspec
ãµã¼ãæ§ç¯ã«ããã Jenkins ã®å½¹å²
- å ¨ä½ã®å¶å¾¡ã»çµ±å¶ãè¡ã
- Chef ã®å½¹å²ãæ確åãã
- Chef ã®å®è¡ãã°ãä¸å 管çã§ãã
å®è·µç·¨
ã¹ã©ã¤ããå ¬éããããããä¸åº¦è¦ãããSerf ã®ä¸è½æãéç«ã£ã¦ããã
LT 大ä¼
- ã»ãã¥ãªãã£ãã¹ãã CI ããã
- vaddy.net
- ãå ãéèæ©é¢ã§ã Jenkins ã§ãã
- deploygate è¯ããã
- Jenkins3Dã¢ãã«ã«ãªã¹
- CI ã ããããªãã¦ç®¡çç»é¢ã¨ãã¦ãããããå¦çã¨ãã¦ããå¤é¨é£æºãã¼ã«ã¨ãã¦ã使ãããç§ä¼ã®ä¾¿å©ãããããã¼ã«åããã