Ruby on Rails with Ubuntu – A #DevMov Challenge
Developer Movement – New #DevMov Challenges
A new set of #DevMov challenges are out. You have from Feb 16th through March 15th, 2015 to complete them. Today I will be discussing how to complete the Ruby On Rails challenge. You can see all the challenges over at https://msdn.microsoft.com/en-ca/dn806338.
If you have not heard, Developer Movement allows people to get active and motivated to learn coding. You receive points for completing challenges and can use those points for awesome such as, a new Surface Pro 3.
#DevMov Challenge – Ruby on Rails
The description for this challenge reads:
Create a simple Ruby on Rails web app on an Azure virtual machine. Read this tutorial for some helpful tips.
Submission Criteria: Upload a screenshot that clearly shows your virtual machine instance in the Azure portal (make sure we can see the running status and DNS name), and the corresponding web app running in your browser window.
Sounds simple enough, right? I went ahead and followed the tutorial the challenge mentions, and it was missing a few things so I decided to help people out with the missing steps.
In order to complete the task at hand:
- You must have an Azure account. If you don’t have one, don’t worry, you can try a free trial.
- You must start a VM (Virtual Machine)
- You must install the Ruby On Rails packages and dependencies
- You must create your simple web app
- You must celebrate learning something new
Creating a Virtual Machine
Once you have an Azure account, creating a Virtual Machine is quite simple.
Firstly, sign into your azure account. Once inside, you will see a new button on the bottom left of the screen, press that.
After selecting the New button, Press commute, Virtual Machine, and quick create. You will need to type a name for your Virtual machine. For my Virtual Machine, and to follow these steps, choose the Ubuntu (in this case, version 14.10). To keep cost down, I selected the most basic Virtual Machine. If you are on a trial, you don’t need to worry about costs too much. Type a password, you will use this to sign into your Virtual Machine. Below is a screenshot of my sample settings:
Once you create the VM, you will see a screen explaining the status of the creation. Once everything is done, you will see a screen similar to this:
Now it is time to sign into the server and install your packages. You will need to use a program to do this, in my case I used the free program PuTTy. You will need to enter the server name you entered when you created the VM. Once entered, you need to press open.
You will see a command prompt window appear, asking for your username and password. The username should be azureuser and the password is whatever you chose when creating the VM. When typing in the password, you might not see your cursor move. This is normal. Once you type your password, press enter.
Now to enter a series of commands to install the required packages.
sudo apt-get update
Once this is complete, enter (tip, you can copy this command and then right click in the command prompt to paste it):
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties
Once complete, enter:
sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
curl -L https://get.rvm.io | bash -s stable
If you get an error complaining about a key signature with the above command, enter the command mentioned under the error, followed by the previous command again. The command will look similar too:
gpg –keyserver hkp://keys.gnupg.net –recv-keys 1234567890ABCDEFGHIJKLMNOP
Some commands do not have any output, like the next command:
echo “source ~/.rvm/scripts/rvm” >> ~/.bashrc
rvm install 2.1.5
rvm use 2.1.5 –default
If all of the previous commands worked, you should see output similar to the screen shot below after typing:
If your output looked like the screenshot above, type:
echo “gem: –no-ri –no-rdoc” > ~/.gemrc
We are almost done! We need to install node.js with:
sudo add-apt-repository ppa:chris-lea/node.js
A quick update with:
sudo apt-get update
sudo apt-get install nodejs
And now for the magic install command to tie it all together:
gem install rails
Now that everything is installed, we can setup our first app.
The next command will set up the rails files for first use:
rails new blog
There will be a folder created called blog, go to it by typing:
Now we want to used the rails framework to automatically generate some code for us. This will create the needed code for a simple submit page. Type:
rails generate scaffold Post name:string title:string content:text
Once complete (it could take a few minutes) enter:
Next, you will want to set up an endpoint for your VM so it knows where to listen for your Ruby on Rails server. From your Azure account, go to the Dashboard for your VM. Click on Endpoints, like below:
You will see a window pop-up after pressing the Add button, select Add A Stand-Along Endpoint. Next, press the arrow to continue.
You will need to select HTTP as the name of the endpoint, TCP for Protocol, 80 for Public Port, and 3000 for Private Port. After, press the check-mark to finish. Your settings should look similar to the screenshot below.
Now we can start our Rails server and try the simple app. From your command window from earlier, type:
rails server -b 0.0.0.0
Now you should be able to open your internet browser and go to the VM name you choose during setup. You need to add posts to the URL. Below is an example of the VM I setup.
If you press New Post you will see input that the scaffold created. And that’s it! You are done. Pat yourself on the back and call it a day.
Take the required screenshots and submit them for your points to #DevMov for some free gear from Microsoft.