로컬 환경에서 설치
설치 파일 준비
AnyEIMS 설치에 필요한 파일을 준비합니다.
본 안내서에서 설명하는 설치 파일은 기본적으로 제공되는 파일입니다. |
|-- libs
|-- ojdbc8-12.2.0.1.jar ....(1)
|-- AnyEIMS-stream-wrapper-<버전>.jar ....(2)
|-- AnyEIMS-export-model-<버전>.jar ....(3)
|-- AnyEIMS-custom-notification-<버전>.jar ....(4)
|-- AnyEIMS-custom-action-<버전>.jar ....(5)
|-- AnyEIMS-custom-deployment-notification-<버전>.jar ....(6)
|-- AnyEIMS-encrypt-<버전>.jar ....(7)
|-- AnyEIMS-adapter-lib-<버전>.jar ....(8)
|-- nginx-conf
|-- nginx.conf ....(9)
|-- properties
|-- application-extensions.yml ....(10)
|-- oracle
|-- create.sql ....(11)
|-- insert.sql ....(12)
|-- anyeims_front-<버전>.zip ....(13)
|-- favicon.ico
|-- index.html
+-- assets
|-- anyeims-backend.<버전>.zip ....(14)
|-- anyeims-backend.jar
-
백엔드 서버용 파일
파일 설명 (1) ojdbc8-12.2.0.1.jar
데이터베이스에서 사용할 JDBC 드라이버 파일입니다.
(2) AnyEIMS-stream-wrapper-<버전>.jar
InputStream, OutputStream 조작을 위한 인터페이스를 제공하는 파일입니다.
(3) AnyEIMS-export-model-<버전>.jar
어댑터 및 사용자 정의 기능에 사용되는 모델 객체를 정의한 파일입니다.
(4) AnyEIMS-custom-notification-<버전>.jar
결재 관련 사용자 정의 알림 기능 추가를 위한 파일입니다.
(5) AnyEIMS-custom-action-<버전>.jar
VO 다운로드 및 사용자 정의 기능 추가를 위한 파일입니다.
(6) AnyEIMS-custom-deployment-notification-<버전>.jar
배포 관련 사용자 정의 알림 기능 추가를 위한 파일입니다.
(7) AnyEIMS-encrypt-<버전>.jar
YAML 값 암호화 입력 기능 추가를 위한 파일입니다.
(8) AnyEIMS-adapter-lib-<버전>.jar
어댑터 기능을 수행하는 파일입니다.
(10) application-extensions.yml
백엔드 바이너리의 확장 속성을 정의한 파일입니다.
(14) anyeims-backend.<버전>.zip
백엔드 바이너리 파일을 포함한 ZIP 파일입니다.
-
프론트엔드 서버용 파일
파일 설명 (9) nginx.conf
Nginx 설정을 변경할 수 있는 파일입니다.
(13) anyeims_front-<버전>.zip
프론트엔드 파일입니다.
-
데이터베이스 서버용 파일
파일 설명 (11) create.sql
AnyEIMS에서 사용될 테이블을 생성하는 SQL 파일입니다.
(12) insert.sql
AnyEIMS에서 기본적으로 사용될 값을 넣는 SQL 파일입니다.
설치 파일 구성
준비한 설치 파일을 각 서버에 다음과 같이 구성합니다.
-
백엔드 서버
/home/eims/ |-- applications |-- anyeims-backend.jar |-- libs |-- ojdbc8-12.2.0.1.jar |-- AnyEIMS-stream-wrapper.jar |-- AnyEIMS-export-model.jar |-- AnyEIMS-custom-notification.jar |-- AnyEIMS-custom-action.jar |-- AnyEIMS-custom-deployment-notification.jar |-- AnyEIMS-encrypt.jar |-- AnyEIMS-adapter-lib.jar +-- local-storage |-- properties |-- application-extensions.yml
-
프론트엔드 서버
/home/eims/ |-- nginx |-- html |-- anyeims_front-<버전>.zip |-- conf.d |-- nginx.conf
application-extensions.yml 파일 설정
application-extensions.yml 파일 설정을 통해 백엔드 바이너리의 확장 속성을 정의할 수 있습니다. 만약 최초 실행 시 미리 값을 설정하려면 sample:init을 true로 설정하고, 데이터를 입력합니다. 그 이후에는 false로 설정 변경이 필요합니다.
sample:
init: false # UI나 API로 설정할 수 없는 값을 넣으려면 true로 변경
spring:
datasource:
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@<DB의 IP 주소>:<포트 번호>/<DB 이름>
username: <DB 사용자 이름>
password: <DB 사용자 비밀번호>
jpa:
defer-datasource-initialization: true
show-sql: true
database-platform: org.hibernate.dialect.Oracle12cDialect
hibernate:
ddl-auto: none
redis:
host: localhost
port: 6379
# 로그 설정
logging:
file:
name: /home/eims/log/eims.log # 로그 파일의 이름 및 경로
max-size: 500MB
max-history: 10
level:
org : info
DB와 Redis의 비밀번호는 기본적으로 평문으로 저장됩니다. 보안을 위해 AES256 방식으로 암호화할 수 있습니다. 암호화 적용 절차는 다음과 같습니다.
|
nginx.conf 파일 설정
nginx.conf 파일 설정을 통해 Nginx의 속성을 정의할 수 있습니다.
server {
listen 80; # 프론트 포트 설정 가능
client_max_body_size 20M;
location /v1 {
proxy_pass http://<백엔드 접근 IP 주소>:<백엔드 접근 포트 번호>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
root /var/www/html; # 연결할 Root 경로
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
}
데이터베이스 설정
데이터베이스 서버에서 AnyEIMS이 사용할 데이터베이스를 설정하는 SQL문을 실행합니다.
이때 데이터베이스의 아이디, 비밀번호는 application-extension.yml 파일에 작성되어 있는 값과 일치해야 합니다.
-
AnyEIMS에서 사용될 테이블을 생성하는 SQL
$ create.sql
-
AnyEIMS에서 기본적으로 사용될 값을 넣는 SQL
$ insert.sql
환경 변수 설정
백엔드 서버에서 터미널 실행 후 환경 변수를 통해 Redis 접근 정보를 설정합니다.
ANYEIMS_REDIS_HOST: <Redis에 접근 가능한 호스트명 또는 IP 주소>
ANYEIMS_REDIS_PORT: <Redis 접근 포트 번호>
Redis 접근 정보는 application-extensions.yml 파일에서도 설정이 가능합니다. |
바이너리 실행
백엔드 서버
백엔드 서버에서 아래의 명령을 실행합니다.
-
사용법
$ java -Dspring.profiles.active=${ANYEIMS_SPRING_PROFILE:prod} -Dspring.config.import=file:<application-extensions.yml 파일 위치>/application-extensions.yml -cp <anyeims-backend.jar 파일 위치>/anyeims-backend.jar:<ojdbc 파일 위치>/* org.springframework.boot.loader.JarLauncher --server.port=<설정할 백엔드 포트>
-
예시
$ java -Dspring.profiles.active=${ANYEIMS_SPRING_PROFILE:prod} -Dspring.config.import=file:/home/eims/properties/application-extensions.yml -cp /home/eims/applications/anyeims-backend.jar:/home/eims/libs/* org.springframework.boot.loader.JarLauncher --server.port=8081
프론트엔드 서버
프론트엔드 서버에서 anyeims_front-<버전>.zip 파일을 /var/www/html 하위에 압축 해제합니다. 압축 해제 후 ls 명령을 실행하여 아래와 같은 결과가 나오는지 확인합니다.
$ ls /var/www/html
assets favicon.ico index.html
또한 /etc/nginx/ngin.conf 파일 설정을 통해 /home/eims/nginx/conf.d 디렉터리를 참조하도록 설정해야 합니다.
...
http {
...
include /home/eims/nginx/conf.d/*.conf; # 참조할 위치 설정
}
설정이 완료되면 Nginx를 실행합니다.
$ nginx -g "daemon off;"