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.
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 install python-pip -y pip cactus yui-compressor ln -s usr bin yuicompressor closure-compiler 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
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/
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
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.