An easy way to start developing in ManageIQ

##What is this for?##

There are some steps that you need to take to make your laptop ready to code for ManageIQ. The developers guide detail those steps and once you follow them you can start coding.

However, some times you don’t want to install some software in your OS (as the PostreSQL database or memcached), or you just want to test some code. In those cases, development can get more complicated as you won’t be able to test it in your machine.

To simplify the set up, there is a new Vagrant file that will launch a Fedora 24 VM, install and configure all software - including rbenv and database, and copy the code to it so you can safely run it. It will also open port 3000 for UI management (connect to localhost:3000), and port 4000 for API management

Using the code

Code can be found in github.

  • Install Vagrant, Ansible and Virtualbox in your development machine
  • git clone to get the source code
  • cd into the directory
  • vagrant up will download the image, install and configure the software, and copy the source code.


It won’t run bin/setup to download the gems and run the database migration, so you can test them.
It won’t execute rake evm:start to start the service that you will find in localhost:3000
Synchronization is only done once because the strategy is rsync (you need to call vagrant rsync to resynchronize)

Adapting the Vagrantfile

  • You can add additional folders to be synchronized
  • It is possible to use other synchronization strategies. Many of them allow bidirectional synchronization so you can see your changes in real time
  • You can change the resources in the VM to give it more resources
  • You can run automatically bin/setup

Collaboration is welcome

Please submit your PR, issues and code if you find it useful and you want to improve it


I didn’t try it, but it seems worth the effort to give it a go. An enhancement would be to use the development profile, and not the production profile. You can select this profile in file /etc/default/evm, by setting environment variable ‘RAILS_ENV’ from production to development. Be aware that this profile is governed by file /var/www/miq/vmdb/config/environments/development.rb, and that you may need to make some changes there, when you are using an embedded PostgreSQL server.


I am using the development guide, you should be in development mode by default being a rails app and running it in console

Let me check it anyway. I will do a PR if that is the case.

I am more concerned on testing it on a Mac and adding two-way sync to the repo, so you don’t need to manuallly rsync, and to update it to synchronize all needed repos


I’ve seen that the development environment is in development mode, it is not build from the appliance so it works like any rails application.