Migrating to bahmni-installer rpm based installation

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

  1.  Stop all services

    service tomcat stop
    service openerp stop
    service nagios stop


    switch off chkconfig for tomcat, openerp.

    chkconfig tomcat off
    chkconfig openerp off
  2. 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

      

  3. Take backup of all individual DBs **IMPORTANT**

    bahmni -i <inventory_file_name> db-backup

    Take backup of service logs if necessary.

  4. 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
  5. Take Backup of Nagios

    cp -r /etc/nagios /etc/nagios_bkup
  6. 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.

  7. 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

  1. 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
  2. rpm -e jdk  or  yum remove jdk(If JAVA conflict occurs.)

  3. 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
  4. 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 rpm

    yum remove python-yaml

    Then try to install again. Verify that 3.10 is being installed.

    yum install python-yaml

After deployment

   

  1.  Check whether mysql and psql replication works.
     

  2.  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/
  3. 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 
     

  4.  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';
    
  5. 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