이 문서는 tar.gz 파일을 통한 Jira-software Data Center 설치 방법을 공유하기 위해 작성되었다.
도구명 | Jira software Data Center |
---|---|
버전 | 9.12 |
OS | rocky8.9 minimal |
비고 | java17, postrgesql14 |
목차
1. 환경구성
1) Supported Platform 확인
- 아래 링크를 확인하여 Java, DB, Atlassian 제품 간 버전 호환성을 체크하여 버전을 선정한다.
- LTS 버전의 Atlassian 제품 확인 링크.
2) JAVA 설치 및 환경변수 설정
- 설치 파일 다운로드 링크: OpenJDK Downloads | Download Java JDK 8, 11, 17, & 21 | OpenLogic
- 설치 파일: openlogic-openjdk-17.0.11+9-linux-x64.tar.gz
- 설치절차
- OS 설치 후, 기본 설치된 java 확인하고, 삭제한다.
# 기존 설치된 자바 확인 yum list installed | grep java # 삭제 sudo yum remove -y [패키지명] # 삭제 확인 java -version # java: command not found...와 같이 보여야함.
- java tar 파일을 원하는 경로에 압축 해제 한다.
# java 관리용 폴더 생성 mkdir /usr/local/java # 압축 해제 tar xvf <java설치파일.tar> -C /usr/local/java
- JAVA_HOME 환경변수를 설정한다.
# root 접속 권한이 없을 경우를 대비해 별도의 설치 및 실행 계정으로 등록. adduser atlassian passwd su - atlassian # 유저별 환경변수 등록 vi ~/.bashrc ''' export JAVA_HOME=/usr/local/java/<압축 해제 디렉토리> export PATH=$PATH:$JAVA_HOME/bin ''' # 설정 적용 source ~/.bashrc # 설치확인 java -version
- OS 설치 후, 기본 설치된 java 확인하고, 삭제한다.
3) DB(postgresql) 설치 및 데이터베이스 생성 및 서비스 등록
- 설치 파일 다운로드 링크: PostgreSQL: File Browser
- 설치 파일: postgresql-14.12.tar.gz
- 설치절차
- 설치한 OS의 posgresql 버전을 확인한다. 설치해야할 Postgresql 버전이 없을 경우, 설치파일로 설치를 진행한다.
yum list | grep ^postgresql
- 설치한 OS의 posgresql 버전을 확인한다. 설치해야할 Postgresql 버전이 없을 경우, 설치파일로 설치를 진행한다.
- 설치 파일을 압축 해제한다.
tar xvf postgresql-14.5.tar.gzcd postgresql-14.5
- postgres 유저를 생성한다.
useradd postgres passwd postgres
- 엔진을 설치한다.
# 패키지 다운로드 yum install gcc readline-devel zlib-devel make # -- prefix 옵션은 엔진 설치 경로이며, 기본값은 '/usr/local/pgsql' ./configure --prefix=/usr/local/pgsql make && make install
- 설치 파일을 압축 해제한다.
- 데이터베이스 클러스터를 초기화한다.
cd /usr/local/pgsql/bin ./initdb -D /usr/local/pgsql/data ============================================================ -- inindb 과정에서 에러 발생 시, 아래와 같이 권한 변경 initdb: error: cannot be run as root => $ su - postgres Oinitdb: error: could not change permissions of directory => $ sudo chown -R postgres /usr/local/pgsql/data ============================================================
- 데이터베이스 클러스터를 초기화한다.
- /<설치 경로>/bin으로 이동하여 Postrgesl이 실행 및 종료를 확인한다.
cd /usr/local/pgsql/bin # 실행 ./pg_ctl -D /usr/local/pgsql/data start # 종료 ./pg_ctl -D /usr/local/pgsql/data stop
- /<설치 경로>/bin으로 이동하여 Postrgesl이 실행 및 종료를 확인한다.
- Postgresql 관련 PATH를 설정한다.
vi ~/.bash_profile ''' # User specific environment and startup programs export LD_LIBRARY_PATH=/usr/local/pgsql/lib export PATH=$PATH:/usr/local/pgsql/bin export PGDATA=/usr/local/pgsql/data ''' # 적용 source ~/.bash_profile
- Postgresql 관련 PATH를 설정한다.
- Postgresql 서비스 등록을 위한 파일 생성 및 권한을 설정한다.
sudo mkdir -p /usr/local/pgsql/logs sudo chown postgres:postgres /usr/local/pgsql/logs
- Postgresql 서비스 등록을 진행한다. (충돌 방지를 위해 실행했던 Postgresql 종료 후, 진행한다.)
vi /etc/systemd/system/postgresql.service ''' [Unit] Description=PostgreSQL database server After=syslog.target After=network.target [Service] Type=forking User=postgres Group=postgres Environment=PGDATA=/usr/local/pgsql/data Environment=PGLOG=/usr/local/pgsql/logs/postgresql.log ExecStart=/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/logs/postgresql.log ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D /usr/local/pgsql/data ExecStartPre=/bin/chmod 0700 /usr/local/pgsql/data ExecStartPre=/bin/chown -R postgres:postgres /usr/local/pgsql/data ExecStartPre=/bin/chown postgres:postgres /usr/local/pgsql/logs [Install] WantedBy=multi-user.target '''
- Postgresql 서비스 등록을 위한 파일 생성 및 권한을 설정한다.
- postgresql 서비스 적용 및 등록
# 변경 사항 적용 sudo systemctl daemon-reload # 서비스 등록 sudo systemctl enable postgresql.service # 서비스 실행 sudo systemctl start postgresql.service # 서비스 상태 확인 sudo systemctl status postgresql.service
- postgresql 서비스 적용 및 등록
2. Jira 설치
1) 설치파일 다운로드
아래 링크에서 설치파일을 다운로드한다.
2) 방화벽 설정
- jira connect 8080 port와 사용DB의 listen port를 open한다.
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp sudo firewall-cmd --reload
3) Database 구성
Jira와 연결할 Postgresql의 Database를 구성한다.
# postgresql 접속 sudo su - postgres psql # user 생성 CREATE USER jiradbuser WITH PASSWORD '1004'; # database 생성 CREATE DATABASE jiradb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0; # 권한 부여 GRANT ALL PRIVILEGES ON DATABASE jiradb TO jiradbuser;
4) App폴더, Data 폴더 생성
# jira 설치용 sudo mkdir /app/atlassian/jira-software # jira 데이터용 sudo mkdir /data/atlassian/jira-software-home
5) Jira software 설치 파일 압축 해제
sudo tar xvf atlassian-jira-software-9.12.8.tar.gz -C /app/atlassian/jira-software/ --strip-components=1
6) 폴더 소유자, 권한 설정
- 폴더 소유자: Atlassian (권한: r,w,x 허용.) / 그룹, 그 외: (권한: 없음.)
- -R: 하위 폴더까지 적용. / u: 폴더소유자 / g: 그룹 / o : 그 외 / =: 권한부여 / -: 권한 제거
# app 폴더 sudo chown -R atlassian /app/atlassian/jira-software/ sudo chmod -R u=rwx,go-rwx /app/atlassian/jira-software/ # data 폴더 sudo chown -R atlassian /data/atlassian/jira-software-home/ sudo chmod -R u=rwx,go-rwx /data/atlassian/jira-software-home/
7) Jira home 경로 설정
/<install directory path>/atlassian-jira/WEB-INF/classes/jira-application.properties 파일에서 Jira.home 경로를 작성한다.
vi /app/atlassian/jira-software/atlassian-jira/WEB-INF/classes/jira-application.properties ''' jira.home = /data/atlassian/jira-software-home '''
(Jira listen port 변경이 필요할 경우)conf/server.xml
/<install directory path>/conf/server.xml 파일의 Connector port를 수정한다.
vi /app/atlassian/jira-software/conf/server.xml ''' <!-- Relaxing chars because of JRASERVER-67974 --> <Connector port="8080" '''
8) Jira 실행
Jira 제어용 계정으로 전환하여 /<install directory path>/bin/start-jira.sh 파일을 실행한다.
('http://localhost:8080'으로 web 접속한다.(port 변경한 경우는 변경한 port로 접속.)
# 전용 사용자로 전환 su -u atlassian # 실행 /app/atlassian/jira-software/bin/start-jira.sh # 종료 /app/atlassian/jira-software/bin/stop-jira.sh
3. Jira Web 초기설정
1) I'll set it up myself.
2) Database setup
- Connection: My Own DataBase
- Database Type: PostgreSQL
- Hostname: localhost
- Port: 5432
- Database: jiradb
- Username: jiradbuser
- Password:1004
- Schema: public
- Test Connection (yes) → Next
3) Set up application properties
4) Specify your license key
5) Set up administrator account
6) Set up email notifications
7) Language
8) 아바타
9) 완료
4. Jira 서비스 등록
1) 서비스 작성
/etc/systemd/system/ 경로에 서비스 파일을 생성한다.
vi /etc/systemd/system/jira.service [Unit] Description=jira-software After=network.target postgresql.service [Service] Type=forking User=atlassian Environment="JAVA_HOME=/usr/local/java/jdk-17.0.1" ExecStart=/app/atlassian/jira-software/bin/start-jira.sh ExecStop=/app/atlassian/jira-software/bin/stop-jira.sh [Install] WantedBy=multi-user.target
2) 서비스 적용 및 실행
시스템 설정 파일이 수정될 때마다 daemon-reload 가 필요하다.
# 등록 systemctl enable jira.service systemctl daemon-reload # 서비스 시작 systemctl start jira.service # 서비스 상태 systemctl status jira.service # 서비스 종료 systemctl stop jira.service
5. Jira heap memory 설정
일반적으로 이슈 5000개 미만인 경우, 최소 768MB 권장한다. (이슈 40000개까지 768MB~1GB)
성능이 부족할 경우, 점차적으로 늘릴 것을 권장한다.
1) JVM 메모리 설정
/<Jira-install-directory>/bin/setenv.sh 파일의 JVM 메모리 설정을 수정한다.
vi /app/atlassian/jira-software/bin/setenv.sh ''' # The following 2 settings control the minimum and maximum given to the JIRA Java virtual machine. In larger JIRA instances, the maximum amount will need to be increased. # JVM_MINIMUM_MEMORY="768m" JVM_MAXIMUM_MEMORY="1024m" '''
2) Jira 재기동
/app/atlassian/jira-software/bin/stop-jira.sh /app/atlassian/jira-software/bin/start-jira.sh
3) 설정 적용 확인
설정(우측 상단 톱니바퀴) → 시스템 → 시스템 정보
커맨드로 확인
# Jira 프로세스 ID 확인 jps -v | grep jira # JVM 인스턴스 정보 확인 jinfo -flag MinHeapSize <Jira 프로세스 ID> jinfo -flag MaxHeapSize <Jira 프로세스 ID>