ç§ã®æçš¿ã¯ããå®çšçã§ãã èšå®ã®è€éãã«ããã«ã€ãŸãããªãããã«ãæšæºãããžã§ã¯ãããªãããŒã«äžããããšã«ããŸããããããŠããããé¢çœãããããã«ãæè¿ãªãªãŒã¹ãããDrupal 8ãéžã³ãŸããã

èšçœ®
ã§ã¿ã°ä»ããããææ°ããŒãžã§ã³ã¯ã2015幎10æ20æ¥ä»ãã®0.1.2ã§ãã ä»åŸã¯ãããã«MySQLãæ§æã§ããªãã£ããšèšããŸããCHANGELOGãèŠãŠãLayered Dev Environmentsã®ããã«masterãã©ã³ããè©Šãããšã«ããŸããã
Otto 0.1.3-devã«ã¯Vagrant 1.7.99+ãå¿ èŠã§ãã
äž¡æ¹ã®ãããžã§ã¯ãã®ã³ã³ãã€ã«ã«ã€ããŠã¯ãottoãšvagrantã®ããŒãžã§è©³ãã説æãããŠããŸããGoãšRubyã®ç¥èããªããŠããgolangã®ã€ã³ã¹ããŒã«ãgopathã®æ§æãäž¡æ¹ã®ãããžã§ã¯ãã®ã³ã³ãã€ã«ã«30åããããŸããã
äž»ãªããšã¯ãè¿œå ããããšãå¿ããªãããšã§ã
export PATH="$GOPATH/bin:$PATH"
ã¿ãŒããã«ãåèµ·åããdev-versionsïŒ 'vagrant version'ã 'otto version'ãå®è¡ããŠããããšã確èªããŸãã
NFSã»ããã¢ãã
ãªãããŒã«ã¯çŽæ¥åœãŠã¯ãŸããŸããããæšæºçãªvirualboxå
±æãã©ã«ããŒã®ã²ã©ãã¹ããŒããŠã³ã«ã€ããŠç¥ã£ããšããNFSãæ§æããå¿
èŠãããããšã«æ°ä»ããŸããã
Ubuntuã§ã¯ãnfs-common nfs-kernel-serverããã±ãŒãžãã€ã³ã¹ããŒã«ãã/ etc / sudoersã«æ°è¡ãè¿œå ããã ãã§ååã§ããVagrantã¯èµ·åãããã³ã«ãã¹ã¯ãŒããèŠæ±ããŸããã詳现ã«ã€ããŠã¯ãããã¥ã¡ã³ããåç §ããŠãã ããã
Ubuntuã§ã¯ãnfs-common nfs-kernel-serverããã±ãŒãžãã€ã³ã¹ããŒã«ãã/ etc / sudoersã«æ°è¡ãè¿œå ããã ãã§ååã§ããVagrantã¯èµ·åãããã³ã«ãã¹ã¯ãŒããèŠæ±ããŸããã詳现ã«ã€ããŠã¯ãããã¥ã¡ã³ããåç §ããŠãã ããã
ãããžã§ã¯ãã®æºå
Drupal 8ãããŠã³ããŒãããŸãã
git clone https://github.com/drupal/drupal.git drupal8 cd drupal8
Appfile
Appfile-ãããžã§ã¯ãã®ã¡ã€ã³ã®ottoèšå®ãã¡ã€ã«ã¯ããããžã§ã¯ãã®ã«ãŒãã«ããå¿ èŠããããŸãã
äžè¬ã«ããŸã£ããååšããªãå Žåã¯ãottoãã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããç°å¢ã®èŠä»¶ã決å®ããŸãã ã¢ããªã±ãŒã·ã§ã³ã®ã¿ã€ãã決å®ããããžãã¯ã¯ã©ãã«ãç°¡åã§ã¯ãããŸãããããšãã°ãã«ãŒãã«* .phpãã¡ã€ã«ãããå Žåããããžã§ã¯ãã¯phpãšããŠå®çŸ©ãããŸãã
ãªãããŒã³ã³ãã€ã«
ottoãå¿ èŠãšããæåã®ã³ãã³ã㯠' otto compile 'ã§ãã ãããžã§ã¯ããšãã®Appfileãåæãããã®åŸãéçºç°å¢ãšå±éç°å¢ã®ãã¹ãŠã®æ§ææ å ±ãå«ãããªãŒã.ottoãã©ã«ããŒã«çæããŸãã
ããã¥ã¡ã³ãã§ã¯ããã®ãã©ã«ããŒã®å 容ãèªåã®æã§æ¯é ããªãããšãæšå¥šããŠããŸãã ããããããªãã¯èŠãããšãã§ããèŠãã¹ãã§ãã
.OttoidãçæãããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ã®äžæã®èå¥åã§ããããã«ãããã©ã®ottoããã®å±éã远跡ããå±¥æŽãä¿åããäŸåé¢ä¿ãšããŠäœ¿çšããŸãã
ãã®æç¹ã§ãç°å¢ãèšè¿°ããããããã€ã®æºåãã§ããŸããã
otto dev
次ã«è¡ãããšã¯ãããŒã«ã«ãã·ã³ã«ããŒã«ã«éçºç°å¢ãå±éããããšã§ãã
å®éãotto devã¯vagrant upãšåãã§ãã
éå±€åãããéçºç°å¢
ã¬ã€ã€ãŒã®æŠå¿µã¯èå³æ·±ãã§ããã¬ã€ã€ãŒã¯Dockerã¬ã€ã€ãŒã«éåžžã«äŒŒãŠããŸãããotto devããåããŠå®è¡ãããšãVagrantä»®æ³ç°å¢ãé çªã«èšå®ãããåã¹ãããã®åŸã«åçãæ®ãããŸãã ã¬ã€ã€ãŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã¿ã€ãã§èª¬æãããŠããŸãã ããã«ãããéçºç°å¢ãåäœæããæéãå€§å¹ ã«ççž®ã§ããŸãã ãããã£ãŠãä»®æ³ãã·ã³ãå®å šã«åäœæãããå Žåã§ããå®æããç°å¢ãå³åº§ã«èµ·åã§ããŸãã ãã·ã³ã®åèµ·åãšåäœæã®éãïŒãotto dev halt && time otto devããšãotto dev destroy && time otto devãïŒã¯çŽ5ç§ã§ãã
changelogããå€æãããšãvagrantã¯å°ãªããšã次ã®ããŒãžã§ã³ã§ã¯ãã®æ©èœãåãåããŸããããVagrantã«ã¯ã¹ãããã·ã§ãããäœæããæ©èœããããŸãã
ãotto dev layersãã³ãã³ãã§ã¬ã€ã€ãŒã衚瀺ã§ããŸãã
$ otto dev layers consul php5.6
ãã®çµæãPHPã¢ããªã±ãŒã·ã§ã³ã®å Žåãottoã¯ããã«æ瀺ãçºè¡ããå¿ èŠããããŸãã
$ otto dev IP address: 100.66.143.21 A development environment has been created for writing a PHP app. You can access the environment from this machine using the IP address above. For example, if you start your app with 'php -S 0.0.0.0:5000', then you can access it using the above IP at port 5000.
èªåãã¥ãŒãã³ã°ã§äœãåŸãããŸãããïŒ
- Ubuntu 12.04ïŒçŸæç¹ã§ã¯ãã·ã¹ãã ã®ããŒã¹ã€ã¡ãŒãžãéžæã§ããŸããïŒ
- é äº
- PHP 5.6ïŒãªãããŒã¯PHPãæšæºãªããžããªããã§ã¯ãªããPPAããã€ã³ã¹ããŒã«ããŸãïŒ
- äœæ²å®¶
MySQLã¯Drupalãæ©èœããããã«éåžžã«äžè¶³ããŠããŸãã
äŸåé¢ä¿
MySQLãè¿œå ããæãç°¡åãªæ¹æ³ã¯ãäŸåé¢ä¿ãæå®ããããšã§ãã ãããžã§ã¯ãã®ã«ãŒãã«AppfileãäœæããŸãã
application { name = "drupal8" type = "php" dependency { source = "github.com/hashicorp/otto/examples/mysql" } }
ãã®æ§æã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã¿ã€ãïŒphpïŒãæ瀺çã«ç€ºããMySQLãäŸåé¢ä¿ãšããŠè¿œå ããŸãã
ãœãŒã¹å ã®ãªã³ã¯ãç¡å¹ã§ãããšããäºå®ã«ããããããããªãããŒã¯ãããç解ããã§ãããã ä»ã®ãœãŒã¹åœ¢åŒããããŸã ã
mysqlãããã«ç°¡åã«è¿œå ããæ¹æ³ã¯ãããŸãããééã£ãŠããŸããããã«ã€ããŠããã€ã説æããŸãã
mysql appfileã¯ãäŸåã¢ããªã±ãŒã·ã§ã³ãDockerã³ã³ãããŒãã³ã³ãããŒã€ã¡ãŒãžãžã®ãã¹ãããã³ã¹ã¿ãŒãã¢ãããã©ã¡ãŒã¿ãŒãšããŠèšè¿°ããŸãã çµæãšããŠãVagrantå ã§å®è¡äžã®ã³ã³ãããŒãååŸããŸããConsulã®ãããã§ãmysql.service.consulïŒä»®æ³ãã·ã³å ïŒã§ãŠãŒã¶ãŒãšrootïŒrootãã¹ã¯ãŒãã§å©çšã§ããããã«ãªããŸãã ããã©ã«ãã®Consulã䜿çšãããšãDockerã®äœ¿çšãã¯ããã«ç°¡åã«ãªããŸãããµãŒãã¹æ€åºã®èšå®ã®è€éããç解ããããšã¯ã§ããŸãããã䜿çšããã ãã§ãã
ä»ã®ã¢ããªã±ãŒã·ã§ã³ã¯äŸåé¢ä¿ã«ãªãå¯èœæ§ããããŸãããã¢ããªã±ãŒã·ã§ã³ã®ååãå€æŽãããŠããottoãå®è¡äžã®å 容ãç解ã§ãã.ottoidãã¡ã€ã«ãæã€ããšã匷ããå§ãããŸãã
äŸåé¢ä¿ã¯çŸåšãããŒãžã§ã³ç®¡çããµããŒãããŠããŸããïŒå°æ¥è¿œå ããããšãçŽæããŸãïŒãã€ãŸãããã¹ãŠã®ottoã³ã³ãã€ã«ã§ãæåŸ ãããã®ãååŸã§ããªãå¯èœæ§ããããããèªåã§äŸåé¢ä¿ããã©ãŒã¯ããããããŒã«ã«ãã·ã³ã«é 眮ããå¿ èŠããããŸãã
ãottoã³ã³ãã€ã«ãããotto dev destroyãããotto devããå®è¡ããŸããDrupalãèµ·åãããã·ã³ãæºåããŸãã ãã®äžã§ãµãŒããŒãå®è¡ããããã«æ®ããŸãã
otto dev ssh
SSHçµç±ã§ä»®æ³ãã·ã³ã«å ¥ããŸãã äžèšã®ã³ãã³ããå®è¡ããŠãPHPã®çµã¿èŸŒã¿WebãµãŒããŒãèµ·åããŸããdevã®ããŒã80ã§rootãšããŠå®è¡ããŠãäœãåé¡ã¯ãããŸããã
sudo php -S 0.0.0.0:80
ãã®åŸããotto devããçºè¡ãããã©ãŠã¶ãŒã§IPã¢ãã¬ã¹ãéããŠããotto dev addressããå®è¡ããããšã§æ瀺çã«ååŸã§ããŸãã
æ¬ ç¹
çã³ãŒã
äžéšã®å Žæã§ã¯ãã³ãŒãã¯ããªããããã¿ã€ãã§ããããšãããããŸãã ããšãã°ãVagrantfileã¯ãbashã䜿çšããŠç°å¢ããããã€ããŸããããã¯ãansibleããã®ãããªãã®ã§ã¯ãããŸããã
ç§ã¯ã¢ããªã¿ã€ãã®PHPã³ãŒããèŠãŠãèµ·åãããŠããã¢ããªã±ãŒã·ã§ã³ãã¯ãŒããã¬ã¹ã§ãããšããå®çŸ©ãèŠã€ãããŸããïŒwp-config.phpãã¡ã€ã«ã®ååšã«ããïŒãæšæºã®PHPã¢ããªã±ãŒã·ã§ã³ãšã®å¯äžã®éãã¯mysqlã®èªåè¿œå ã§ã ã€ãŸããAppfileã§ãtype = "wordpress"ããæå®ãããããtouch wp-config.phpããäœæããŠmysqlãååŸã§ããããã«ãªããŸãããããã¡ããããããè¡ãã¹ãã§ã¯ãããŸããã
ç°å¢ã¯èšèšãããŠããŸãã
ãããžã§ã¯ãã®èª²é¡è¿œè·¡ããŒã«ããå€æãããšããã¹ããã©ã¯ãã£ã¹ã¯ãŸã æºåãã§ããŠããããã©ã®ããã«æºåããããå®å šã«ã¯æ確ã§ã¯ãããŸããã ããšãã°ãPHPã®å ŽåãPHPãããžã§ã¯ãã®ç°å¢ãç¥ããªãHashicorpãšãGoãç¥ããããã«ãªã¯ãšã¹ããéä¿¡ã§ããªãPHPããã°ã©ããããŸãã
Ottoã®äœè ã§ããMitchell Hashimotoã¯ãGithubã«æ¹åç¹ãæ£ããç°å¢ãåããèšäºãžã®ãªã³ã¯ãªã©ã®ææ¡ãæžãããšã«èå³ã®ãããã¹ãŠã®äººãæåŸ ããŸããHashicorpã¯è£œåãžã®çµ±åãæ åœããŸãã åŸã®æœè±¡åãçŸãããšæãããŸããããã«ãããããŸããŸãªéå²programmerããã°ã©ãã補åã®éçºãæ¯æŽã§ããããã«ãªããŸãã
Devã¯prodãšã¯ç°ãªããŸã
ããªãããŒã€ã³ãã©ãããã³ããªãããŒãããã€ãã³ãã³ãã«ã¯å°éããŸããã§ããããAWSã®ã¿ããµããŒãããããã«ãªããPHPãããžã§ã¯ãã®å Žåãéçºç°å¢ã¯ãããã€ç°å¢ãšã¯ç°ãªãããšãããããŸããã apache2ã¯mod-phpã§äžæããŸãã
éçºè ãã²ã©ãã«ã¹ã¿ãã€ãºãããŠãã
Ottoã§ã¯çŸåšãAppfileã䜿çšããŠVagrantfileéçºç°å¢ãã«ã¹ã¿ãã€ãºããããšã¯ã§ããŸããã .otto / compile / app / dev / VagrantfileãèŠããšãNFSãšäºææ§ã®ãªãããŠã³ããªãã·ã§ã³/ vagrantãæžã蟌ãŸããŠããããšãããããŸãã 次ã®ãããªè¡ãä¿®æ£ããŸãã
config.vm.synced_folder '/home/popstas/projects/site/drupal8', "/vagrant", type: "nfs"
次ã®ããªãããŒã³ã³ãã€ã«ãã¯ãããã®å€æŽãäžæžãããŸãã
ãããæ£ããè¡ãå¯äžã®æ¹æ³ã¯ãapplication type = "custom"ã䜿çšããŠVagrantfileãå®å šã«ãªãŒããŒã©ã€ãããããšã§ããããã®å Žåãç°å¢ãèªå調æŽããéæ³ã¯ãã¹ãŠãªããªããŸãã
çµè«
ç§ã¯ãOttoããŸã å®å šã«äœ¿çšããæºåãã§ããŠããªãããšãèªåã§çµè«ä»ããŸãããããã¯ã補åã®ããŒãžã§ã³0.1ã§äžè¬çã«ç€ºåãããŠããŸãã ããã«ããããããããã®è£œåã¯éåžžã«èå³æ·±ããã®ã§ãããVagrantã«æ¯ã¹ãŠãã§ã«å©ç¹ããããŸãããã¹ãŠã®æ¬ ç¹ã¯Ottoã®æ°èŠæ§ã«ãã£ãŠèª¬æãããéçºè ã¯ãããã«ã€ããŠç¥ã£ãŠãããåé€ã®èšç»ãæã£ãŠããŸãã
ã¬ã€ã€ãŒãOttoã«å®å šã«è¡šç€ºããããšãã«ãç¬èªã®ã¬ã€ã€ãŒãäœæããæ¹æ³ãæ確ã§ã¯ãããŸãããç§ã«ãšã£ãŠã¯ãVagrantããã¬ã€ã€ãŒã«åãæ¿ããååãªçç±ã«ãªããŸãã