CentOS에 Bahmni 설치(고급 설치 옵션)
소개
Bahmni를 설치하려면 먼저 'bahmni' 명령줄 도구를 설치해야 합니다. 이 도구는 Bahmni 설치와 구성을 위한 여러 옵션을 제공합니다. 내부적으로 Ansible을 사용하여 로컬 컴퓨터 한 대 또는 여러 컴퓨터에 Bahmni 서버를 구성합니다. 이 페이지에서는 자체 구현 구성 선택, 패시브 보조 서버 구성, 특정 데이터베이스 선택 등 사용 가능한 여러 옵션을 설명합니다.
Bahmni ?? ??
1단계: 새 CentOS 구성
Bahmni 0.92를 운영 환경에서 실행할 때 권장되고 검증된 플랫폼은 CentOS 7.6 64비트입니다. 새 CentOS V6.x 시스템을 만들고 자세한 내용은 관련 안내서를 참조하십시오. Windows나 Ubuntu에서 Bahmni를 평가·설치하는 등의 다른 목적에는 가상 머신을 설치할 수 있습니다.
Bahmni 0.91 이하 버전에는 CentOS 6.9 64비트를 권장합니다.
2단계: Bahmni 설치 프로그램 다운로드 및 구성
bahmni-installer RPM은 'bahmni'라는 명령줄 유틸리티를 설치합니다. 여기에 설명된 단계에 따라 Bahmni 명령줄 도구를 설치하십시오.
# Become root user
sudo su
# Please see prerequisites section in the release notes and install any dependencies
# Install the bahmni command
# yum install https://repo.mybahmni.org/releases/bahmni-installer-<major_verion>-<minor_version>.noarch.rpm
yum install https://repo.mybahmni.org/releases/bahmni-installer-0.93-219.noarch.rpm #version 0.93.2
yum install https://repo.mybahmni.org/releases/bahmni-installer-0.93-215.noarch.rpm #version 0.93.1
yum install https://repo.mybahmni.org/releases/bahmni-installer-0.93-197.noarch.rpm #version 0.93
yum install https://repo.mybahmni.org/releases/bahmni-installer-0.92-155.noarch.rpm #version 0.92
yum install https://repo.mybahmni.org/releases/bahmni-installer-0.91-89.noarch.rpm #version 0.91
yum install https://repo.mybahmni.org/releases/bahmni-installer-0.90-308.noarch.rpm #version 0.90
yum install https://repo.mybahmni.org/releases/bahmni-installer-0.89-193.noarch.rpm #version 0.89
yum install https://repo.mybahmni.org/releases/bahmni-installer-0.88-101.noarch.rpm #version 0.88
yum install https://repo.mybahmni.org/releases/bahmni-installer-0.87-81.noarch.rpm #version 0.87
yum install https://repo.mybahmni.org/releases/bahmni-installer-0.86-70.noarch.rpm #version 0.86
# To know about the commands and options available as part of 'bahmni' command line utility
# the following command can be used after installing the bahmni-installer rpm:
bahmni --help3단계: 앱 구성 및 기본 데이터베이스 덤프 복사
- OpenMRS MySQL 덤프를 /etc/bahmni-installer/deployment-artifacts에 복사합니다. 덤프 파일 이름은 "openmrs_backup.sql"이어야 합니다. 0.82 이전 버전에서는 전체 MySQL 데이터베이스 덤프 파일이며 이름은 'mysql_dump.sql'입니다.
- LAB(OpenELIS) - openelis_backup.sql
- Bahmni 0.92 이상 ERP(Odoo) - odoo_backup.sql
- Bahmni 0.91 이하 ERP(OpenERP 7) - openerp_backup.sql
- 0.82 이전 버전에서는 전체 PostgreSQL 데이터베이스 덤프 파일이며 이름은 'pgsql_dump.sql'입니다.
- 참고: 데이터베이스가 이미 존재하면 이 단계는 필요하지 않습니다.
예: implementation_name이 'jss'이면 앱 구성은 /etc/bahmni-installer/deployment-artifacts/jss_config 폴더에서 가져옵니다.
4??: ?? ?? ??
- 재정의할 수 있는 설치 변수는 관련 안내서를 참조하십시오. Bahmni 서버의 보안을 강화하려면 기본 사용자 암호를 변경할 것을 강력히 권장합니다.
- 아래 설명과 같이 /etc/bahmni-installer/setup.yml에 속성 재정의 파일을 만드십시오.
# To see the list of valid variables in Bahmni please refer to:
# https://bahmni.atlassian.net/wiki/display/BAH/List+Of+Configurable+Installation+Variables
timezone: Asia/Kolkata
implementation_name: default
selinux_state: disabled
# specifying the postgres repo is only applicable for Bahmni 0.91 or earlier
postgres_repo_rpm_name: pgdg-centos92-9.2-7.noarch.rpm
# Specifying the RPM release repo, for Bahmni 0.92 or earlier
bahmni_repo_url: https://repo.mybahmni.org/releases/5??: ?? ??
Bahmni 설치 프로그램은 내부적으로 Ansible을 사용해 설치를 수행합니다. 설치할 Bahmni 하위 시스템과 각 하위 구성 요소를 설치할 서버/IP를 지정하려면 인벤토리 파일을 설치 프로그램에 제공해야 합니다. 인벤토리 파일을 지정하지 않으면 모든 Bahmni 구성 요소(MRS, ELIS, ERP, PACS)를 한 시스템에 설치하는 로컬 구성으로 기본 설정됩니다. 기본 로컬 인벤토리 파일은 /etc/bahmni-installer/local에서 확인할 수 있습니다.
새 인벤토리 파일을 /etc/bahmni-installer/<inventory_file_name>에 자유롭게 만들 수 있습니다. 새 파일을 만들었다면 bahmni 명령을 실행할 때 항상 "-i <filename>" 옵션을 사용해야 합니다. 첨부된 sample_inventory_file 또는 GitHub의 예제를 참고하십시오.
특정 구성 요소만 설치하려면 인벤토리 파일에서 해당 그룹에만 호스트 항목을 추가하십시오. 예를 들어 bahmni-emr과 bahmni-reports 구성 요소만 설치하려면 호스트 항목이 bahmni-emr 및 bahmni-reports 그룹에만 있어야 합니다.
6??: ?? ??
사용자 지정 인벤토리 파일을 추가했다면 다음 명령을 실행하여 설치를 시작합니다.
# (from v0.89 onwards)
bahmni install
# (from v0.83 onwards)
bahmni -i <inventory_file_name> install사용자 지정 인벤토리 파일을 사용하지 않을 때는 다음 명령을 사용하면 단일 시스템 로컬 설치가 기본으로 적용됩니다.
# (from v0.83 onwards)
bahmni -i local install
# (for v0.82)
bahmni install7??: ?? ??
https://<ip_address>/home에서 EMR 앱에 접속합니다.
https://<ip_address>/openmrs에서 OpenMRS 앱에 접속합니다.
https://<ip_address>/openelis에서 Bahmni Lab(OpenELIS) 앱에 접속합니다.
https://<ip_address>:8069에서 Odoo/OpenERP 앱에 접속합니다.
8단계: Bahmni 관련 모든 서비스 시작 및 중지
Bahmni 관련 모든 서비스를 시작하려면 다음 명령을 사용합니다. 이 명령은 Bahmni 0.82 버전부터 제공됩니다.
bahmni -i <inventoryfile> startBahmni 관련 모든 서비스를 중지하려면 다음 명령을 사용합니다. 이 명령은 Bahmni 0.82 버전부터 제공됩니다.
bahmni -i <inventoryfile> stop사용자 지정 인벤토리 파일을 사용하지 않을 때는 다음 명령을 사용하면 단일 시스템 로컬 설치가 기본으로 적용됩니다.
# (from v0.83 onwards)
bahmni -i local start/stop
# (for v0.82)
bahmni start/stop개별 서비스의 상태를 자세히 확인하려면 다음 문서를 참고하십시오.
원격 설정 / 다중 머신 설정
- 프로비저닝 머신에서 원격 서버로 SSH 접속할 수 있어야 합니다. 즉, Ansible은 SSH를 사용하므로 inventory 파일에 지정한 ansible_ssh_user로 각 머신에 한 번 이상 SSH 접속해 known_hosts 항목을 만들어야 합니다. SSH 사용자는 sudo 권한이 있어야 합니다. inventory에 localhost/127.0.0.1을 사용하지 말고 정확한 공인 IP 주소를 지정하십시오. 다중 머신 구성에서는 한 호스트가 다른 호스트와 통신해야 하기 때문입니다. 예를 들어 앱 서버는 DB 서버와 통신해야 합니다. localhost를 지정하면 다른 서버가 아니라 자기 자신과 통신하려고 시도합니다.
원격 설정용 inventory 파일은 다음 예시와 같은 형태여야 합니다: https://github.com/Bahmni/bahmni-playbooks/blob/master/dev/dev
그런 다음 -i 옵션과 함께 "bahmni" 명령을 사용해 설치를 시작합니다.
특정 구성 요소 설치 및 업데이트
Bahmni의 특정 구성 요소만 업데이트하려면 다음 명령을 사용할 수 있습니다.
bahmni -i <inventory_file_name> --only <components name seperated by comma> install
#Examples:
bahmni -i local --only bahmni-lab,bahmni-reports install
bahmni -i local --only bahmni-reports install위 명령은 일부 구성 요소만 변경되고 나머지는 변경되지 않은 패치 릴리스에 사용하는 것이 좋습니다. 특정 구성 요소를 업그레이드할 버전은 다른 구성 요소 버전과 호환되어야 합니다.
특정 구성 요소를 제외한 모든 구성 요소를 업데이트하려면 다음 명령을 사용할 수 있습니다.
bahmni -i <inventory_file_name> —skip <components name seperated by comma> install
#Examples:
bahmni -i local --skip bahmni-lab,bahmni-reports install
bahmni -i local --skip bahmni-reports install기존 셸 기반 설치에서 RPM 기반 설치로 마이그레이션
기존 셸 기반 설치에서 RPM 기반 설치로 마이그레이션할 때는 몇 가지 수동 작업이 필요합니다.
관련 문서 링크는 다음과 같습니다.
패시브 서버 설정
1단계: 구성
- inventory 파일의 해당 app-server 그룹에 패시브 호스트 IP를 추가해 패시브 앱 서버를 설정할 수 있습니다. 패시브 호스트는 bahmni-emr, bahmni-reports, bahmni-lab, bahmni-erp, pacs-integration app-server 그룹에 추가할 수 있습니다. 패시브 호스트에는 'passive=yes' 태그를 지정합니다. 참고: 장애 조치 시 패시브 서버를 활성 서버로 전환하려면 inventory에서 기존 활성 호스트를 제거하고 패시브 호스트의 'passive=yes' 태그를 제거한 다음 2단계와 같이 설치를 실행합니다. 예: 활성/패시브 설정이 포함된 inventory 파일
[bahmni-emr]
192.168.33.10
192.168.33.11 passive=yes
[bahmni-reports]
192.168.33.10
192.168.33.11 passive=yes2단계: 설치 실행
bahmni -i <inventory_file_name> install데이터베이스 복제 설정
Postgres 복제의 알려진 문제
DCM4CHEE 패시브 앱 서버와 슬레이브 DB 서버가 동일하면 Postgres 복제가 작동하지 않습니다.
[dcm4chee]
192.168.33.10
192.168.33.11 passive=yes
[dcm4chee-db-slave]
192.168.33.11해결 방법은 postgres-replication을 설정하기 전에 dcm4chee 그룹에서 패시브 서버 항목을 제거한 뒤 Postgres 복제 설정을 진행하는 것입니다. 복제 설정이 끝나면 dcm4chee 그룹에 패시브 서버 항목을 다시 추가합니다.
1단계: 구성
- inventory 파일의 [*-slave] 그룹에 슬레이브 호스트 IP를 추가합니다.Inventory file with master/slave setup
[bahmni-emr-db] 192.168.33.10 [bahmni-emr-db-slave] 192.168.33.11 [bahmni-lab] 192.168.33.10 [bahmni-lab-db-slave] 192.168.33.11 [bahmni-erp-db] 192.168.33.10 [bahmni-erp-db-slave] 192.168.33.11 [bahmni-reports-db] 192.168.33.10 [bahmni-reports-db-slave] 192.168.33.11 - 예: 마스터/슬레이브 설정이 포함된 inventory 파일
2단계: 설치 실행
복제를 설정하려면 MySQL 데이터베이스와 Postgres 데이터베이스에 각각 별도의 명령을 실행해야 합니다.
- MySQL 복제를 설정하려면 다음 명령을 실행합니다.
bahmni -i <inventory_file_name> setup-mysql-replication - bash setup-mysql-replication
bahmni -i <inventory_file_name> setup-postgres-replication - ]]> Postgres 복제를 설정하려면 다음 명령을 실행합니다.
- bash setup-postgres-replication]]>
MySQL 및 Postgres 슬레이브를 마스터로 전환
1단계: 구성
- inventory 파일에서 슬레이브 호스트를 [bahmni-emr-db-slave] 그룹에서 [bahmni-emr-db] 그룹으로 이동합니다(MySQL). 슬레이브 호스트를 [bahmni-lab-db-slave]에서 [bahmni-lab-db] 그룹으로, [bahmni-erp-db-slave]에서 [bahmni-erp-db] 그룹으로, [pacs-integration-db-slave]에서 [pacs-integration-db] 그룹으로 이동합니다(Postgres).
2단계: 설치 실행
bahmni -i <inventory_file_name> install구현 구성 업데이트
전체 설치를 실행하지 않고 구현 구성만 업데이트하려면 /etc/bahmni-installer/deployment-artifacts에 있는 기존 <implementation_name>_config 폴더를 새 폴더로 교체하고 아래와 같이 update-config 명령을 실행합니다.
bahmni -i <inventory_file_name> update-configNagios 설정
Nagios를 설정하려면 아래와 같이 inventory 파일에 Nagios 서버 호스트를 추가합니다.
[nagios-server]
192.168.33.10이제 /etc/bahmni-installer/setup.yml 경로의 "setup.yml"에 아래 이메일 구성을 추가합니다.
nagios_contact_email: Email id to which nagios should send notifications
ssmtp_auth_user: Email id from which nagios should send notifications
ssmtp_auth_pass: Password for email id from which nagios should send notifications (in cleartext)이제 설치 프로그램을 실행합니다.
bahmni -i <inventory_file_name> install-nagiosOpenERP용 HTTPS 설정
Bahmni는 기본적으로 HTTP 방식의 OpenERP를 포함합니다. OpenERP는 일반 HTTP의 8069 포트에서 실행되며, Bahmni 시작 페이지에는 이 포트로 OpenERP에 접속하는 URL이 표시됩니다.
HTTPS를 활성화하려면 다음과 같이 합니다.
OpenERP에서 HTTPS를 활성화하려면 하위 도메인이 반드시 필요합니다. openerp_url 설정을 사용해 HTTPS를 활성화합니다.
setup.yml의 위치는 /etc/bahmni-installer입니다.
이 설정은 Bahmni 시작 페이지에 반영되며 요청을 https로 리디렉션하도록 Apache 규칙도 업데이트됩니다.
OpenERP 설정의 알려진 문제
다음과 같은 문제가 있을 수 있습니다.
- 머신에 네트워크 인터페이스가 여러 개(IP 주소가 여러 개) 있으면 설치 중 잘못된 IP 주소가 선택되어 Bahmni 시작 페이지에 표시될 수 있습니다. OpenERP를 별도 머신에 설치하거나 클라우드의 다중 머신 구성으로 설치하면 OpenERP가 설치된 머신이 외부에서 접근할 수 없는 경우가 있습니다.
LetsEncrypt를 사용해 Bahmni용 SSL 인증서 설정
LetsEncrypt는 무료 자동화 인증 기관입니다. 자세한 내용은 관련 안내를 참고하십시오. 현재 Bahmni는 DNS 챌린지 기반 인증서 생성을 지원합니다. 따라서 공인 IP 주소로 서버를 인터넷에 공개할 필요가 없습니다. 단, 공인 IP는 필요하지 않지만 이 과정을 실행하려면 인터넷 연결이 필요합니다.
사전 요구 사항:
- 도메인 이름을 소유하고 있어야 합니다. 인터넷 연결이 활성 상태여야 합니다.
설치:
이 명령은 inventory 파일의 [bahmni-emr] 그룹에 포함된 서버에서 실행해야 합니다. 패시브 머신 구성을 사용한다면 패시브 머신에서도 명령을 다시 실행하십시오.
bahmni -i <inventory_file_name> install-certs -e <email_address> -d <domain_name>
Example: bahmni -i inventory install-certs -e steve@jobs.com -d stevejobs.me참고 사항:
- 이 명령은 현재 인증서와 개인 키를 백업합니다. DNS 레코드를 업데이트해야 하므로 수동 상호 작용이 필요합니다. 명령은 DNS 설정에 도메인의 TXT 레코드를 추가하라고 요청합니다. 아래와 같은 프롬프트가 표시되면 주어진 NAME과 VALUE를 DNS 설정에 직접 추가하십시오. 완료한 후 ENTER를 눌러 계속합니다. text 및 VALUE = 를 DNS TXT 레코드로 추가하고, TXT 레코드가 다른 DNS 서버와 동기화될 때까지 잠시 기다린 다음 ENTER를 누르십시오.]]>
Add NAME = <acme_challege_key> and VALUE = <random_generated_value> as DNS TXT record. Wait for sometime to let the TXT records sync with other DNS servers. Press ENTER after you are done하위 문서
Bahmni Wiki · CC BY-SA 4.0