Skip to content

Instantly share code, notes, and snippets.

@jmbejar
Last active September 29, 2016 01:03
Show Gist options
  • Save jmbejar/c149118b3f21140e4520c85c3219d04f to your computer and use it in GitHub Desktop.
Save jmbejar/c149118b3f21140e4520c85c3219d04f to your computer and use it in GitHub Desktop.
Pasos de instalación Servidor Ubuntu para Rails

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).

Instación de Ruby

Instalamos librerías de sistema necesarias

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

Instalamos un gestor de versiones para ruby (rbenv)

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

source ~/.bashrc

Instalamos ruby usando ruby-build

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv install 2.3.1
rbenv global 2.3.1

Instalamos gems básicas: bundler y rails

echo "gem: --no-document" > ~/.gemrc
gem install bundler
gem install rails

rbenv rehash

Instalamos NodeJS (necesario para procesar assets)

cd /tmp
\curl -sSL https://deb.nodesource.com/setup_6.x -o nodejs.sh
less nodejs.sh

sudo apt-get install -y nodejs

Instalamos rbenv-vars para gestionar env vars para la aplicación Rails

git clone https://github.com/rbenv/rbenv-vars.git $(rbenv root)/plugins/rbenv-vars

Instalación de nginx

sudo apt-get install nginx

sudo update-rc.d nginx defaults
sudo service nginx start

Instalación de Postgres

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.

Deployment

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.

Traernos el código de la aplicación

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.

Deployment

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.

Comandos para deployear

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment