2. Overview
The deployment of GNU Health and other applications is automated in a modular way. Thus the same scripts ca be used for an installation without virtualization, on one Virtual Machine (VM) or distributed on multiple VMs in order to have one distinct system per functionality. The latter case is visualized in the following graphic:
This is realized using the automation and configuration management tool Ansible.
For every type of deployment there are .yml files in the playbooks directory. Those are the main scripts that you can execute.
Additionally there are Ansible roles with the corresponding names and other roles getting called implicitly. They are containing the tasks that will install packages and perform configuration steps for creating the desired service.
The vagrant folder contains Vagrantfiles and inventory files for overriding the hosts file mentionned above. Those can be used to set up VMs using VirtualBox for different scenarios.
If files are needed by different systems those are put into the fetch folder. For some cases of handling certificates files have to be transferred from one system to another. Besides the desktop systems having the GNU Health client installed need connection parameters of the server. Those are also written into this folder.
Finally there are tests that are constantly used and docs which you are currently reading.
For a quickstart you can switch into the chapter Examples.
Until here it is possible to split your GNU Health (or Orthanc) system into the actual application, PostgreSQL, Nginx, a custom Certificate Authority (CA) and a backup system. If you want all of them to be different systems your hosts file should be modified to match the following snippet. Replace the <placeholders> by your actual domain name or IP address. The variable ansible_port is put so you could set a custom SSH port. By default there is one uncommented entry in the top level group leading to all in one system.
[gnuhealth]
# outcommented ansible_port=22
[...]
[gnuhealth_app]
<domain> ansible_port=22
[gnuhealth_psql]
<domain> ansible_port=22
[gnuhealth_nginx]
<domain> ansible_port=22
[gnuhealth_ownca]
<domain> ansible_port=22
[gnuhealth_bak]
<domain> ansible_port=22
You can modify ansible.cfg in the top level directory if you wish to change your Ansible configuration options.