Vagrant Setup pour Cactus

Cactus étant semi-compatible avec Windows, j'ai concocté un setup vagrant simplifié sous debian qui a exactement ce qu'il faut sous le capot pour rouler le tout en développement et aussi afin de déployer avec aws-cli et surtout éviter de commiter ses accès AWS dans la configuration de cactus.

Vagrantfile

Voici le fichier manifest utilisant du simple inline shell:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "debian/jessie64"

  config.vm.network "forwarded_port", guest: 8000, host: 8000

  config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
  config.vm.synced_folder "./projects", "/projects", type: "virtualbox"

  config.vm.provider "virtualbox" do |vb|
    # Display the VirtualBox GUI when booting the machine
    vb.gui = false
    vb.memory = "1024"
  end

  config.vm.provision "shell", inline: <<-SHELL
    sudo apt-get update
    sudo apt-get install python-pip -y
    sudo pip install cactus
    sudo apt-get install yui-compressor -y
    sudo ln -s /usr/bin/yui-compressor /usr/bin/yuicompressor
    sudo apt-get install closure-compiler -y
    sudo pip install awscli
    cat <<EOB > /root/.bashrc
    export LS_OPTIONS='--color=auto'
    alias ls='ls \$LS_OPTIONS'
    alias ll='ls \$LS_OPTIONS -l'
    alias la='ls \$LS_OPTIONS -la'
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    EOB
  SHELL

end

Installation

Assurez-vous premièrement d'avoir VirtualBox et Vagrant d'installés.

Dans un répertoire de votre choix, par exemple c:\dev\cactus, cloner ce repository git: https://github.com/fredbourni/vagrant-cactus.git.

Pour ceux qui n'ont pas un client git, vous pouvez simplement télécharger le fichier zip de github: https://github.com/fredbourni/vagrant-cactus/archive/master.zip

Changez votre répertoire courant pour celui du dossier où vous avez cloner le repo:

cd c:\dev\cactus

Lancer la machine virtuelle avec vagrant

vagrant up

Utilisez putty pour vous connecter à la machine virtuelle en utilisant l'adresse 127.0.0.1 port 2222 et créé votre premier site

cactus create /projects/mysite.com
cd /projects/mysite.com

Roulez le serveur interne de cactus vous permettant de tester votre site:

cactus serve

Visitez votre site fait avec cactus en pointant votre fureteur à l'adresse http://127.0.0.1:8000/

Génération du site static

Toujours en SSH dans votre bash shell, builder votre site en générant les fichiers html, css, js, etc.:

cd /projects/mysite.com
cactus build

Déploiement sur un S3 bucket avec awscli

Encore sur le shell, configurez awscli avec votre usager AWS ayant accès API à votre S3 bucket de choix:

aws configure

Envoyer vos fichiers sur votre S3 bucket (sans utiliser cactus pour déployer):

aws s3 sync /projects/mysite.com/.build s3://mysite.com

Voilà, c'est fait, vous avez un site de base facile à tester et déployer.