Update nodejs 4.x to 6.x

ghost v0.11.3からnodejs6系がサポートされるようになりました。

ので4.xから6.xにあげてく(もちろんghostは0.11.3にアップグレード済み)。

まずは諸々やる前にdropletのスナップショットをとっておく。

  • 最悪スナップショットからサーバ立てて復活できるので!
doctl compute droplet-action snapshot <dropletのID> --snapshot-name ponpokopon.me-$(date +%Y%d%m%H%M) -v  

ansibleプレイブックの修正。

  • バージョン部分いじっただけ
 - name: setup is downloaded
 -  get_url: url=https://rpm.nodesource.com/setup_4.x dest=/tmp/setup_4.x
 +  get_url: url=https://rpm.nodesource.com/setup_6.x dest=/tmp/setup_6.x
    when: not result_nodesource_el_repo.stat.exists
    tags: nodejs

  - name: nodesource repo is installed
    become: yes
 -  shell: bash /tmp/setup_4.x
 +  shell: bash /tmp/setup_6.x
    when: not result_nodesource_el_repo.stat.exists
    tags: nodejs

サーバ側でnodejs、リポジトリファイルを削除する。

  • yum cleanしないと古いリポジトリ参照しようとしてエラーになる場合がある
sudo yum remove nodejs  
sudo rm /etc/yum.repos.d/nodesource-el.repo  
sudo yum clean all  

ansible-playbook実行。

ansible-playbook -i production site.yml --tag nodejs  

バージョンが4.xから6.xに上がった!

$ node -v
v6.9.2  

その後ghostのnpm installをやりなおす。

cd /var/www/ghost  
sudo npm install --production  

ghostを再起動する。

sudo systemctl restart ghost  

手作業多いのが気になるところ...。