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.