4.1.1. GNU Health server and client in one system
This example is meant to be followed in an existing Virtual Machine (VM). It installs a GNU Health server and client on one system, running Ansible locally on the same system. PostgreSQL database, Nginx webserver and certificates are handled in the background.
This scenario is intended to be as easy as possible to create an instance for testing or developing.
If you want to install another server - e.g. Orthanc - you only have to call the corresponding playbook. Dependencies don’t differ.
Note for users without GNU/Linux experience: The following commands are meant to be executed in the terminal. Often you can open it using Ctrl+Alt+T. Copy & Paste inside a terminal has the shortcuts Ctrl+Shift+C & Ctrl+Shift+V, don’t forget the Shift. If using VirtualBox you should either open this instructions inside the VM or install Guest Additions for a shared clipboard.
4.1.1.1. Debian
The user performing the deployment needs sudo access. If you did not grant sudo access yet, run the following commands:
$ su -
# usermod -aG sudo <username>
# exit
Afterwards log out and log in again. Use the command groups to verify if it worked. Now follow the instructions for Ubuntu.
4.1.1.2. Ubuntu
Install the requirements:
$ sudo apt install pipx git
$ pipx ensurepath
$ source ~/.bashrc
$ pipx install ansible-core
$ ansible-galaxy collection install community.crypto community.general community.postgresql ansible.posix
Clone and enter this repository:
$ git clone https://codeberg.org/gnuhealth/ansible.git
$ cd ansible
Run the playbook:
$ ansible-playbook playbooks/gnuhealth_minimal.yml -i inventories/dev -c local -e ansible_user=`whoami` -K
You will get a prompt for the sudo/become password thanks to the -K flag.
You can run the client either using the desktop entry or from terminal:
$ gnuhealth-client
Hit Connect and enter the password gnusolidario.
4.1.1.3. openSUSE Leap
Install the requirements:
$ sudo zypper install python311 python311-pip git
$ python3.11 -m venv --system-site-packages venv
$ source venv/bin/activate
$ pip3 install ansible-core
$ ansible-galaxy collection install community.crypto community.general community.postgresql ansible.posix
By default any user can become root by entering the root password. The below changes only allow the wheel group and ask for the user password itself - not the root password. This change of the sudo functionality is necessary to make swichting users in Ansible work:
$ su
# usermod -aG wheel <username>
# visudo
-> outcomment following two lines:
Defaults targetpw # ask for the password of the target user i.e. root
ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw'!
-> uncomment following line:
# %wheel ALL=(ALL:ALL) ALL
# reboot
Run
source ~/venv/bin/activate
again and follow the rest of the instructions for Ubuntu (starting with ‘git clone …’)
4.1.1.4. FreeBSD
This was tested with a FreeBSD 14.1 VM where UFS & MBR where chosen and the user was added to the wheel group during the installation.
Preparations as root:
$ su
# mount -o acls /
# pkg update
# pkg install git py311-pipx rust sudo bash
# ln -s /usr/local/bin/python3.11 /usr/bin/python3
# visudo
→ Uncomment or add line '%wheel ALL=(ALL:ALL) ALL'
→ Save and close by hitting 'Esc', ':wq' and 'Enter'
# exit
Install Ansible:
$ echo "export PATH=$PATH:/home/`whoami`/.local/bin" >> ~/.shrc
$ . ~/.shrc
$ pipx install ansible-core
$ ansible-galaxy collection install community.crypto community.general community.postgresql ansible.posix
Follow the rest of the instructions for Ubuntu (starting with ‘git clone …’)