Estos son los pasos de instalación para preparar una instancia de Ubuntu creada en MS Azure (es una instancia que solo trae instalado el sistema operativo Ubuntu 16.04).
sudo apt-get update
sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv install 2.3.1
rbenv global 2.3.1
echo "gem: --no-document" > ~/.gemrc
gem install bundler
gem install rails
rbenv rehash
cd /tmp
\curl -sSL https://deb.nodesource.com/setup_6.x -o nodejs.sh
less nodejs.sh
sudo apt-get install -y nodejs
git clone https://github.com/rbenv/rbenv-vars.git $(rbenv root)/plugins/rbenv-vars
sudo apt-get install nginx
sudo update-rc.d nginx defaults
sudo service nginx start
sudo apt-get install postgresql postgresql-contrib libpq-dev
Editar el archivo "/etc/postgresql/9.5/main/pg_hba.conf" usando sudo (por ejemplo, con el comando sudo vi /etc/postgresql/9.5/main/pg_hba.conf
) y asegurarse de que tenga las siguientes lineas:
local all all trust
host all 127.0.0.1/32 trust
(es muy probable que vean dos lineas muy parecidas, teniendo el valor "md5" en vez de "trust". Simplemente cambien para que diga "trust" y el código de deployment en la aplicación rails va a poder crear nuevas bases de datos y conectarse.
Los pasos anteriores prepararon la máquina virtual en Azure para que se pueda deployear la aplicación Rails. Los siguientes pasos deben ejecutarse en la máquina de desarrollo.
git clone [email protected]:wyeworks/workshop-rails-netconfuy.git
En particular, el último commit trae toda la configuración de Capistrano para poder hacer deploy.
Como paso previo al deploy, debemos tener un repositorio en Github (u otro servicio similar) donde subir el código. Deben crearse una cuenta, un repositorio y subir una copia del proyecto usando el comando git push
.
Debemos localizar el archivo config/deploy.rb
y allí cambiar el valor correspondiente a la ip o url de nuestro servidor en Azure:
server '<ip o url del servidor en azure>', roles: [:web, :app, :db], primary: true
El valor de la IP la pueden consultar a través del portal de Azure (es uno de los valores que aparecen al seleccionar la máquina virtual).
También se debe cambiar la linea donde está el repositorio en Github, a la cuenta que ustedes se configuren y donde estén subiendo el código.
set :repo_url, '<url del repositorio>'
También debemos tener acceso SSH a esa máquina virtual, con claves SHH generadas con el programa PuTTYgen, agregadas a Pageant y configuradas a través del portal de Azure.
Debemos además tener asociada nuestra clave pública a nuestro usuario de Github: https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
Si necesitan ayuda con este paso, pueden escribirme a [email protected] y les envío instrucciones más precisas.
Los siguientes comando se deben ejecutar en la máquina de desarrollo, usando por ejemplo PowerShell, estando en el directorio donde está el código de la aplicación.
Comandos que se ejecutar la primera vez:
cap production setup
cap production linked_files:upload_files
Comando para hacer deploy del código.
cap production deploy