Migrating to bahmni-installer rpm based installation
- Preethi
- Gurpreet Luthra
- vikash gupta
Before installation of bahmni-installer rpm
This page has been created for those users who had installed Bahmni v0.78, 0.79, etc using the old way of installing Bahmni via a single "sh" based script. If you have folders called "apache-tomcat" in your machine for Bahmni, and have not done RPM based installations of Bahmni, then this page is for you.
Most users of Bahmni are on RPM based installations, and hence do NOT need to read / follow this document.
Remove epel-release rpm before installing bahmni-installer rpm
yum remove epel-release
Instructions to bahmni installation using bahmni-installer rpm is available in Install Bahmni on CentOS (Advanced Installation Options). Proceed till step 5 as mentioned in the link. After Step 5, following things have to be done manually to migrate from old sh based installation to bahmni-installer rpm based installation:
After installation of bahmni-installer rpm
Stop all services
service tomcat stop service openerp stop service nagios stop
switch off chkconfig for tomcat, openerp.chkconfig tomcat off chkconfig openerp off
Move bahmni related webapps from tomcat's webapps directory to some other directory.
cd ~/apache-tomcat-8.0.12 #cd into apache tomcat directory mkdir -p old_webapps mv webapps/openmrs old_webapps/ mv webapps/bahmnireports old_webapps/ mv webapps/openelis/ old_webapps/ mv webapps/openerp-atomfeed-service/ old_webapps/ mv webapps/pacs-integration old_webapps/ rm -rf webapps/bahmnireports.war rm -rf webapps/pacs-integration.war rm -rf webapps/openerp-atomfeed-service.war rm -rf webapps/openelis.war rm -rf webapps/openmrs.war
Take backup of all individual DBs **IMPORTANT**
bahmni -i <inventory_file_name> db-backup
Take backup of service logs if necessary.
Backup certain properties files
mv /home/bahmni/.OpenMRS/bahmnicore.properties /home/bahmni/.OpenMRS/bahmnicore.properties.bkp mv /home/bahmni/.bahmni-reports/bahmni-reports.properties /home/bahmni/.bahmni-reports/bahmni-reports.properties.bkp mv /etc/init.d/openerp /etc/init.d/openerp.bkp
Take Backup of Nagios
cp -r /etc/nagios /etc/nagios_bkup
Uninstall mysql if it is 5.6.12 since mysqld service is not present.
To see the list of mysql components installed, run the following command:yum list installed | grep MySQL
Uninstall the listed components. But be aware of the dependencies which might get removed by removing mysql components as well.
check whether pg_basebackup command is available. If it is not available, use alternatives to make /usr/pgsql-9.2/bin/pg_basebackup available to /usr/bin
/usr/sbin/update-alternatives --install /usr/bin/pg_basebackup pgsql-pg_basebackup /usr/pgsql-9.2/bin/pg_basebackup 920
Now the installation can be continued from Step 7 as mentioned in the link - Trigger Installation
Some common errors during deployment and steps to resolve them
When any yum operation fails with the error - 'Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again', execute the following:
sudo yum upgrade ca-certificates --disablerepo=epel
rpm -e jdk or yum remove jdk(If JAVA conflict occurs.)
On starting the installation, if it fails saying that ansible could not be installed or ansible-playbook command is not found, epel-release rpm has to be reinstalled.
yum remove epel-release yum install epel-release
If we get 'AnsibleLoader' object has no attribute 'dispose' on any command in Bahmni, 'PyYAML' has to be upgraded to 3.10.
Link to ansible issue: https://github.com/ansible/ansible/issues/15660
First remove python-yaml rpmyum remove python-yaml
Then try to install again. Verify that 3.10 is being installed.
yum install python-yaml
After deployment
Check whether mysql and psql replication works.
Move patient_images, uploaded-files, uploaded_results, document_images from old tomcat user home folder to /home/bahmni folder. In the below snippet, We have assumed that 'jss' user had tomcat deployed in it. This step is not applicable if 'bahmni' was the old tomcat user.
mv /home/jss/patient_images/* /home/bahmni/patient_images/ mv /home/jss/uploaded-files/elis/* /home/bahmni/uploaded-files/elis/ mv /home/jss/uploaded-files/mrs/* /home/bahmni/uploaded-files/mrs/ mv /home/jss/uploaded_results/* /home/bahmni/uploaded_results/ mv /home/jss/document_images/* /home/bahmni/document_images/ cd /home/bahmni chown -R bahmni:bahmni document_images/ chown -R bahmni:bahmni patient_images/ chown -R bahmni:bahmni uploaded-files/ chown -R bahmni:bahmni uploaded_results/ chmod -R 755 document_images/ chmod -R 755 patient_images/ chmod -R 755 uploaded-files/ chmod -R 755 uploaded_results/
Update global_poperties in openmrs to have /home/bahmni as directory instead of /home/jss
a) emr.personImagesDirectory
b) uploaded.files.directory
There can be some more as well
Update site information – parentOfUploadedFilesDirectory – check for the value once before doing it in clinlims database.
update site_information set value= '/home/bahmni' where name = 'parentOfUploadedFilesDirectory';
With the new way of installation, we had made 'bahmni' user as just run user. And we add a new user called 'bahmni_support' for ssh purposes.
a) Inorder to make bahmni as non-ssh user, following command needs to be executed. This command will lock the 'bahmni' user account for login.passwd -l bahmni
b) Inorder to make bahmni as non-sudoer, do the following – Be very careful with this step
1. type 'visudo' in shell
2. Remove the line bahmni ALL=(ALL) NOPASSWD:ALL
3. save it
On this page
The Bahmni documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)