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.