2014년 8월 27일 수요일

Zapier를 이용한 jira, github 이슈 동기화 하기.

스크린샷 2014-08-27 18.25.10

sync-jira-github를 사용하여 jira github 이슈 동기화 하기. 에서 소개한 것과 함께, 이번에는 zapier를 사용하여 동기화 하는 방법을 정리한다.

sync-jira-github는 JIRA sprint에 발생된 이슈를 쭉 돌면서 등록되지 않은 이슈가 있다면 등록하는 것이고, zapier의 경우에는 사용자가 스토리(zaps)를 등록한 이후부터 이슈가 등록되면 감지하여 등록하는 형태이다.

사용법은 쉽다.
스크린샷 2014-08-27 10.34.07
trigger와 action을 설정할 수 있는데, JIRA 6.x에서 new issue가 되면, github에 create issue를 하는 것이다.

스크린샷 2014-08-27 18.28.30
jira와 github의 계정을 등록하고 나면, jira에서 project로 추가적인 filter를 설정한다.
스크린샷 2014-08-27 18.30.12
그 다음 github에 등록될때 내용을 어떻게 할 것인지 설정하는데, title에 key, fields summary를 넣고 body에 fields description을 추가 했다.
스크린샷 2014-08-27 10.36.10
그리고 스토리(zaps)이름을 등록하면 완료 된다.
이제 jira에 이슈를 발행하면, 아래와 같이 task history를 통하여 동작되는 것을 확인 할 수 있다.
스크린샷 2014-08-27 18.33.42
zapier는 comment를 동기화해주거나, 상태를 같이 변경해주는 기능은 제공하지 않는다.

sync-jira-github를 사용하여 jira github 이슈 동기화 하기.

스크린샷 2014-08-27 17.51.36
jira를 github를 동기화할 방법을 찾다가, zapier 를 사용하는 방법과, npm lib인 sync-jira-github를 사용하는 두가지 방법을 찾았다.

여기서는 sync-jira-github를 사용하여 sync 하는 방법을 소개한다.

https://www.npmjs.org/package/sync-jira-github 를 다운 받는다. npm 설치하여 바로 사용할 수 있지만, 일단 마지막 커밋이 2013-4-2로 상당히 오래 되었다.

그래서 수정이 필요할 것으로 보여 내 저장소로 fork를 하고, local로 clone했다.

소스를 다운 받고 두가지를 수정하였는데, 그중에 하나는 package.json에서 jira, github npm 버젼을 최신으로 변경하였다.

또 한가지는 bin/sync-jira-github가 무조건 npm lib를 호출하도록 되어 있는 것을 상위 sync.js를 호출하도록 하였다. 

이렇게 하지 않으면 package.json에 sync-jira-github를 넣어주어야 한다.

사용법은 간단하다. project-example.json 를 따라 JIRA 계정정보와 github 계정 정보를 넣어주면 된다.

