Cloud환경이 아닌 Self-managed로 Jira를 설치하는 방법에 대해 알아봅니다. 이 글에선 Ubuntu server 20.04 버전에 Jiral를 설치해 보도록 하겠습니다.
0. 사전 준비.
Ubuntu server 20.04 환경을 미리 준비합니다.
1. Jira Software 다운로드.
여기에서 Jira Software를 다운로드합니다. 서비스될 운영체제에 맞게 다운로드해주시면 되며 이 글에선 Ubuntu server에 설치할 것이므로 Linux 64 bit를 선택해 다운로드해 줍니다.
다운로드가 끝나면 파일을 서버로 옮겨주세요.
2. Jira 설치.
서버로 접속 해 설치 파일을 복사한 경로로 이동합니다.
다음 명령어로 복사한 설치 파일에 권한을 부여합니다.
$ sudo chmod a+x atlassian-jira-software-8.10.0-x64.bin
실행 권한이 부여되면 다음 명령어로 설치 파일을 실행시켜줍니다.
$ sudo ./atlassian-jira-software-8.10.0-x64.bin
Jira는 OpenJDK를 필요로 합니다. Y를 입력해 Jira를 설치하면서 OpenJDK가 같이 설치되도록 합니다.
설치 준비 과정을 잠시 기다린 후 위와 같은 메시지가 나오면 엔터를 눌러줍니다.
설치 옵션을 골라줍니다. 첫 설치 환경이고 잘 모르겠으면 기본 설정을 사용해 줍시다. 1을 입력하세요.
앞서 선택한 옵션에 따라 Jira가 설치될 때 참고할 설정입니다. 확인 후 엔터를 눌러주세요.
설치가 끝나면 Jira를 바로 실행할 건지 묻습니다. 엔터를 눌러 바로 실행시키도록 합니다.
설치가 완료되었습니다. 이제 나머지 구성을 진행해 봅시다.
3. MySQL 설치.
제가 가장 삽질한 부분입니다. 2020.06.25 현재 Ubuntu Server 20.04로 mysql-server를 설치하면 8.0.20 버전이 설치됩니다. 별도 커넥터도 설치하고 구성 파일도 변경해봤으나 이 버전은 Jira에서 자꾸 에러 메시지를 던집니다.
공식적인 답변을 확인한 결과 MySQL8의 지원은 Jira 이슈에 공식적으로 등록된 상태이며 6일 전인 2020.06.19에 개발이 시작되었다고 댓글이 달렸습니다.
https://jira.atlassian.com/browse/JRASERVER-67359
결론적으로 이 글이 작성되는 시점에선 MySQL 8 버전은 지원하고 있지 않으며 적절한 드라이버를 사용해도 Jira는 오류를 반환합니다. 따라서 우리는 5.7 버전의 MySQL을 설치해 보도록 하겠습니다.
먼저 현재 리포지토리에 MySQL 5.7 버전이 있나 확인해 봅시다.
$ sudo apt-cache mysql-server
슬프게도 등록되어 있지 않습니다. 그 말은 우리가 별도로 다운로드 해와야 한다는 뜻이죠. 다음 작업을 차근차근 따라 해 봅시다. 먼저 deb 파일을 받습니다.
$ sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
받은 deb 파일을 확인하고 실행시킵니다.
$ sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
위의 명령어를 실행하면 MySQL에 대한 apt 설정을 할 수 있는 화면이 보입니다.
Ubuntu bionic을 선택합니다.
MySQL Server & Cluster를 선택합니다.
MySQL 5.7을 선택합니다.
구성이 MySQL 5.7로 바뀐 것을 확인한 뒤 OK를 선택합니다. 이후 업데이트 후 다시 MySQL을 검색해 봅니다.
$ sudo apt-get update
$ sudo apt-cache policy mysql-server
이제 5.7 버전이 보입니다. 이 버전을 설치합시다. mysql-client를 설치하지 않고 mysql-community-server를 설치하면 client를 먼저 설치하라는 메시지와 함께 server 설치가 실패합니다. client를 먼저 설치해줍시다.
$ sudo apt install -f mysql-client=5.7.30-1ubuntu18.04
$ sudo apt install -f mysql-community-server=5.7.30-1ubuntu18.04
server 설치를 수행하게 되면 다음과 같은 화면에 보입니다.
루트 유저의 비밀 번호를 입력합니다. 설치가 완료되면 다음 명령어로 제대로 5.7 버전이 설치되었는지 확인합니다.
$ sudo mysql --version
3. MySQL DB 생성.
이제 MySQL에 Jira가 사용할 DB와 유저를 생성해 봅시다.
다음 명령어로 MySQL에 접속합니다.
$ sudo mysql -u root -p
먼저 Jira를 위한 DB를 생성합니다. 다음 쿼리를 실행시켜 주세요.
> CREATE DATABASE jira CHARACTER SET utf8mb4;
이제 이 DB에 유저를 생성한 뒤 권한을 부여해 줍니다.
> CREATE USER 'jira'@'localhost' IDENTIFIED BY 'P@SSWORD';
> GRANT ALL PRIVILEGES ON jira.* TO 'jira'@'localhost';
> FLUSH PRIVILEGES;
이제 새로 생성한 유저로 다시 mysql에 접속해 확인해 보도록 합니다.
$ sudo mysql -u jira -p
> show databases;
로그인도 정상적으로 되고 DB도 생성된 것을 확인하였습니다.
4. JDBC 설치 및 MySQL 설정 변경.
다음으로 Jira가 MySQL에 붙을 수 있도록 MySQL JDBC 드라이버를 설치해야 합니다. 우리는 5.7.30 버전의 MySQL을 설치했으므로 이 버전에 맞는 커넥터를 다운로드하여야 합니다. 여기에서 커넥터를 다운로드하도록 합니다. 이 글을 따라 하셨다면 다음과 같이 설정 후 다운로드하시면 됩니다.
어떤 걸 다운해도 상관없습니다. 어차피 압축을 풀고 그 내부의 파일을 사용해야 합니다. 다운로드한 파일을 압축 해제 한 뒤 폴더 내에 있는 "mysql-connector-java-5.1.49-bin.jar" 파일만 서버로 옮겨줍니다.
이제 이 jar 파일을 jira 설치 경로 내의 lib 폴더로 이동시켜 줍니다.
$ ls
$ sudo cp mysql-connector-java-5.1.49-bin.jar /opt/atlassian/jira/lib/
$ ls /opt/atlassian/jira/lib
그 후 해당 파일에 읽기 권한을 부여합니다.
$ sudo chmod 755 /opt/atlassian/jira/lib/mysql-connector-java-5.1.49-bin.jar
추가한 커넥터를 사용할 수 있도록 jira를 재시작합니다. jira start/stop 명령어는 jira를 설치한 방식에 따라 달라질 수 있습니다. 아래의 명령어는 linux installer를 통해 설치했을 때 사용할 수 있는 명령어임을 참고해 주세요.
$ sudo /etc/init.d/jira stop
$ sudo /etc/init.d/jira start
다음은 MySQL의 설정 파일을 변경해 줄 차례입니다. MySQL의 기본 설정값을 사용하게 되면 Jira가 신나게 경고 메시지를 띄워대니 그냥 Jira 설정에 맞춰서 변경합니다.
MySQL의 설정 파일은 /etc/mysql/my.cnf입니다. 우선 이 설정 파일의 백업본을 생성해 줍니다.
$ cd /etc/mysql
$ sudo cp my.cnf my.cnf.bak
그 후 my.cnf에 다음 설정을 추가합니다.
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8mb4
innodb_default_row_format=DYNAMIC
innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_log_file_size=2G
** 20.07.20 기존 아래의 코드에서 위의 코드로 수정되었습니다.
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_bin
default-storage-engine=INNODB
max_allowed_packet=256M
innodb_log_file_size=2GB
transaction-isolation=READ-COMMITTED
binlog_format=row
$ sudo vi my.cnf
** 만약 my.cnf에 "sql_mode = NO_AUTO_VALUE_ON_ZERO"가 있다면 이 옵션은 삭제해 주세요.
설정 파일을 변경하였으면 MySQL을 재시작합니다.
$ sudo service mysql restart
5. Jira 초기 설정 및 라이선스 활성화.
Jira가 설치된 서버에 8080 포트로 접근하면 다음과 같은 Jira 초기 설정 화면을 확인할 수 있습니다.
** 우측 상단의 "언어"를 클릭하면 한국어 옵션을 사용할 수 있습니다.
"사용자를 위해 설정하십시오."옵션은 별다른 추가 설정 없이 Trial 라이선스로 사용해 볼 수 있도록 해주는 옵션입니다. 이 옵션은 별도의 DB를 사용하지 않고 내장 DB를 사용하며 Atlassian의 계정과 연동해 알아서 설정을 구성해주고 Trial 라이선스를 발급받을 수 있는 화면으로 이동해 바로 라이선스 발급 절차를 진행할 수 있도록 해줍니다.
사전 준비사항에 언급한 대로 이 글에선 MySQL을 사용해 구성해 보도록 하겠습니다. "직접 설정하겠습니다"를 선택해주세요.
아래와 같이 설정한 DB 및 계정 정보를 입력한 후 테스트 연결 버튼을 클릭해 봅시다.
버튼을 클릭했을 때 아래와 같은 메시지가 보이면 연결에 성공한 것입니다.
** 만약 드라이버를 못 찾는다면 커넥터를 다시 한번 확인해 주시고 권한을 수정했는지 확인해 주시기 바랍니다.
** 만약 MySQL 5.7+ 설정에 관한 오류가 생기면 my.cnf 파일을 다시 확인해 주시기 바랍니다.
** 위의 두 과정 모두 jira 및 mysql의 재시작이 필요합니다.
이제 Jira가 구성될 때까지 느긋하게 기다려주세요.
왜 다시 영어로 돌아간 건지는 모르겠지만 구성이 완료되면 위와 같은 화면이 보입니다.
Application Title은 말 그대로 Jira의 타이틀입니다. 원하는 값으로 설정해 주세요.
Mode는 유저 생성에 관련된 설정값입니다. Private로 선택하면 회원가입이 막히고 Admin이 직접 추가한 유저만 사용할 수 있습니다.
BaseURL은 jira가 서비스될 URL을 입력해 줍니다.
이제 라이선스 키를 입력해 줄 차례입니다. 여기로 이동해 jira를 구입한 계정으로 로그인 한 뒤 라이선스 정보를 확인합니다.
라이선스를 클릭하면 오른쪽에 "License Key View License"와 같은 항목이 있습니다. "View License"를 선택해주세요.
위에 적혀있는 서버 ID를 입력한 후 Save를 클릭합니다. 그러면 "View License"에 생성된 라이선스 코드가 보이게 됩니다. 이 값을 jira의 "Your License Key"에 붙여 넣어 주고 Next 버튼을 클릭합니다.
이제 관리자 계정을 생성해 줄 차례입니다. 원하는 대로 생성해 주세요.
다음은 이메일 알림 관련 설정입니다. 이 내용은 추후 별도의 포스팅으로 다루겠습니다. Later를 선택한 후 Finish 버튼을 클릭합니다.
잠시 기다리면 구성이 끝나고 Jira가 시작됩니다. 사용할 언어를 다시 한국어로 변경합니다. 마지막으로 아바타 설정을 마치면 이제 Jira를 사용할 수 있습니다!
이제 "샘플 프로젝트 생성"을 선택해서 미리 잘 짜여 있는 예시를 볼 수도 있고 "새 프로젝트 만들기"를 선택해서 바로 자신만의 프로젝트를 구성할 수도 있습니다.
'Programming' 카테고리의 다른 글
[Sourcetree] History 한글 깨짐 현상 수정 (4) | 2020.07.07 |
---|---|
개발자들은 PWA(ProgressiveWebApp)을 얼마나 많이 사용할까? (0) | 2020.06.30 |
[Redmine] Ubuntu 20.04에 Redmine 설치하기. (3) | 2020.06.24 |
Nginx를 이용한 이중화와 Docker-compose를 통한 배포. (2) | 2020.06.18 |
[Jenkins] 빌드 결과를 이메일로 알려주기 (0) | 2020.05.07 |