FreeSHR-Playbooks
We are using ansible to install/provision all our HIE-Components. FreeSHR-Playbooks is a github repository which stores all the ansible playbooks for HIE-Components.
Structure of FreeSHR-Playbooks:-
- The inventories folder contains the information about where each of the services will be installed. Each Service can be installed on a single host or multiple hosts in case of multi-node server. For each environment there will be a separate file.
 - The group_vars folder contains the different parameters for each services which are configurable depending on the enviornment. E.g.:- SHR port might be different in two different environment.
 - The roles folder contains the tasks to be performed to setup/install a service. E.g.:- A role named SHR-Server will have tasks to setup SHR-Server.
 - There are below playbook files:-
- cassandra.yml is responsible for installing cassandra and creating users for cassnadra.
 - datasense.yml installs datasense service.
 - go.yml installs go-server and go-agents.
 - mci.yml installs complete MCI-Package which includes MCI-Server, HealthId-Sever, MCI-LR, MCI-Background-Jobs and MCI-Admin UI.
 - nagios.yml installs nagios server and nrpe-agents.
 - patient-journal.yml installs patient-journal server.
 - shr.yml installs SHR-Server, freeshr-update-service and shr-migration-service.
 - tr.yml installs Terminology-Server and Tr-Feed-Omod. It can be used to insert some seed data for TR as well.
 - all.yml installs haproxy and stub identity server.
 
A single playbook is responsible for installing more than one services. In each playbook file there are tags to install each particular service which can be mentioned to install a specific service instead of all the services in that playbook.
 
Setting up provisioner box:-
Before we start the installing we need to setup a box from where we can run the ansible commands. For other environments we provision/deploy services from go-agent machines. For local environment we will setup a vagrant box for the same purpose.
- Install VirtualBox and Vagrant.
 - Clone the FreeSHR-Playbooks Repository.
 - Go into the folder where you have cloned the repository.
 - 
Run vagrant up. It will start a vagrant box with centos 6.5.
 - 
Run vagrant ssh. It will open the shell for the centos box.
 - 
Run sudo yum install epel-release. This will install epel-release which is needed to install ansible on centos.
 - Run sudo yum install ansible. This will install ansible 2.x.
 
Note:- Ansible establishes a SSH connection to install services on other machines with a given user (vagrant for local environments). Before installing services on a fresh box it is recommended to perform a SSH from provisioner box to target box with vagrant user.