이 문서는 tar.gz 파일을 통한 Jira-software Data Center 설치 방법을 공유하기 위해 작성되었다.


도구명Jira software Data Center
버전9.12
OSrocky8.9 minimal
비고java17, postrgesql14

목차



1. 환경구성


1) Supported Platform 확인



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


3) DB(postgresql) 설치 및 데이터베이스 생성 및 서비스 등록

  • 설치 파일 다운로드 링크: PostgreSQL: File Browser
  • 설치 파일:  postgresql-14.12.tar.gz
  • 설치절차
    • 설치한 OS의 posgresql 버전을 확인한다. 설치해야할 Postgresql 버전이 없을 경우, 설치파일로 설치를 진행한다.
      yum list | grep ^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


    • 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 서비스 등록을 위한 파일 생성 및 권한을 설정한다.
      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 서비스 적용 및 등록
      # 변경 사항 적용
      sudo systemctl daemon-reload
      
      # 서비스 등록
      sudo systemctl enable postgresql.service
      
      # 서비스 실행
      sudo systemctl start postgresql.service
      
      # 서비스 상태 확인
      sudo systemctl status postgresql.service


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>


  • 레이블 없음