ãLinuxãanyenvã§åenvã管ç
ãã¦å¹³æ¥ã®ä»äºãä¸æçã«ä¼æ¢ãã¦æ¯æ¥ã«ãã§ã§PCããããæ¥ã ã§ãã
ä»æ¥ã¯åããæ§ç¯æã«ä½¿ã£ã¦ããanyenvã«ã¤ãã¦ã§ãã
æ¥é ããã¤ãã®è¨èªã使ãã®ã§ãããããã¸ã§ã¯ãã«ãã£ã¦ãã¼ã¸ã§ã³ã¯éããã㧠統ä¸ããã®ãé£ããã§ãããã ããã§è¨èªãã¨ã«ãã¼ã¸ã§ã³ã管çãã~envçã使ã£ã¦ããã®ã§ããããããè¤æ°åºã¦ã㦠管çãé¢åã ã£ãããã¾ãã ãããªã¨ãã®anyenvã§ãã~envãæ´ã«ã¾ã¨ãã¦ç®¡çãã¦ããã便å©ãªãã¼ã«ã§ãã
ããã使ãã°åè¨èªã®envã管çãã¦æ´ã«**envããè¨èªãã¼ã¸ã§ã³ã管çã§ããã¨ãããã®ã§ãã
ã§ã¯æ©éã¤ã³ã¹ãã¼ã«ã§ãã
# git clone https://github.com/riywo/anyenv ~/.anyenv
ããããbin以ä¸ã«pathãéãã¾ãã ããã«ãã£ã¦~envã³ãã³ãã使ç¨å¯è½ã«ãªãã¾ãã
# export PATH="$HOME/.anyenv/bin:$PATH" # eval "$(anyenv init -)"
ããããshellããªãã¬ãã·ã¥ã§ãã
# exec $SHELL -l
ããã§anyenvã使ç¨ã§ããããã«ãªãã¾ããã ã©ããªenvã使ããã®ãã確èªãã¦ã¿ã¾ãããã
# anyenv install -l Available **envs: Renv crenv denv erlenv exenv goenv hsenv jenv luaenv ndenv nenv nodenv phpenv plenv pyenv rbenv sbtenv scalaenv swiftenv
æ´ã«ãã©ã°ã¤ã³ãã¤ã³ã¹ãã¼ã«ãã¦anyenvãupdateã§ããããã«ãã¾ãã
# mkdir -p $(anyenv root)/plugins # git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
ããã§anyenvã®updateãå¯è½ã«ãªãã¾ãã
# anyenv update
ä¸è¨ãå®è¡ããã¨updateãå®è¡ããã¾ãã
# anyenv update Updating 'anyenv'... Updating 'anyenv/anyenv-update'...
å~envã®ã¤ã³ã¹ãã¼ã«ã¯ä»¥ä¸ã®éãã§ãã
ä»åã¯ç´è¿å¿ è¦ã ã£ãphpenvãã¤ã³ã¹ãã¼ã«ãã¾ãã
# anyenv install phpenv # exec $SHELL -l
ãã¨ã¯~envã使ãã¨ãã¨åãããã«ä½¿ããã¨ãã§ãã¾ãã
anyenvã®åé¤ã«ã¤ãã¦ã¯åæã«ä½ã£ã.anyenvèªä½ãåé¤ããã°OKã§ãã è²ã ã¨é¢åãªãã¼ã¸ã§ã³ç®¡çãããã§æ¥½ã«ãªãã¾ããã
ã©ããã§phpenvã®ä½¿ãæ¹çãã§ããã°ã¨æãã¾ãã
ãMacãåããããWi-fiã«èªåã§åæ¥ç¶ããshell
ä¹ ã ãããæ´æ°ã§ãã
æä¼æ¥ã®ã°ã«ã¼ãä¼ç¤¾ãæ°å¹´åã£ã¦ãä¸è©±ã«ãªã£ã¦ãã®ã§ãããã¤ãã«ãããè¾ããå®å ¨ã«ããªã¼ã¨ãªã 1ã¶æã»ã©æ ã«åºã¦ãã¾ããã
ãã¦ãä»åã¯å¸°ã£ã¦ãã¦ããã«ãã§ã§Wi2ã¸æ¥ç¶ãã¦ããã°ã©ã ããµã¼ããããã£ã¦ããããã§ãããªã«ãåããã æ¥ç¶ãã¦ããå®å®ããªãã®ã§ãã æ¥ç¶ãã¦ãããã«åãã¦ãã¾ãã æ°ç§ããæ°åãã¨ã«åãã¦ãã¾ããããMacããåæ¥ç¶ããã®ã§ããããã¡ãã¡Wi-fiãåã£ã¦ååº¦å ¥ããã¨ããç¡é§ãªä½æ¥ãããããã§ãã
æ¥ç¶ãå®å®ãããããã«ãããã¯ã¼ã¯ã®ç°å¢è¨å®ã«ãããã¯ã¼ã¯ç°å¢ã追å ããã¨è¯ãã¨ããè¨äºãããã®ã§ãã ããã§ãå¤ãããªãå ´åæ³£ãå¯å ¥ããããããªãã®ã§ãã ããã¦ãWi-fiã®åæ¥ç¶ãèªååã§ããã°ã¨æããç°¡åãªShellã¹ã¯ãªãããæ¸ãã¦ã¿ã¾ããã
ã¨ã«ããåããäºè±¡ãå°ãã§ã軽æ¸ããããã ããªã®ã§ãç°¡æçä¸ã¤éãªãã®ã§ããã
è¦ã¯Wi2ã«æ¥ç¶ãã¦ããããå¤é¨ã¸æ¥ç¶ã§ãã¦ãããã®æ»æ´»ç£è¦ã¿ãããªãã®ã§ãã
ãµã¼ãã§ããããã¡ãªã®ã§ããããµã¼ããæ»ãã ãæ¥ç¶ãã§ããªããªããã ãããäºåã«ç¥ãããå ´åpingã³ãã³ãã使ã£ã¦æ¥ç¶ãã§ãã¦ãããã確èªããæ¥ç¶ã§ããªãå ´åã¯ã¢ã©ã¼ãã¡ã¼ã«ãéãã¨ãããã®ã®ç°¡æçã§ãã
ä»çµã¿ã¨ãã¦ã¯pingãæã£ã¦å®è¡çµæãè¦ã¦ã¨ã©ã¼ã§ããã°ã¤ãªãç´ããè¡ãã ããã ãã§ãã
ãã£ããã³ã¼ãã§ãã
#!/bin/sh while true do /sbin/ping -W 3 -t 1 google.com>/dev/null if [ $? -ne 0 ]; then echo "retry" networksetup -setairportpower en0 off networksetup -setairportpower en0 on echo "done" sleep 1 fi echo "OK" sleep 1 done
ã¡ãã£ã¨ã¤ã³ãã³ããããããã§ãããããã£ã¨ããã ãã®ã§ãæå¬æ±
å 容ã¨ãã¦ã¯ç°¡åã§ããã ã¨ã«ããç¡éã«ã¼ãããã¦ãpingãæã¡ã¾ãã ãã®æã«ã¿ã¤ã ã¢ã¦ãã1ç§ã«è¨å®ã1åã®ã¿æ¤æ»ãã¾ãã
ããããå®è¡ããå 容ãæåãã¦ããªããã°networksetupã³ãã³ããçºè¡ãã¦setairportpowerãoffã«ãã¦ããonã«ããã¨ãããã®ã§ãã
æ¥ç¶ããã¾ã§ã«å¤å°ã®æéããããã®ã§sleepãå ¥ãã¦ãã¾ãã ä»ã®ã¨ãã2ç§ä»¥å ã«æ¥ç¶ãå®äºããã®ã§ã次pingãæã¤ã¾ã§ã«å¤å°ã®ä½è£ãæããã¦ãã¾ãã
echoã§åæ¥ç¶æåã³ç¹ãã£ã¦ããã¨ãã¯OKãåºã¦ãã¾ããããã¯å¯è¦åãããã ããªã®ã§ä¸è¦ã§ããã
Youtubeã¨ãã§ããã°ã¹ããªã¼ãã³ã°ã§ããç¨åº¦è¦ããã®ã§ãæ°ç§ã®ãã¹ã§ããã°åæ¥ç¶ãç´ãã¦ããã¦åé¡ãªãè¦ãã¾ãã ãã¦ã³ãã¼ãã¨ããä¸æåæ¢ãã¦ããã¦ããããåæ¥ç¶ãã¦ãããã®ã§æ®æ®µä½¿ãæãã§ãªãã¨ã使ãã¦ãã¾ãã
ã«ãã¦ãæé¡300åã¨ã¯ããæ¥ç¶ãåããã®ã¯ããã ããªãã§ããã»ã»ã» åç·ãç´°ãã£ã¦ããã®ãããã®ã§ããããã
è´ æ²¢ã¯è¨ããªãã§ãããã¨ã«ããããã§æ ¹æ¬è§£æ±ºã¨ã¯ãããªããã®ã®ãèªåæ¥ç¶ãã¦ãããã®ã§æéã¯ãªããªã£ãããªã¨ã
ãããµã¼ãã¹ãããããåºã¦ãããã°ãããã ãã©ãªãã
ãMySQLã createãããã¨ãããã¨ã©ã¼ Can't create table
æè¿ã¯ä½ãã ãã®ä»äºããã¦ããããåã«ä½ã£ãè³ç£ã«ã¤ãã¦ã®è³ªåãããã㧠ç¹ã«æ°ããäºãã§ãã¦ãã¾ããã pullåã®Deployçã®ä»çµã¿ãä½ã£ãããã¦ãã®ã§ãããããã¯ä»å¾æ¸ãã¦ããã¾ãã
ãã¦ãä»ã®Projectã§ã¯Migrationã«standalone-migrationsã使ã£ã¦ããã®ã§ãã ãããPHP製ã®Phinxã«å¤ããããªãã¨æãã¤ã¤ã
ãããªä¸ãã¹ããã¼ã¿ãä½åº¦ãå ¥ãããæ¶ãããããã®ã«migrationãç¹°ãè¿ãã¦ããæ Can't create table ã¨è¨ãããæ¥ã«migrationãã§ããªããªã£ã¦ãã¾ãã¾ããã
å®éã«ã¯
Can't create database 'hoge_database' (errno: 28): CREATE DATABASE `hoge_database` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_general_ci`
ã¿ãããªæãã§ãã
æåã®ä½æ¥ã§pullåã®Deployã«ã¤ãã¦ãããããã£ã¦ã¯ããã®ã§ãã migrationã¨ã¯é¢ä¿ãªããã¨ããã¦ãããããã§åå ããããããã¾ããã§ããã 調ã¹ã¦ã¿ãã¨å®¹éãåå ã§ããã
dfã³ãã³ãã§ç¢ºèªãã¦ã¿ãã¨
[root@localhost migrations]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup-lv_root 51475068 48902376 0 100% / tmpfs 961152 0 961152 0% /dev/shm /dev/sda1 487652 57576 404476 13% /boot /dev/mapper/VolGroup-lv_home 249210780 235868 236309056 1% /home
ã¾ã容éããªãããã§ã çµå±åå ã¯è²ã ãªèª¿æ»ãããã®ã«Mysqlå´ã§è¨å®ããquery log㨠è²ããªã½ã¼ã¹ããã§ãã¯ãã¦ããåProjectã®.git/object/packã§ããã
Totalã§40Gè¿ããé£ãã¤ã¶ãã¦ãããã§ã ãã°ã¨ä¸è¦ãªã½ã¼ã¹ãåé¤ãããã¨ã«ãã£ã¦migrationãã§ããããã«ãªãã¾ããã
é¢åãããã£ã¦logrotateãã¦ãªãã£ãã®ãåå ã§ããã
ãã¨ãvirtual box èªä½ã®å®¹éãå°ãå°ãªããã¾ããã åä¸Projectãªãåé¡ãªãã ããã¨æã£ã¦ãã®ã§ãããè¤æ°ãã®Projectã«è²ããªãã¼ã«ã使ã£ã¦æ¤è¨¼ããã¦ããã®ã§ ãããåå ã§ããã
virtualboxã®å®¹éæ¡å¼µã¨logrotateã§ãæ¸ãã¦ããããã¨æãã¾ãã
ãMySQLã MySQLã¤ã³ã¹ãã¼ã«å¾ãèµ·åã«å¤±æãã
ã²ãããªãã¨ããGCPã§æ°ããç°å¢ãæ§ç¯ãããã¨ã«ãªãï¼ã¨ãã£ã¦ãæã§è¨ãLAMPç°å¢ã®ãããªãã®ï¼ PHPããNginxãMySQLãã¤ã³ã¹ãã¼ã«ãã¦ããã®ã§ãã ã©ããã¦ãMySQLã®Startã§[FAILED]ã«ãªã£ã¦ãã¾ãã
MySQLãyumã§å ¥ãã¦ããããä½ãæå®ãå¿ è¦ã ã£ãã®ãã¨ãèããã®ã§ãã æ¨æ¸¬ã§ç©äºãé²ããã¨è¯ããã¨ããªãã®ã§ã¾ãã¯logã確èªãã¾ãã
ããã¨serviceãç«ã¡ä¸ããæã®ãã°ã®ä¸ã«ERRORãè¦åãããã¾ããã
/var/log/mysqld.log 2016-11-29 11:08:39 1958 [ERROR] InnoDB: Cannot allocate memory for the buffer pool 2016-11-29 11:08:39 1958 [ERROR] Plugin 'InnoDB' init function returned error. 2016-11-29 11:08:39 1958 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2016-11-29 11:08:39 1958 [ERROR] Unknown/unsupported storage engine: InnoDB 2016-11-29 11:08:39 1958 [ERROR] Aborting
Cannot allocate memory for the buffer pool. ãããããã¼ã¤ã§ãã
å®ã¯GCPã®ç°å¢ã«ã¤ãã¦ã¯ f1-microï¼vCPU x 1ãã¡ã¢ãª 0.6 GBï¼ ã¨ããè¦ã¯æä½ã¹ããã¯ã§ä½ããã¦ããã®ã§ãã¡ã¢ãªã600Mã¡ãã£ã¨ãããªãã£ãã®ã§ãã
freeã³ãã³ãã§SWAPé åã確èªãã¦ã¿ãã¨
# free total used free shared buffers cached Mem: 604380 159344 445036 156 2260 19948 -/+ buffers/cache: 137136 467244 Swap: 0 0 0
æ¡ã®å®SWAPé åãããã¾ããã§ããã
ã¨ãããã¨ã§ãSWAPé åãä½ãã¾ãã
# dd if=/dev/zero of=/swapfile bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 26.8912 s, 39.9 MB/s
次ã«SWAPé åãæå¹ã«ãã¾ãã
# mkswap /swapfile # swapon /swapfile
ããã§MySQLãèµ·åã§ããããã«ãªãã¯ãã§ãã
ãpythonã pythonã®ãã¼ã¸ã§ã³ã¢ãã 2.6ç³»ãã2.7ç³»ã¸
Google Cloud Platformã£ã¦ããæè¿ã§ããªããã§ãã ããã便å©ãªãã®ãåºã¦ãã¾ãããã AWSã®S3ã¿ãããªãã®ãªãã§ããããã 使ã£ããã¨ãªãã®ã§ãããã»ã»ã»
ãã¦Google Cloud Strageã使ããã¨è²ã ã¨è¨å®ããshellãæ¸ããã èªååããããé²ãã¦ãããã§ãããå°ãæéãããã£ã¦ãã¾ã ä¹ ã ã«ããã£ã¦ãã®ã§ãã(å¥éãã®è¾ºã¯æ¸ãäºå®ã§ã) ãã¼ã¸ã§ã³ã確èªããã¨
[root@localhost deploy]# gsutil version Warning: You are running Python 2.6, which stopped receiving security patches as of October 2013. gsutil will stop supporting Python 2.6 on September 1, 2016. Please update your Python installation to 2.7 to ensure compatibility with future gsutil versions.gsutil version: 4.19
ã©ãããpythonã®ãã¼ã¸ã§ã³ãå¤ãããã§ã8æãã£ã±ãã§ãµãã¼ãæ¢ãããã¨ã®ãã¨ã§ãã ãã®ããã2.6ç³»ãã2.7ç³»ã«ã¢ãããã¼ããå¿ è¦ãªã®ã§ãã
ã¯ãã¯ãããããã¾ããããã§ã¯ã¢ãããã¼ããã¾ããã㨠簡åã«ããããã«ã¯ãããªããªãã¨ã
ãªããã¨è¨ãã¨ä»ä½¿ã£ã¦ããç°å¢ã¯CentOSãªãã§ãã ã¨ã¦ããä¸è©±ã«ãªã£ã¦ããyumã³ãã³ã ãã®ã³ãã³ãpython製ãªãã§ãã
åã2ç³»ã ããäºææ§ã¯ããã¨æãã®ã§ãã æ¬å½ã«å¤§ä¸å¤«ãªã®ãã
yumã«é¢ãã¦ã¯/usr/bin/yumãã¨ãã£ã¿ã§éã㦠1è¡ç®ã®pythonãã¼ã¸ã§ã³æå®ã¨ãããã°ãããããªæ°ããããã§ãã ãã®ä»ã®pythonã¯å¤§ä¸å¤«ãªãã ãããã ãããã£ãã¨ããã§å±ãªãã£ã¦ãã人ãããã®ã§ããã調ã¹ãã¨ããã ãã§è¨å®ãã¦åé¡ããªã人ããããããªã®ã§ãã®è¨å®ã§ä¸åæ§åãè¦ããã¨æãã¾ãã
ãã¦ç¾å¨ã¤ã³ã¹ãã¼ã«ããã¦ããpythonã®ãã¼ã¸ã§ã³ã¯
# python --version Python 2.6.6
ã¡ãã£ã¨å¤ãããã§ããã ç¾æç¹ã§ã®2ç³»ææ°ãã¼ã¸ã§ã³ã¯2.7.9ã§ãã ã¾ãã¯ã½ã¼ã¹ãè½ã¨ãã¦ããã¾ãã
# cd /usr/local/src # curl -O https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
次ã«è§£åãã¦ããã¾ãã ä½è«ã§ããã解åã¨ããã¯ãªã¸ãµã³ãããã§ããå±éãæ£ããè¨ãæ¹ãªã®ããªã
# tar zxf Python-2.7.9.tgz
ãã¦å±éããã¨ããã§ã¤ã³ã¹ãã¼ã«ãã¦ããã¾ãã
# cd Python-2.7.9 # ./configure # make && make altinstall
ã³ã³ãã¤ã«ãçµããã¨pythonãã¡ã¤ã«ãã§ãã¦ãã¾ãã ãã¼ã¸ã§ã³ã確èªãã¦ã¿ã¾ãããã
# /usr/local/src/Python-2.7.9/python --version Python 2.7.9
ãã¼ã¸ã§ã³ä¸ãã£ã¦ã¾ããã ãããbinã«å ¥ãã¦ããã®ã§ãããæ¢ã«/usr/bin/以ä¸ã«ã¯æ¢ã«pythonãããã¨æãã¾ãã 注æã¯ãããã·ã³ããªãã¯ãªã³ã¯ã«ãªã£ã¦ããªããã£ã¦ã¨ããã§ããããã
ä¸æ¦ç¾è¡ãã¼ã¸ã§ã³ãããã¯ã¢ãããã¦ç½®ãæãã¦ããã¾ãã
# mv /usr/bin/python /usr/bin/python2.6.6
次ã«å ã»ã©makeããpythonãç½®ãæãã¦ããã¾ãã
# cp /usr/local/src/Python-2.7.9/python /usr/bin/python
ãã¦ããã§å®äºã¨æããããåé ã«è©±ããyumã®é¨åã§ããã
# vim /usr/bin/yum #!/usr/bin/python â #!/usr/bin/python2.6.6
ããã§OKã§ãã ããã«é¢ãã¦ã¯è³å¦ä¸¡è«ããã®ã§ãpythoné¢ä¿ã§ä½ãããããã£ããæãåºãããã«ãã¾ãããç¬ å ã¿ã«ä¸è¨ã®yumã®æ¸ãæããããªãã¨yumã使ããªããªãã®ã§æ°ãã¤ãã¾ãããã
ãJenkinsã Jenkins権éè¨å®ã®ãã¹ã«ãããã°ã¤ã³ãã§ããªããªã£ã
æè¿ã¯DeployããCIç°å¢ã®æ§ç¯ãããå°ããããã¦ããã£ã¦ãã¾ãã CIã¨ããã°Jenkinsã§ããã ãã®ç´³å£«ãªããã¦CIç°å¢ã¯ã¨è¨ããããããã§ãã
ãã¦ãããªJenkinsã®ãã¼ã¸ã§ã³ã¢ããçãã£ã¦ããã®ã§ãã ã°ãã¼ãã«ã»ãã¥ãªãã£ã®è¨å®ã誤ã£ã¦è¨å®ãã¦ãã¾ã£ãçºã«ãéãkinsã«ãªã£ã¦ ã©ã®ã¦ã¼ã¶ã§ãã°ã¤ã³ãã¦ããå ¨ä½/Read ãã¼ããã·ã§ã³ãããã¾ããããã®ãããªã¨ã©ã¼ã§é¬¼kinsã«ãªãã»ã»ã»
è¦ã¯æ¨©é管çãééãã¦ä¿åããã¨ãã©ã®ã¦ã¼ã¶ã§ãè¨å®ã®ãç´ããã§ããªããªãã è¦ã¯å®å ¨ã«éãåºãããããã§ãã
ãããªã£ãæã®å¯¾å¦æ³ã§ãã ãã¡ããJenkins Wikiã«ã対å¿æ¹æ³ãè¼ã£ã¦ãã¾ãã
Disable security - Jenkins - Jenkins Wiki
ããã¦ãããªã£ãå ´åã¨ãã£ã¦ã©ããããããªããªããããããªããã¨ãæã人ã¯å°ãªãã¨æãã®ã§ ä½ãè¦åã¨ãåºãã¦ããããããªæ°ããããã ãã©ã»ã»ã»
ã¾ãã¯Jenkinsãåæ¢ããã¾ãã
service jenkins stop
ãããã¯
/etc/init.d/jenkins stop
次ã«config.xmlãç·¨éãã¾ãã
JENKINS_HOMEã¯åã¤ã³ã¹ãã¼ã«æã«è¨å®ãã¦ããã¨æãã¾ãã ããã©ã«ãã ã¨/var/lib/jenkinsãJENKINS_HOMEã«ãªã£ã¦ããã¨æãã¾ãã
ç·¨éã®åã«ä½ããã£ããã¢ã¬ãªã®ã§ãããã¯ã¢ãããã¨ã£ã¦ããã¾ãããã
config.xmlãç·¨éãã¾ãã
ããã¯trueã«ãªã£ã¦ããã®ã§falseã«æ¸ãæãã¾ãã
æ´ã«ä»¥ä¸2ã¤ã®ã¿ã°å åã³ã¿ã°èªä½ãåé¤ãã¾ãã
Jenkinsãåèµ·åãã¾ãã
ä¹ ã ã«é¬¼kinsãè¦ã¾ããã ããã¾ã権éè¨å®ã«æ»ãããªãã
ãPHPã PHP製ã®Deploy tool deployerã§deployã試ã
æè¿ã¯MySQL partitionã®PHPUnitãã¹ãã¨ãè¨äºã«ããªããªããããªããããªãã¨ããã£ã¦ããããã§ã PHPUnitã§partitionåé¤ã¨ãDBãã¹ãã§ã§ããã°ããã®ã«ã¨ãæãã¤ã¤ãã´ãªã´ãªæ¸ãã¦ãããã§ã
ã¡ãã£ã¨æ¯æãã«ã
Capistranoã§deployããããã¨ãå¤ãã£ãã®ã§ãããPHP製ã®Deployã試ãã¦ã¿ããã¨æã£ã¦ Deployerã使ã£ã¦ã¿ãã®ã§ãç°¡åã«ç´¹ä»ãããã¨æãã¾ãã
ãã®åã«ä»åä½ã£ãç°¡åãªç°å¢ã§ãã VirtualBoxã2ã¤ç«ã¡ä¸ããLinuxã®localç°å¢ã2ã¤ç¨æãã¾ããã
192.168.56.10 <--------> 192.168.56.11
192.168.56.10 ãã¡ãã®ãµã¼ããWEBãµã¼ãã«è¦ç«ã¦ãdeployå ã¨ãã¾ãã
192.168.56.11 ãã¡ãã®ãµã¼ããdeployãµã¼ãã¨ããdeployå ã¨ãã¾ãã
ãªã®ã§ãdeployãã¼ã«ã192.168.56.11ã«ã¤ã³ã¹ãã¼ã«ãã¦ããã¾ãã
deployerã¤ã³ã¹ãã¼ã«
composerã®ããã«
wget http://deployer.org/deployer.phar
ãããªæãã§deployer.pharãDownloadãã¾ãã
mv deployer.phar /usr/local/bin/dep
ãããªæãã§binã¸çªã£è¾¼ãã§commandã§ä½¿ããããã«ãã¾ãã
composerã§ã¤ã³ã¹ãã¼ã«ãããã¨ãå¯è½ã§ãã
ä»åã¯æ°ãããµã¼ãã«ãããã¨ã¤ã³ã¹ãã¼ã«ãã¦ããã£ã¨deployãã¦ã¿ããã£ãã®ã§composerã§ã¯ãªããç´æ¥ãã¦ã³ãã¼ããã¾ããã
ã½ã¼ã¹ã確èªãããå ´åã¯ä»¥ä¸ã«ã¦cloneãããªããã¦ç¢ºèªãã¾ãããã https://github.com/deployphp/deployer
ãããããã£ã¬ã¯ããªãèªåã§ä½ã£ã¦ããã¾ãã
deployer è¨å®
èªåãä½ã£ããã£ã¬ã¯ããªã¯ä»¥ä¸ã®éãã§ãã
deploy âââ config â  âââ parameters.yml â  âââ servers.yml âââ console âââ deploy.php
parameters.ymlãã¡ã¤ã«ã¨consleãã£ã¬ã¯ããªã¯ç©ºã§ããã®ã§ä½æã ããã¦ãããã®ãããã§ãã ã¾ããdeployã¨ãããã£ã¬ã¯ããªã«å¿ è¦ãªãã¡ã¤ã«ãã¾ã¨ãããã¨ã«ãã¾ããã
1ã¤ãã¤è¦ã¦ããã¾ãã
servers.yml
localhost: host: 192.168.56.10 port: 22 user: root identity_file: public_key: ~/.ssh/id_rsa.pub private_key: ~/.ssh/id_rsa password: '' stage: localhost deploy_path: /tmp/project branch: master
192.168.56.10ã192.168.56.11åæ¹ã§éµèªè¨¼ã§ããããã« åæ¹ã®authorized_keysãä½æããéµèªè¨¼ã§sshã§ããããã«ãã¦ããã¦ãã ããã
å ã¿ã«ä»åã¯id_rsaã«ã¯Passwordè¨å®ã¯ãã¦ãã¾ããã
ããã«ã¯ãããããµã¼ãæ¯ã®è¨å®ãæ¸ãã¦ããã¾ãã ããã§æ³¨æããªãããããªãã®ã¯identity_fileã®passwordé¨åã§ãã è¨å®ã®ä»æ¹ãããã£ã¨èª¿ã¹ãã ãã§ã¯åºã¦ããªããpasswordãè¨å®é ç®ã«å«ã¾ãªãå ´å deployã®åº¦ã«ãã¹ã¯ã¼ãããããã¾ãã ããããå®éã«ã¯éµèªè¨¼ãã§ãã¦ããã®ã§ç©ºã¨ã³ã¿ã¼ã§å¦çãç¶è¡ãããã®ã§ãã
ã©ãããã°ããã®ãããããã«çµå±buildåã®ã½ã¼ã¹ãèªãã§è§£æ±ºããã®ã§ãããç´å¾ãããªãã§ãã»ã»ã»
ç´°ããã¯æ¸ãã¾ããããè¨å®å¤ã®æ å ±ã¯Builder.phpã§å®è¡ãããããã§ãã identityFileãè¨å®ããå ´åã¯å¿ ããã¹ã¯ã¼ããã§ãã¯ãèµ°ãã®ã§ãã
å ã¿ã«identityFileã§æå®ããpublic_keyã¨private_keyã¯ããã©ã«ã ~/.ssh/id_rsa.pub ~/.ssh/id_rsa ã¨ãªã£ã¦ããã®ã§ãåãã§ããã°ç¹ã«è¨å®ããªãã¦ãOKã§ãã
stageã¯ã³ãã³ãã§ã®å¼æ°ã§Environmentç¨ã«localhostã¨ãã¾ãã deploy_pathã¯deployå (192.168.56.10)ã®ã©ãã«deployãããã®pathã§ãã
ããã§è¨å®ãã¡ã¤ã«ã®è¨è¿°ã¯å®äºã§ãã
次ã«deploy.phpãè¨è¿°ãã¦ããã¾ãã
<?php require 'recipe/composer.php'; serverList('config/servers.yml'); set('repository', '[email protected]:/xxx.git');
ããã ãã«ãªãã¾ãã
deployer å®è¡
æ©éå®è¡ãã¦ã¿ã¾ãããã
[root@localhost deploy]# dep deploy localhost â Executing task deploy:prepare â Executing task deploy:release â Executing task deploy:update_code â Executing task deploy:shared â Executing task deploy:vendors â Executing task deploy:symlink â Executing task cleanup ⤠Executing task success Successfully deployed! â Ok
ãããªæãã§deployãå®äºãã¾ãã
æµãã¨ãã¦ã¯
- sshæ¥ç¶
- ãªãªã¼ã¹ãã£ã¬ã¯ããªä½æ
- gitããã®checkout or clone
- sharedã«ç§»ããã¡ã¤ã«ãããå ´åã¯ãã¡ã¤ã«ãããã¯ãã£ã¬ã¯ããªã移å â»ããã¯set('shared_dirs', [application/logs, directory/path]);ã®ãããªå½¢ã§sharedãã£ã¬ã¯ããªã«éé¿ã§ããã
- composer installãå®è¡
- deployãããã£ã¬ã¯ããªã«ã·ã³ããªãã¯ãªã³ã¯ãè²¼ã
- ä¸ä»£ç®¡çæ°ãè¶ ãããªãªã¼ã¹ãã£ã¬ã¯ããªä»¥ä¸ã®ã½ã¼ã¹ãåé¤ãã
- suucessfully deployed!ã表示
æ©é192.168.56.10å´ã®deploy_pathã«æå®ãã/tmp/projectã確èªãã¦ã¿ãã¨
drwxr-xr-x 4 root root 4096 5æ 27 10:31 2016 . drwxrwxrwt. 11 root root 4096 5æ 27 10:31 2016 .. lrwxrwxrwx 1 root root 36 5æ 27 10:31 2016 current -> /tmp/project/releases/20160527011759 drwxr-xr-x 5 root root 4096 5æ 27 10:31 2016 releases drwxr-xr-x 2 root root 4096 5æ 26 13:04 2016 shared
è¦ããã¨ãããããªæãã§deployããã¦ãã¾ããã
ä½åº¦ãdeployãã¦ã¿ãã®ã§ãã releaseãè¦ãéã
drwxr-xr-x 5 root root 4096 5æ 27 10:31 2016 . drwxr-xr-x 4 root root 4096 5æ 27 10:31 2016 .. drwxr-xr-x 8 root root 4096 5æ 26 19:42 2016 20160526102859 drwxr-xr-x 8 root root 4096 5æ 26 20:05 2016 20160526105235 drwxr-xr-x 8 root root 4096 5æ 27 10:31 2016 20160527011759
ããã©ã«ãã§3ä¸ä»£ç®¡çããã¦ããããã§ããã
ããã®ä¸ä»£ç®¡çãå¤æ´ããå ´åã¯
deploy.phpã«
set('keep_releases', 5);
keep_releasesã®å¤ãè¨å®ãã¦ãããã¨å¤æ´ããã¾ãã
以å¾ãdeployerãCapistranoã¨åæ§ã«ä½¿ããã®ããå°ããã¤è¿½ã£ã¦ããããã¨æãã¾ãã