주의 할 것은 userMapping인데 jira와 github모두 협업툴이므로, asign대상을 맞추어 mapping해주어야 하는데 그 정보를 넣어주어야 한다.
“userMapping”: {
          “AlecKim”: “kimalec”,
그런데 문제가 jira에만 있는 계정이거나, JIRA issue가 담당자가 없는 경우에는 대해서는 에러가 발생하게 되어 있다. 나중에 수정할 생각인데 이 경우에는 aleckim에 할당하게 하였다.
var getGhUserFor = function getGhUserFor(jiraUser) {
     var ghuser = context.config.userMapping[jiraUser];
     if(!ghuser) {
              ghuser = ‘kimalec';
          }
     if(!ghuser) {
               throw new Error(“Can’t find ghuser for jiraUser:” + jiraUser);
     }
     return ghuser;
};

google calendar를 confluence calendar에 넣기.

http://www.google.com/calendar 에 접속하여 내 캘린더 팝업 버튼을 누르면 캘린더 설정이 나온다.
config
거기서 비공개 주소 중에 ical을 선택하면 비공개 주소 url이 나온다.
address
그 주소를 confluence calendar에 추가하면 된다.
confluence calendar로 가면 우측 상단에 add calendar가 있다.
add
추가 하는 방법이 4가지 나오는데 그 중에 subscribe by URL을 선택한다.
sub
비공개 주소를 URL에 넣고 calendar이름을 적당히 넣으면 추가 된다.

Confluence Team Calendars를 개인 Google Calendar에 넣기

넣고자 하는 Team Caledars를 상세 항목을 연다.
image2014-5-15 7-27-31

Subscribe를 선택하면 아래와 같이 넣고자 하는 URL입력하거나, google calendar에 넣을 수 있다.
image2014-5-15 7-29-22
아래와 같이 등록된 것을 볼 수 있다.
image2014-5-15 7-31-55



DDNS를 사용하는 경우에 proxy error 장애

지금 AWS에 설치된 아파치에서 proxy를 사용하여 DDNS 설정된 집 PC Server로 접속하게 되어 있다.
스크린샷 2014-08-05 5.47.49

그런데 한 번씩 AWS에서 설정된 DNS server가 iptime.org 도메인을 찾지 못하는 경우가 있다.
~$ nslookup XXXX.iptime.org
Server: 172.31.0.2
Address: 172.31.0.2#53
** server can’t find wzd.iptime.org: NXDOMAIN
그러나 PC나 핸드폰에서는 제대로 동작한다.
aleckim$ nslookup XXXX.iptime.org
Server: 210.220.163.82
Address: 210.220.163.82#53
Non-authoritative answer:
Name: XXXX.iptime.org
Address: 61.98.XXX.XXX
이 경우에는 /etc/resolv.conf에 설정된 nameserver adress를 찾을 수 있는 210.220.163.82로 변경해주면 된다.
그리고 apache2 server를 재실행해주어야 한다.

Extend Your Evaluation of JIRA, Confluence

We’re happy to extend your download product evaluation period for up to 90 days free. Here’s how to generate a new evaluation key online:
 1. Login to my.atlassian.com. You’ll arrive on the Licenses page by default.
 2. Click ‘New Evaluation License‘ to create a new key with an additional 30 days evaluation time.
 3. Apply this key to your server under the Administration > License Details page.
(If you’re an Atlassian OnDemand evaluator, please note that we do not offer extensions of 
Atlassian OnDemand. However, we offer full refunds during the first month of paid service following the end of the evaluation if you decide Atlassian OnDemand isn’t for you.  After the first paid month, we cannot offer refunds or exchanges.)
위에 글은 atlassian에 설명하고 있는 글이다. 최대 90일까지 연장 가능하다고 되어 있는데, 요청하면 계속 평가용 라이센스가 발급되었다.
1. my.atlassian.com 에 접속하여 로그인하면 자신이 구입한 license key를 볼 수 있다. 
image2014-4-5 14-52-43
2. new evaluation license를 선택한다. 
sever id를 넣어야 하는데 이 항목의 자신의 jira server에서 Administration -> System -> License ( 왼쪽 메뉴바에 있음)에서 확인할 수 있다.
image2014-4-5 14-53-1
Product  와 Server ID 를 입력하고, Generate License를 하면 새로운 License key가 생성된다. 
image2014-4-5 14-53-28
3. + 를 클릭하면, License Key 를 보여준다. 이것을 클립보드(cmd+c or ctrl+c)에 복사한다. 
 image2014-4-5 14-53-37
4. 아까 확인했던, 메뉴항목 중에 Update License가 있는데 여기다가 붙여넣기 하고,  Add를 한다. 
 image2014-4-5 14-53-48
위와 같이 License  expire가 증가 된 것을 볼 수 있다.

Confluence 에서 한글이 ???로 표시 되는 경우.

Edit할 때나, 입력할 때 한글이 정상적으로 나오는데, 입력 후에 보면 ??로 보이는 경우 
 image2014-4-5 14-50-24
Mysql의 기본 charset 에 UTF-8로 변경하면 된다. 
image2014-4-5 14-50-45

Mac에서 nfs, smb 연결하기.

네트워크에서 공유된 컴퓨터와 파일 서버에 연결하기

파일 공유가 켜져 있는 Mac 및 Windows 컴퓨터와 AFP, SMB/CIF, NFS, FTP를 사용하는 서버를 포함하여 네트워크 상의 공유 컴퓨터 및 파일 서버에 연결할 수 있습니다.

주소를 입력하여 컴퓨터나 서버에 연결하기

  1. Finder에서 이동 > ‘서버에 연결’을 선택하십시오.
  2. 서버 주소 필드에 컴퓨터나 서버에 대한 네트워크 주소를 입력하십시오.
  3. 연결을 클릭하십시오.
  4. Mac에 어떻게 연결하고 싶은지 선택하십시오.
    방문자: 공유 컴퓨터가 방문자 접근을 허용하는 경우 방문 사용자로 연결할 수 있습니다.
    등록 사용자로: 유효한 로그인 이름과 암호를 사용하여 다른 Mac에 연결할 수 있습니다. 다른 Mac에서 ‘다음 사용자만’이 선택되어 있다면, 사용하고 있는 로그인 이름이 허용된 사용자 목록에 있는지 확인하십시오.
    Apple ID 사용하기: Apple ID를 사용하여 다른 Mac에 연결할 수 있습니다. 이 Mac과 다른 Mac에서 모두 이 Apple ID를 사용하여 사용자와 그룹 환경설정에서 설정해야 합니다.
  5. 필요하다면, 사용자 이름과 암호를 입력한 다음 서버 볼륨이나 공유 폴더를 선택하십시오.
    나중에 해당 컴퓨터에 더 쉽게 연결하려면 ‘나의 키체인에 이 암호 기억’을 선택하여 컴퓨터에 대한 사용자 이름과 암호를 키체인에 추가하십시오.

공유 컴퓨터 및 서버에 대한 네트워크 주소 포맷

공유된 컴퓨터나 네트워크 상의 서버에 대한 주소를 알고 있는 경우 컴퓨터나 서버에 연결하는데 그 주소를 사용할 수 있습니다. AFP, SMB/CIF, NFS와 FTP를 사용하는 서버 뿐만 아니라 파일 공유가 켜진 Mac과 Windows 컴퓨터에 연결할 수 있습니다.
네트워크 주소는 DNS(Domain Name System) 이름과 컴퓨터에 대한 추가 경로 이름이 뒤에 오는 프로토콜(afp://와 같은)로 구성됩니다. 다른 종류의 서버에 연결하는데 사용할 올바른 주소 포맷에 대해서는 아래 표를 확인하십시오.
SMB/CIFS(Windows) 서버와 공유 폴더
다음 포맷 중에 하나를 사용하십시오.
컴퓨터 이름을 사용할 수도 있습니다. 공유 폴더를 주소 일부로 지정하지 않으면 사용자 이름과 암호를 입력한 후 선택할 수 있습니다.
NFS 서버
WebDAV 서버
DNS 이름 대신에 컴퓨터의 IP(Internet Protocol) 주소를 사용할 수 있습니다.
Finder에서는 읽기 전용 접근으로만 FTP 서버에 연결할 수 있습니다. FTP 서버에 파일을 복사하려면 FTP App을 사용하십시오.

How to upgrade jira, confluence, bamboo, crucible on linux

이번에 atlassian series 를 구매하기로 결정하여, 구매전에 3월에 설치했던 시스템을 업데이트 할려고 한다.
참고로 linux를 사용하고 있기 때문에, linux에 관하여만 작성하였다.
jira, confluence의 업데이트는 쉽다. bin파일을 받아서 실행하면 3번 upgrade가 있으므로 그거대로 하면 짠~!
스크린샷 2014-08-02 15.10.13
다만 주의해야 할 것은 최신버젼을 설치하게 되면, 기존의 plugin이 동작하지 않거나, MarketPlace에 접속되지 않을 수도 있으니 업데이트하고자 하는 버젼을 꼼꼼히 검토하자.
bamboo 의 경우에도 home directory가 분리되어서 쉽게 설치 가능한다. 원래는 백업을 해야 하는데, 무시하는 걸로~ ^^; 다만 무시하고 업데이트했다가 이전 버젼으로는 돌아오지 못한다. 주의!
최신 버젼의 압축 파일을 받아서 풀면, atlassian-bamboo-5.6.0 폴더가 만들어진다.
WF(WizardFactory)의 경우에는 jira와 confluence가 설치되는 /opt/atlassian 에 이동하여 관리한다.
폴더 이동한 후에, 그냥 /bin/start-bamboo.sh를 실행하면 되지만, 내 경우에는 mysql를 사용하고 있어서 mysql용 JDBC driver를 lib폴더에 복사해 넣어줘야 한다.
cp ../bamboo-5.4.2/lib/mysql-connector-java-5.1.29-bin.jar lib/
home(data) directory를 지정해줘야 한다.
cd bamboo-5.6.0/
vi atlassian-bamboo/WEB-INF/classes/bamboo-init.properties
bamboo.home=/var/atlassian/application-data/bamboo
그런 다음에 실행하면 문제 없이 동작한다.
문제는 crucible과 fisheye 업그레이드이다. 이 경우에는 hom directory도 분리되어 있지 않은 상황이라 어렵다.
fecru(crucible과 fisheye는 합쳐져 있다.) 는 환경 변수 FISHEYE_INST 설정이 되어 있는 경우에 그 쪽으로 DATA 파일들이 저장되고, 설정하기 않은 경우에는 압축푼 폴더(문서에서는 home directory라고 표한다.)에 폴더와 파일을 생성한다.
WF의 경우에는 FISHEYE_INST를 설정하지 않고 있었으나, 이번에 설정해서 쓸려고 한다.
~/.bashrc 에  export FISHEYE_INST=/var/atlassian/application-data/fecru 를 추가 한다.
위의 경로도 jira를 참고하여 동일한 위치에 가게 했다. 설정 및 기존에 필요한 파일 FISHEYE_INST 폴더에 복사해야 한다.
# cp /opt/atlassian/fecru-3.3.3/config.xml /var/atlassian/application-data/fecru/
# cp -af /opt/atlassian/fecru-3.3.3/var /var/atlassian/application-data/fecru/
# cp -af /opt/atlassian/fecru-3.3.3/cache /var/atlassian/application-data/fecru/
data 폴더가 존재하는 경우에는 data 폴더도 복사해야 한다.
그리고 mysql을 사용하는 경우에는 bamboo와 같이 lib폴더에 복사해 넣어야 한다.
cp ../fecru-3.3.3/lib/mysql-connector-java-5.1.29-bin.jar lib/
참고

2014년 8월 14일 목요일

행복한 직원이 충성도 높은 고객을 만든다.

미국에서 기업들은 4년 마다 고객의 절반을 잃는다.
불만고객의 96%는 조용히 그 기업과 인연을 끊는다.
신규고객 유치는 기존 고객관리보다 비용이 5배나 더 든다.
반면 충성도 높은 단골은 다른 고객들보다
4배나 많은 돈을 쏟아 붓는다.
– 케빈 켈리
직원들이 만족하는 만큼 서비스 질이 향상되고
서비스 질 향상은 곧 고객만족을 이끌어내
회사의 수익으로 이어집니다.
회사가 직원을 고객 대하듯
정성과 진심으로 보살피면,
직원은 고객이 원하는
완벽한 서비스를 최선을 다해 제공할 것이고,
이런 선순환이 기업의 미래를 보장합니다.
- 행복한경영이야기