IRMA platform is easily installed thanks to a set of ansible roles and playbooks. It will allow you to build, install or maintain different setups.
- First, clone this repository:
$ git clone https://github.com/quarkslab/irma-ansible
There are 3 different types of IRMA setup:
- Testing IRMA, the easiest way (everything in one vm)
- Production environment (install on physical servers)
- Development environment (everything in one vm with sources rsync'd between host and vm)
- Ansible 1.8 or higher;
Dependencies are available via Ansible Galaxy repository. Installation has been made easy using:
$ ansible-galaxy install -r ansible-requirements.yml # --force if you’ve already installed it
Everything will be installed in the same virtual machine named brain.irma.
- Vagrant 1.8 or higher has to be installed
- As the installation work only for Virtualbox, you’ll need to install it
Simply run in the Vagrantfile directory:
$ vagrant up
Vagrant will launch a VM and install IRMA on it. It can take a while (from 15 to 30 min) depending on the amount of RAM you have on your computer and the hard disk drive I/O speed.
IRMA allinone interface is available at http://172.16.1.30.
Note: The basebox used in this project is provided by Quarkslab. The code source to build it is here.
some useful commands with vagrant:
$ vagrant ssh brain.irma # login through ssh
$ vagrant halt brain.irma # shutdown the machine
$ vagrant reload brain.irma # restart the machine
$ vagrant up brain.irma # start the machine
$ vagrant destroy brain.irma # delete the machine
for advanced usage of vagrant be sure to check extras
$ git clone https://github.com/boxcutter/windows
$ cd windows
$ make virtualbox/eval-win8x64-enterprise
$ vagrant box add --name eval-win8x64-enterprise box/virtualbox/eval-win8x64-enterprise*.box
$ vagrant up
$ sudo pip install pywinrm
$ ansible-playbook -i inventory playbooks/playbook.yml -u vagrant -k
Some of roles from Ansible Galaxy used here:
- MongoDB role from Stouts/Stouts.mongodb
- NodeJS role from JasonGiedymin/nodejs
- Nginx role from jdauphant/ansible-role-nginx
- OpenSSH role from Ansibles/openssh
- UFW role from weareinteractive/ansible-ufw
- Sudo role from weareinteractive/ansible-sudo
- Users role from mivok/ansible-users
- uWSGI role from gdamjan/ansible-uwsgi