Download - [오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
3
아틀라시안 제품 (Jira, Confluence, Crowd 등 ) 설치부터 , 운영 , 유지보수까지 일련의 과정 확인
각 과정에서 고려해야 할 사항들과 부딪힐 수 있는 기술적 이슈들에 대한 고찰
아틀라시안 제품을 제대로 써보자 !!
개요 및 목표
4
애플리케이션 개발 라이프싸이클 관리
문서 관리
프로젝트 포탈( 이슈 및 일정 관리 )
소스 형상관리
소스 리뷰
소스 변경 추적
코드 품질 관리
코드 동적 분석
개발 서버
Project Manager
라이브러리 관리
실행 / 테스트 코드
개발자
코드 정적 분석
개발툴
요구사항산출물
이슈에 따른소스 수정변경 내용저장
Reviewer
고객
전체 프로젝트관리
QA/Test
빌드 및 배포
7
(1) 설치
(2) 서비스 기동
(3) 웹서버 연동 (Proxying)
(4) SSL 설정
(5) 한글팩 적용 및 각종 한글 관련 설정
(6) Crowd( 또는 Jira) 이용한 사용자 관리
(7) Jira 프로젝트 및 대시보드 생성
(8) 프로젝트 관리 및 사용자 권한 설정
(9) Confluence Wiki 스페이스 생성
(10) 유지보수
(11) Plugin/API 확장을 통한 업무시스템 연동
8
(1) 설치
(2) 서비스 기동
(3) 웹서버 연동 (Proxying)
(4) SSL 설정
(5) 한글팩 적용 및 각종 한글 관련 설정
(6) Crowd( 또는 Jira) 이용한 사용자 관리
(7) Jira 프로젝트 및 대시보드 생성
(8) 프로젝트 관리 및 사용자 권한 설정
(9) Confluence Wiki 스페이스 생성
(10) 유지보수
(11) Plugin/API 확장을 통한 업무시스템 연동
9
Atlassian 각 제품 설치 Jira Linux: https://confluence.atlassian.com/jira/installing-jira-on-linux-191501165.html Jira Window: https://confluence.atlassian.com/jira/installing-jira-on-windows-191501140.html Confluence Linux:
https://confluence.atlassian.com/doc/installing-confluence-on-linux-143556824.html Confluence Window:
https://confluence.atlassian.com/doc/installing-confluence-on-windows-255362047.html
(1) 설치 – 가이드에 따라서 10 분이면 OK
플랫폼 별 , 버전 별 가이드 한 군데 정리되어 있어 편리
10
기본 설치 위치 : /opt/atlassian/< 제품명 >Home( 데이터 ) 디렉토리 : 통상 /var/atlassian/application-data/< 제품명 > 제품 업그레이드 시 , 새로운 버전 설치 후에도 데이터 재 사용 하기 위함
Tomcat 기본 내장 Jira 의 경우 <JIRA>/bin/catalina.sh, setup.sh 등
- 예를 들어 Java 프로세스에 대한 Garbage Collection 정보를 보고 싶으면 setenv.sh 에JVM_EXTRA_ARGS="-XX:+PrintGCDateStamps -XX:-OmitStackTraceInFastThrow -verbose:gc"
Crowd 의 경우 <CROWD>/apache-tomcat 디렉토리 아래 conf/server.xml 에서 제품의 기본 Listen Port 수정 가능
- 예 : <Connector port="8080"> logs/ 디렉토리에 각종 Tomcat 로그 파일
- catalina.out, access.log <JIRA>/bin/config.sh : 각종 JIRA 관련 설정 , DB, Connection Pool 등
- https://confluence.atlassian.com/jira/using-the-jira-configuration-tool-214865525.html
(1) 설치 – 제품 디렉토리 구조
동영상 : https://youtu.be/yBpFC8CtPhE
11
Setup Wizard 제품 설치 후 최초 구성을 하는 과정 주로 설치 관련 문제 발생 시 , 구성 Reset 목적
Jira <JIRA Home>/dbconfig.xml 삭제 후 Jira 재 시작 https://confluence.atlassian.com/jira060/restarting-jira-from-the-setup-wizard-37070
5059.html
Confluence <Confluence Home>/confluence.cfg.xml 삭제 후 Confluence 재 시작 https://confluence.atlassian.com/confkb/how-to-restart-the-setup-wizard-after-install
ing-confluence-179443224.html
Crowd <Crowd Home> 디렉토리 삭제 후 Crowd 재 시작 https://confluence.atlassian.com/display/CROWD/Restarting+the+Setup+Wizard+fr
om+Scratch
(1) 설치 – Setup Wizard 재 실행
동영상 : https://youtu.be/snsubv0D0FQ
12
제품 시작 / 중단 스크립트 start-OOOO.sh : 제품 설치 시 만들어진 계정 ( 예 : Jira 의 경우 jira) 으로 시작 startup.sh : 스크립트를 실행하는 Shell 에 로그인 된 계정으로 시작 ( 비 권고 )
운영체제 서비스 사용 sudo service jira( 또는 제품 명 ) start/stop 만약 존재하지 않으면 다음과 같이 /etc/init.d 에 스크립트 생성 (RHEL/CentOS
기준 )
(2) 서비스 기동
[osc@atldemo74 /opt/atlassian/jira/bin]$ cat /etc/init.d/crowd#!/bin/bash
# Crowd Linux service controller scriptcd "/opt/crowd"
case "$1" in start) ./start_crowd.sh ;; stop) ./stop_crowd.sh ;; *) echo "Usage: $0 {start|stop}" exit 1 ;;esac
동영상 : https://youtu.be/wYM5Q2FdNzE
13
HTTP Proxy 설정의 목적 Atlassian 제품의 특성 상 , Add-On 설치 등을 위해 Market Place 등 접속 회사 정책 상 , Proxy 를 통한 후회 접속만 허용하는 경우
다음과 같은 옵션 시작 스크립트에 추가
Jira 의 경우 <JIRA>/bin/setenv.sh 의 CATALINA_OPTS Confluence 의 경우 <Confluence>/bin/setenv.sh 의 CATALINA_OPTS Crowd 의 경우 <Crowd>/apache-tomcat/bin/setenv.sh 의 CATALINA_OPTS 참고 :
https://confluence.atlassian.com/jirakb/how-to-configure-an-outbound-http-and-https-proxy-for-jira-applications-247857187.html
참고로 JAVA_OPTS 는 프로세스 시작 , 종료 시에도 사용되는 옵션 , CATALINA_OPTS 는 Tomcat 프로세스 기동 시에만 사용되는 옵션
(2) 서비스 기동 – HTTP Proxy 설정
-Dhttp.proxyHost=proxy.example.org -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example.org -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts=localhost
14
웹서버 연동 다음 페이지 " 웹서버 연동 아키텍처 예시 " 참고 보안성 강화 및 운영 편의성 ( 예 : 부하 조절 ) 향상
Apache HTTPD 설정 다음 구성을 /etc/httpd/conf.d/vhost.conf 에 추가 (conf.d 아래의 구성은 자동 포
함 ) VirtualHost 기능
- 여러 개의 Atlassian 제품들을 하나의웹서버에서 Domain URL 을 구분하여 연결
Atlaissna 제품 연결- 웹서버와 동일 서버의 경우
localhost 주소 사용- 원격일 경우 원격 IP 주소 사용
(3) 웹서버 연동 (Proxying) – Apache HTTPD 연결
<VirtualHost *:80> DocumentRoot "/var/www/html" ServerName atl74-jira.osci.kr
ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/
</VirtualHost>
<VirtualHost *:80> DocumentRoot "/var/www/html" ServerName atl74-wiki.osci.kr
ProxyPass / http://localhost:8090/ ProxyPassReverse / http://localhost:8090/</VirtualHost>
동영상 : https://youtu.be/yAanKxR0lgc
15
방화벽
JIRA
MySQL(jiradb)
웹서버 연동 아키텍처 예시
Apache HTTPDmod_proxy
Crowd
MySQL(crowd)
Conflu-ence
MySQL(conflu-ence)
방화벽
DMZ 구간
16
Apache HTTPD 트러블슈팅 SELinux 옵션으로 인한 문제
- SELinux 가 활성화 되어 있으면 웹서버에서 원격 Atlassian 서버로 Proxy 제한- 다음 두 가지 방법 중 하나 적용 (RHEL/CentOS 기준 )- 웹서버 디버그 로그 활성화하면
에러 메시지 확인 가능
Atlassian 서버쪽 Linux Firewall 제한으로 인한 문제- 다음 명령으로 파이어월 개방
웹서버 로그 분리- 웹서버의 로그 (/var/log/httpd/) 를 확인- 다음과 같이 로그를 제품 별로 분리해서
남김
기타 문제 디버깅- 가장 확실한 방법은 tcpdump 명령을
통해 웹서버 요청이 Atlassian 쪽으로전달되는지 확인하는 방법
(3) 웹서버 연동 (Proxying) – Apache HTTPD 트러블슈팅
(1) sudo setsebool -P httpd_can_network_connect 1 (2) /etc/sysconfig/selinux" 파일에서 아래와 같이 설정하여 SELinux 기능을 OFF
SELINUX=permissive
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcpsudo firewall-cmd --permanent --zone=public --add-port=8090/tcp…sudo firewall-cmd --reload
<VirtualHost *:80> ... ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/error_wiki_log.%y%m%d 86400" CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_wiki_log.%y%m%d 86400" combined</VirtualHost>
sudo tcpdump -i lo port 8080 -A (8080 포트로 들어오는 요청을 출력 )
동영상 : https://youtu.be/kB-OpoflZc4
17
Base URL Atlassian 제품에서 브라우저 렌더링을 할
때 사용하는 기본 Domain URL 웹서버로 Prxoying 할 경우 웹서버 URL 이
지정되어야 함 각 제품의 기본 설정에서 Title 과 함께
정확하게 세팅되어야 함 Crowd 의 경우 오른쪽과 같이 지정
Proxy Name 웹서버를 거치지 않고 Atlassian 제품으로 들어왔을 때 , 웹서버 URL 로
Redirect(Rewrite) 하는 방법 다음과 같이 제품 별 Tomcat 설정 파일에서
지정- <JIRA>/conf/server.xml- <Confluence>/conf/server.xml- <Crowd>/apache-tomcat/conf/server.xml
(3) 웹서버 연동 (Proxying) – Base URL, Proxy Name
다음은 JIRA 의 예 . 각 제품에 맞게 URL 변경하면 됨
<Connector port="8080" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" proxyName="atl74-jira.osci.kr" proxyPort="80" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true"/>
<CROWD_HOM>/crowd.properties 에서
crowd.server.url=http\://atl74-sso.osci.kr/services/application.name=crowdapplication.login.url=http\://atl74-sso.osci.kr
18
IIS 는 두 가지 방법 제공 Tomcat Connector
- 전통적인 방법으로 여러 개의 Properties 파일을 설정해야 하는 불편함- https://confluence.atlassian.com/jira/integrating-jira-with-iis-185729648.html
ARR(Application Request Routing)- IIS 7 이상에서 지원하는 방법으로 Request Filter 와 URL Rewriting 사용한 편리한 방법- https://confluence.atlassian.com/jirakb/integrating-jira-applications-with-iis-using-arr-313467089.html
NginX 다음 구성을 /etc/nginx/nginx.conf 에 추가
- VirtualHost 기능을 사용할 경우 server 설정을 여러 개 추가
- NginX 로 Proxying 을 할 경우 whitelist remote ip 인식 못하는 문제
- 오른쪽 Italic체와 같이 client ip 를 전달하도록 해서 해결
(3) 웹서버 연동 (Proxying) – IIS, NginX 연결
server { listen 80; listen [::]:80; server_name atl74-wiki.osci.kr; // virtualhost 사용 root /usr/share/nginx/html; include /etc/nginx/default.d/*.conf; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:8090; // confluence 서버 client_max_body_size 10M; } … }… server { listen 80; listen [::]:80; server_name atl74-jira.osci.kr; // virtualhost 사용 … }
19
Apache HTTPD SSL 설정 현재 CentOS 에서 사용되는 Apache 2.x 의 경우 SSL 모듈이 기본 내장되어 있음 /etc/httpd/conf.d/ssl.conf 에 SSL 설정 포함 기본 내장 인증서 사용하거나
별도로 인증서를 신청해서 설정 ( 치환 )
HTTPS Proxy 설정 HTTPS(443) 으로 들어왔을 때 , 해당 요청을
Atlassian 제품으로 Proxying 설정 이 때 , HTTPS 가 아닌 HTTP 로 연결
(SSL Termination) "SSL 사용 시 , 웹서버 연동 아키텍처 " 참고 HTTP 로 요청이 왔을 때 , 자동으로 HTTPS 로
변경되도록 URL Rewrite 설정 Atlassian 쪽에서 Proxy Name 설정 변경
(4) SSL 설정
동영상 : https://youtu.be/H3ggomeJE5k
SSLCertificateFile /etc/pki/tls/certs/localhost.crt…SSLCertificateKeyFile /etc/pki/tls/private/localhost.key…SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
<VirtualHost *:80> DocumentRoot "/var/www/html" ServerName atl74-jira.osci.kr
ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]</VirtualHost>
<VirtualHost *:443> DocumentRoot "/var/www/html" ServerName atl74-jira.osci.kr
ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/</VirtualHost>Proxy Name 설정
<Connector port="8080" scheme="https" proxyName="atl74-jira.os-ci.kr" proxyPort="80" secure="true" …
20
방화벽
JIRA
MySQL(jiradb)
SSL 사용 시 , 웹서버 연동 아키텍처 예시
Apache HTTPDmod_proxy
Crowd
MySQL(crowd)
Conflu-ence
MySQL(conflu-ence)
방화벽
DMZ 구간HTTPS(SSL)
SSL Termination
HTTP(Plain)
21
설치 시 , MySQL Database 문자셋을 UTF8 로 설정 DB 생성 시 오른쪽과 같은 옵션 지정 기존 생성된 DB 는 다음과 같이 확인
제품 별 한글팩 적용 화면 인터페이스를 한글로 사용 버전에 맞는 언어팩을 아래 싸이트에서 다운로드
- https://translations.atlassian.com/ 자세한 방법은 동영상 참고 Indexer 는 반드시 CJK 로 두어야 함 - 한글 검색을 위해서 Confluence 의 경우 브라우저 언어에 따라 디폴트 선택되며 , 변경하고자 할 경우
(5) 한글팩 적용 및 각종 한글 관련 설정
CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;
동영상 : https://youtu.be/Wp1LL-GVtnw
동영상 : https://youtu.be/R_F2qx8twK8
<Confluence>/bin/setenv.sh 에 다음을 추가
CATALINA_OPTS="-Dconfluence.browser.language.enabled=false ${CATALINA_OPTS}"
22
Jira 에 한글팩을 적용하면 , 날짜 포맷을 맞게 변경해야 함 오른쪽과 같이 Issue 에서 기한 (Due Date) 을
지정할 때 , 날짜 포맷이 맞지 않는 문제
날짜 포맷을 아래와 같이 지정 System General Configuration Advanced Settings 변경 시 , 적용되는 날짜 포맷
- "2015/11/25 13:01"
(5) 한글팩 적용 및 각종 한글 관련 설정 – Jira 날짜 지정 문제
23
Linux 시스템에 필요한 폰트가 없어서 한글이 깨지는 현상 한글 부분이 네모 박스로 나오는 현상 Linux 폰트 , JDK 폰트 설정 맵핑이 정상적으로 이루어져야 함 아래 과정을 거쳐 필요한 폰트 설치하면 해결
(5) 한글팩 적용 및 각종 한글 관련 설정 – 차트 한글 for CentOS 6
필요 패키지 설치 $ yum install rpm-build $ yum install ttmkfdir $ yum install xfs $ yum install chkfontpath
폰트 설치 $ yum install cabextract $ wget http://centos.karan.org/el4/extras/stable/x86_64/RPMS/cabextract-1.1-2.x86_64.rpm $ rpm -ihv cabextract-1.1-2.x86_64.rpm $ wget http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec $ rpmbuild -ba msttcorefonts-2.5-1.spec $ yum localinstall --nogpgcheck /root/rpmbuild/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm $ yum install fonts-korean $ yum install kde-i18n-Korean $ yum groupinstall korean-support -x xorg-x11-server-Xorg $ fc-cache -fv
Jira 또는 Confluence 중지캐시된 차트 이미지 삭제 <Jira 의 경우 > $ rm –rf <JIRA Home>/caches/workflowimages/*
<Confluence 의 경우 > $ cd <Confluence Home> $ rm -rf bundled-plugins plugins-cache plugins-osgi-cache plugins-temp
Jira 또는 Confluence 재 시작
다음 페이지의 간단한 폰트 복사 방법 권고
24
RHEL/CentOS 7 에서는 패키지가 달라 필요한 폰트를 설치할 수 없음 결국 폰트만 필요하므로 , 아래 디렉토리에 필요한 폰트 설치 후 폰트 캐시 생성
- /usr/share/fonts ( 필요한 폰트 저장 위치 )- sudo fc-cache -fv ( 폰트 캐시 )- fc-list (Linux 운영체제에 설치된 폰트 목록 보기 )
Jira/Confluence 의 캐시 삭제 후 재 시작
(5) 한글팩 적용 및 각종 한글 관련 설정 – 차트 한글 간단한 방법
동영상 : https://youtu.be/8n4W3swwt8w
<Jira 의 경우 > $ rm –rf <JIRA Home>/caches/workflowimages/*
<Confluence 의 경우 > $ cd <Confluence Home> $ rm -rf bundled-plugins plugins-cache plugins-osgi-cache plugins-temp
폰트 다운로드https://github.com/OpenSourceConsulting/atlassian-apps/blob/master/linux-fonts/mstt.z https://github.com/OpenSourceConsulting/atlassian-apps/blob/master/linux-fonts/ppt.z https://github.com/OpenSourceConsulting/atlassian-apps/blob/master/linux-fonts/un-core.z
25
Confluence 오피스 첨부 파일 한글 한글이 모두 네모 박스로 표시되는 현상 다음 문서를 참고하여 오피스 렌더링을 위한 폰트를 명시적으로 지정
- https://jira.atlassian.com/browse/CONF-36557 /usr/share/fonts 아래에 있는 모든 폰트 파일 (*.ttf, *.ttc) 들을 다음으로 복사
- Confluence 에 포함된 JDK 의 <JRE>/lib/fonts/fallback - 윈도우 폰트 (<Window>/Fonts/gulim.ttc) 도 복사 후 지정 가능
Confluence 의 JDK 옵션에 다음을 지정- 오피스 렌더링에 사용할 폰트 위치와 이름을 강제로 지정- 폰트가 존재하지 않을 경우 디폴트로 사용할 폰트를 ' 은 돋음 ' 으로 지정
• 폰트 이름 확인은 Linux 에서 'fc-list' 명령으로 가능
(5) 한글팩 적용 및 각종 한글 관련 설정 – 오피스 첨부 파일
<Confluence>/bin/setenv.sh
CATALINA_OPTS="-Dconfluence.document.conversion.fontpath=/opt/atlassian/confluence/jre/lib/fonts/fallback ${CATALINA_OPTS}"CATALINA_OPTS="-Dconfluence.document.conversion.words.defaultfontname=UnDotum ${CATALINA_OPTS}"CATALINA_OPTS="-Dconfluence.document.conversion.slides.defaultfontname.regular=UnDotum ${CATALINA_OPTS}"CATALINA_OPTS="-Dconfluence.document.conversion.slides.defaultfontname.asian=UnDotum ${CATALINA_OPTS}"CATALINA_OPTS="-Dconfluence.document.conversion.slides.defaultfontname.symbol=UnDotum ${CATALINA_OPTS}"
$ cd <Confluence Home>$ rm -rf bundled-plugins plugins-cache plugins-osgi-cache plugins-temp $ rm -rf shared-home /dcl*
Confluence 재 시작
동영상 : https://youtu.be/He4MpqgLBeQ
26
Confluence 에서 Wiki 페이지 일부 또는 전체를 PDF 로 Export 할 때 한글 부분이 네모 박스로 나오는 현상 General Settings 의 PDF Export Language Support 에서 적당한 폰트를 선택해서
Install 하면 됨 ( 예 : <WINDOW>/Fonts/batang.ttc, NanumGothic.ttf)
Space tools 의 Look and Feel 에서 PDF Export Stylesheet 에다음을 추가
(5) 한글팩 적용 및 각종 한글 관련 설정 – Confluence PDF Export
.code pre, .preformatted pre { font-family:ConfluenceInstalledFont,Courier,monospace;}
동영상 : https://youtu.be/Org5e1teeEA