점심으로 돈수백이란 식당에서 돼지국밥을 먹었더랬다. 다 먹고서는 티슈로 입 주변을 닦았는데 피가 묻어나왔다.
양쪽 입가에서 묻어 나오길래 입술이 건조해서 갈라지는 바람에 피가 났나하고 생각했다. 입술 끝에 티슈를 지긋이 대고 있어봤지만 피는 묻어나오지 않았다. 그새 튼 곳이 아물었나?
식당에서 나오는데 입안에 피맛이 감돌았다. 응? 침을 뱉어보니 붉은 빛이 어른하다. 잇몸이나 치아가 아픈 느낌은 없는데 멈추지 않고 계속 난다.
잇몸에서 피가나나..? 보통은 양치하다 피가 나도 금방 멈췄는데 계속 나고 있다.
치과를 가봐야하나..? 여기 근처에 치과 간판을 본 것 같은데 그리로 가볼까?
양치를 하고 나니 피가 좀 멈추어서 잇몸 건강에 대한 걱정은 조금 줄었다.
혓바늘이 난 것 같다. 거울에 혀를 비추어보미 혀끝 오른쪽에 혓바늘이 난 모습이다.
그제서야 나는 밥을 먹다 혀를 깨문게 생각이 났다. 밥을 먹고 나서부터는 혓바늘과 같은 느낌의 신경쓰임과 통증이었던지라 마냥 혓바늘로만 생각했다. 헌데 그게 아니라 혀를 씹어서 피가 났던 거고, 혓바늘이 아니라 그냥 혀에 상처가 난 거였다.
내 몸이고 내 입속이니 상처에 대한 피드백은 당장에 내가 알 수 있을건데 그걸 깨닫지 못하고 잇몸에서 피가 나는 줄로만 생각했다.
내 몸의 문제도 정확하게 인지하지 못하는데, 실재하는 문제들, 서로 이해하지 못하는 문제들을 인지하거나 해결하는 건 어쩌면 당연하게도 쉽지 않은 것일 수 있겠단 생각이 들었다.

Open PaaS 사업이 2차년도에 접어들면서(일정상으로는 3월부터 2차년도 시작이지만 올해 초부터 이미 2차년도 일이 진행되었다.) 업체별로 개발 범위가 정해지고 예산이 책정되고, 클라이언트가 없이 요구사항을 도출하고, 유스케이스를 작성하고 있다.
프로젝트 특성상 여러업체가 참여하고 있다보니 용어가 하나로 일치되지 않고, 혹은 일치되었더라도 의미를 다르게 해석하는 일이 종종있다.
더군다나 나같은 경우에는 1차년도에 분석했던 OpenShift를 개발하는 것이 아니라 다른 업체가 분석했던 CloudFoundry를 기반으로 개발을 진행하다보니 같은 말인 듯 다르게 생각하거나, OpenShift는 이렇지 않은데 CloudFoundry는 왜 그렇지? 하는 생각이 들 때가 많다.
어쨌거나 유스케이스의 액터의 역할이 정확하게 정의되어있지 않고, 다르게 알고 있던터라 오전에 다른 업체, 품질팀의 수석님과 함께 액터 도출 및 역할 정의에 대해 회의를 했다.
역할은 어느정도 정해졌지만, 액터명에 대해서는 서로 합의하고 정하긴 했지만 나에게는 영 석연치않다.
이를테면 PaaS에서 애플리케이션을 개발하는 조직을 관리하는 액터의 이름은 Paas사용자(관리자) 로 정해졌다.
기존에 같은 역할의 액터 이름은 애플리케이션 관리자였는데 이는 애플리케이션을 서비스할 때 운영하는 사람으로 느껴진다 해서 이를 새로이 정한 것이다.
애플리케이션 관리자보다는 조금은 역할을 포괄하는 의미에 가까워지긴 했지만 보다 명확한 액터 이름으로써 정해졌으면 했다.
조직 관리자로 하자는 의견을 냈으나, CloudFoundry에서 사용하는 Organization과 용어가 겹쳐서 새로 접하는 사람들에게는 혼동의 여지가 덜하겠지만, 현재 프로젝트에 참여하고 있는 사람들이 헷갈릴 수 있기 때문에 수용되지 않았다.
이런 쪽, 저런 쪽으로 의견을 내어보아도 이미 서로가 어느정도 생각이 정해져 있기 때문에 이해하거나 설득하기가 어렵다.
이쯤되면 나는 더이상 의견을 내고 설명하고 설득하는데 지쳐서 마음에 들지 않더라도 현재 상태에서 수긍하고 받아들이게 된다.
사실상의 포기인 셈이다. 계속해서 얘기해도 벽에다 얘기하는 기분이 들기때문인데, 어쩌면 상대도 비슷하게 느낄지도 모르지만, 보통 나는 상대의 의견을 따라가는 편이 된다.

이런 상태에서 끝까지 물고 늘어져 내가 원하는 모습으로 만들어내야하는 건지, 이쯤에서 합의를 하고 이 문제에 대해 고민하거나 거론하지 않아야 하는건지, 답이 있는지 모르겠다.
비단 오늘의 이 회의 뿐만이 아니라 이전에도 그러했다. 상대의 논리가 명확해서 거기에 깔끔하게 동의할 수밖에 없는 상황은 별로 없었고, 사실 논리를 떠나서 이해득실이나 개개인 또는 단체의 욕심도 이 문제에 개입이 될 것이라 생각한다.
시간이 지나서 '봐라. 그때 내가 맞았니', '니가 맞았니' 해봐야 그때에 바꿀 것이 아니고서야 마음의 응어리를 덜어내는 것 말고는 바뀌는 것이 없다. 반대로 누군가는 응어리가 질 수도 있는 거고.
괜히 퍼실리테이터 같은 직업이 나오고 필요로 하는 게 아닌 것 같다.
회의로 인해 인력, 심력, 시간을 낭비하는 것보다, 꼭 완벽한 답은 아니더라도 적정선에서 합의를 보고 결과를 내야하는 걸까?

'마음이 뛰다' 카테고리의 다른 글

도돌이표  (0) 2015.05.15
정작 나는 준비되어 있는가?  (0) 2015.03.27
아이스 스케이트 잘 타고 싶다.  (0) 2015.01.23
연락처  (0) 2015.01.23
나름 다듬어 가기  (2) 2015.01.08

Comprehensive Deployment Guide를 따라서 OpenShift를 설치할 때 Node 설치 전 미리 설치해야 하는 패키지들

  • mlocate 설치

  • dbus 설치 - oddjobd가 통신을 하기 위해서 messagebus가 필요한데 dbus messagebus의 구현체이다.

  • nodejs 설치 - Javascript Runtime 프레임워크

  • rubygem-passenger

  • mod-passenger

  ruby193-mcollective 관련 트러블 슈팅

OpenShift Origin을 OpenStack 환경에서 설치하는 중에 각각의 컴포넌트들(Broker, Node, ActiveMQ, MongoDB)을 각각 VM에 설치하고 있는데, 항상 모두 완료한 후 oo-accept-node를 수행하면 아래와 같은 메시지와 함께 실패했다

# oo-accept-node
FAIL: service ruby193-mcollective not running
FAIL: Could not get SELinux context for ruby193-mcollective
2 ERRORS

그래서 facts.yml 파일에서 이상해 보이는 내용을 수정하고
ps aux | grep mcollective를 해보니 프로세스가 3개나 돌고 있길래 모두 종료 시그널을 보내 강제 종료하고, pid파일을 저장하는 run 디렉토리가 없어서 생성해준 후 서비스를 다시 실행했다.
# mkdir /opt/rh/ruby193/root/var/run
# service ruby193-mcollective start
# service ruby193-mcollective status
mcollectived is running (pid 32013)
헐.. 된다. 만세!


그러나 끝나지 않았다. 여전히 브로커에서 District에 추가하면 small profile을 갖는 노드를 찾을 수 없다고 나온다.


MCollective 설정 중에 가장 답답한 것은 서비스가 running이라고 해도, 이게 ActiveMQ와 연결이 되어있는지 안되어있는지, 메시지는 받고는 있는지, RPC 호출은 되는지 하는 부분이다. 이걸 도통 알 수가 없다.


oo-mco ping을 해보면 노드에 핑을 보내고 응답을 받지만, District에서 찾을 수 없는 것은 왜일까?

브로커는 RPC로 노드의 프로시져를 원격으로 수행하는데, 원격 프로시져 실행을 위한 메시지 풀(큐)로 ActiveMQ로 사용하고 Publisher/Subscriber 로 MCollective를 사용한다.

ActiveMQ의 Admin콘솔에서 큐의 내용을 확인해보면 브로커가 보낸 메시지는 있지만, 노드가 응답한 기록은 없다. ActiveMQ의 로그도 마찬가지였다.


그렇다면 노드의 MCollective 서버가 ActiveMQ에 연결되지 않았음을 의미하므로, 열심히 또 구글링을 하고 메일링 리스트를 뒤져보다가 MCollective의 설정 파일(/opt/rh/ruby193/root/etc/mcollective/server.cfg)의 내용을 다시 점검해보았는데, 설치 가이드에서는 찾을 수 없었던 설명을 볼 수 있었다.

direct_addressing 옵션의 값이 0으로 설정되어 있었는데 1로 바꾸어줘야했다.

설정값을 바꿔준 후 서비스를 재시작하고 브로커에서 oo-mco 스크립트를 이용해 확인해보니 정상적으로 메시지를 주고 받는 것을 확인할 수 있었다.


oo-mco rpc openshift echo msg="I_am_here"

Discovering hosts using the mc method for 2 second(s) .... 1


 * [ ============================================================> ] 1 / 1



osnode1.java2game.com                    

   Message: I_am_here

      Time: nil




Finished processing 1 / 1 hosts in 28.48 ms

# oo-mco facts node-profile -v

Discovering hosts using the mc method for 2 second(s) .... 1

Report for fact: node-profile



---- rpc stats ----

           Nodes: 1 / 1

     Pass / Fail: 1 / 0

      Start Time: 2014-09-22 07:20:26 +0100

  Discovery Time: 2034.33ms

      Agent Time: 47.55ms

      Total Time: 2081.88ms


그리고 다시 Small Gear Profile로 설정한 District에 노드를 추가했더니 드디어 됐다.

추가적으로 브로커와 노드의 MCollective 설정 시 유의 사항으로는 securityprovider와 plugin.psk의 값, username과 password가 동일해야 한다.



참고 자료

https://lists.openshift.redhat.com/openshift-archives/dev/2014-July/msg00215.html

https://docs.puppetlabs.com/mcollective/configure/server.html#directaddressing

https://lists.openshift.redhat.com/openshift-archives/users/2013-December/msg00077.html




  카트리지 설치 관련 트러블 슈팅

OpenShift 설치 후 실제로 애플리케이션을 생성하기 위해서는 카트리지가 필요하다. (애플리케이션을 생성할 때 기본 카트리지를 하나 이상 지정해야 하므로)

글을 쓰는 현재 OpenShift Origin의 릴리즈는 4이다. 그래서 Comprehensive Deployment Guide에서 처음에 설정하는 yum repos 파일의 baseurl도 release4이다.

카트리지 설치 시에 다른 것들은 문제없이 의존성 패키지들도 함께 잘 설치가 되지만 속을 썩이는 놈이 있다면 JBoss 카트리지 군이다. (Jekins 카트리지에서도 의존성 패키지 문제가 있긴 하지만 yum install jekins로 버전을 빼고 설치하면 된다)

  • openshift-origin-cartridge-jbosseap

  • openshift-origin-cartridge-jbossews

  • openshift-origin-cartridge-jbossas


위 카트리지들을 꼭 설치하지 않아도 상관은 없지만, 내가 자바 유저이기도 하거니와, 이 프로젝트에서 다른 회사가 테스트하기 위한 애플리케이션이 자바 웹 애플리케이션이라 JBoss 카트리지를 설치해야한다. 그런데 의존성 패키지들을 찾을 수 없어서 설치하지 못하는 게 문제.


또 열심히 구글링... 한 결과로 문제를 얘기하자면, Openshift Origin의 RPM Repository의 Dependencies의 내용이 다르다. 필요가 없어져서 다르다면 모를까 버전 업 된 Repository에서는 필요한 패키지들이 쏙쏙 빠져있다. maven3나 tomcat6, tomcat 7같은.. 조금 불편하지만 일일히 수동으로 해주었다.

Error: Package: ... 로 시작하는 Dependency 관련 에러 메시지가 뜨면, 해당 패키지를 수동으로 설치해주면 된다. 아래는 Maven3, Tomcat, JBoss AS의 RPM 주소이다.

yum install <주소> 를 실행하면 RPM을 다운로드 받아 설치를 진행한다.

  • Maven 3 : yum install https://mirror.openshift.com/pub/origin-server/release/3/rhel-6/dependencies/x86_64/maven3-3.0.3-4.noarch.rpm 
  • Tomcat 6 : yum install https://s3-us-west-2.amazonaws.com/getup-mirror/getup-openshift-origin-release-3/noarch/tomcat6-6.0.39-1.noarch.rpm 
  • Tomcat 7 yum install https://s3-us-west-2.amazonaws.com/getup-mirror/getup-openshift-origin-release-3/noarch/tomcat7-7.0.50-1.noarch.rpm 
  • JBoss AS : yum install https://s3-us-west-2.amazonaws.com/getup-mirror/getup-openshift-origin-release-3/noarch/jboss-as7-7.1.1.Final-1.noarch.rpm

# yum -y install https://mirror.openshift.com/pub/origin-server/release/3/rhel-6/dependencies/x86_64/maven3-3.0.3-4.noarch.rpm https://s3-us-west-2.amazonaws.com/getup-mirror/getup-openshift-origin-release-3/noarch/tomcat6-6.0.39-1.noarch.rpm https://s3-us-west-2.amazonaws.com/getup-mirror/getup-openshift-origin-release-3/noarch/tomcat7-7.0.50-1.noarch.rpm https://s3-us-west-2.amazonaws.com/getup-mirror/getup-openshift-origin-release-3/noarch/jboss-as7-7.1.1.Final-1.noarch.rpm https://mirror.openshift.com/pub/origin-server/release/3/rhel-6/dependencies/x86_64/jboss-as7-modules-7.1.1.Final-1.noarch.rpm


JBoss AS와 EWS는 이렇게 설치 할 수 있지만, EAP는 라이선스를 구매해서 사용해야 하는 듯 하다. AS와 EAP의 비교는 아래 글에 잘 나와있다.

http://opennaru.tistory.com/44


아래는 Openshift Origin Release 3의 Dependencies

https://mirror.openshift.com/pub/origin-server/release/3/rhel-6/dependencies/x86_64/



참고 자료

http://stackoverflow.com/questions/25729796/missing-jboss-tomcat-cartridge

http://stackoverflow.com/questions/25582773/how-can-i-install-jboss-eap-and-jboss-ews-support-in-openshift-origin

https://access.redhat.com/solutions/223043

https://lists.openshift.redhat.com/openshift-archives/dev/2014-July/msg00224.html



  10.6.1. Configuring SSH to Pass Through the GIT_SSH Environment Variable

Comprehensive Deployment Guide의 10.6.1. 항을 보면 아래와 같이 되어있다.

# cat <<EOF >> /etc/ssh/sshd_config

AcceptEnv GIT_SSH

EOF

그런데 이렇게 했을 때 설정 파일의 끝에 AcceptEnv GIT_SSH가 추가가 되긴 하지만 줄바꿈이 되지 않고 마지막 줄의 끝에 붙게 된다. 따라서 sshd_config 파일을 따로 수정하거나, 처음 추가할 때 줄바꿈을 추가해서 위의 명령을 수행해준다.

윈도우 노트북 한대, 이번에 장만한 맥북 프로레티나, 센터에서 대여한 iMac까지 세대가 한 책상에 있다보니

거의 iMac은 안쓰다시피하고, 키보드와 마우스를 번갈아가며 사용하려니 너무 번거롭다.


스위치를 알아보려고 하다가 소프트웨어적으로 키보드와 마우스를 공유할 수 있을까 해서 찾아보다가

Synergy를 알게 되었다.


가운데의 맥북프로를 서버로 사용하고, 왼쪽의 iMac과 오른쪽의 윈도우 노트북을 클라이언트로 설정했다.


처음에는 클라이언트에서 서버로 접속이 되지않아서 당황하다가 서버 설정에 보면 클라이언트를 배치 후에 Screen Name을 지정해줘야 하는데, 클라이언트의 PC이름과 동일하게 지정해줘야 한다.

이는 여러가지 방법으로도 알 수 있지만 Synergy를 처음 실행하게 되면 서버인지, 클라이언트인지 설명하는 창에서 

클라이언트로 선택 시에 해당 컴퓨터의 Screen Name이 무엇인지 확인할 수 있다.


윈도우의 경우 [내 컴퓨터]의 속성창을 띄우면 "컴퓨터 이름"에 해당하는 것이 Screen Name이다.

맥의 경우는 [시스템 환경설정]에서 [공유] 창을 띄우면 상단에 컴퓨터 이름이라고 나타나는데,

그 아래에 써진 텍스트를 보면 '로컬 네트워크에 있는 컴퓨터가 다음에 있는 사용자의 컴퓨터에 연결할 수 있음:' 이라고 써져있고 그 아래에 네트워크에서 사용하는 컴퓨터 이름이 있는데 이를 사용하면 된다.



서버로 사용하는 컴퓨터는 네트워크로 접속가능한 위치에 있어야 한다.

클라이언트에서 서버로 접속 시 IP를 이용하게 되는데, 서버 컴퓨터와 클라이언트 컴퓨터와 같은 공유기를 사용하고 있다면 문제 없겠지만 클라이언트와 서버가 서로 다른 공유기나 혹은 서버만 공유기를 사용하고 있다면

해당 공유기에서 포트포워딩을 통해 사설 IP로 포워딩을 시켜줘야 한다.


공유기 설정과 관련해서 권한밖의 문제라면 방법이 없어보인다. 사실 같은 자리에서 여러대의 컴퓨터를 사용하게 되므로 그런 문제는 발생하기도 어려울 듯하다.



여기까지 설정하고 서버와 클라이언트에서 Synergy를 실행하고 나면 그야말로 감탄이다.

더군다나 무료라는 점에서 매우 큰 매리트도 있다. 기능을 사용해보고 감탄했다면 Synergy에 기부하는 것도 좋은 방법일 듯하다.



그러나 문제는 서버가 맥이고, 클라이언트가 윈도우인 경우 한/영 전환에 문제가 있다.


구글링을 통해 검색해본 결과로는 한영 패치를 적용하는 것이었는데, 일단 이 방법으로는 해결이 안되었거니와

덮어쓰려고 할 때 Synergyc라는 서비스 프로세스가 돌고 있어서 프로세스 강제종료도 까다롭다는 것이다.

일단 패치는 자신의 synergy와 버전이 맞는 것을 구해야하는데, 아마 배포되기 전에는 소스코드로 있는 듯하다. 그냥 구글 검색 창에 "synergy 자신의 버전 한영 패치"라고만 검색해도 다른 분들이 수고해서 컴파일 해준 것들이 있어 쉽게 구할 수 있다.


이건 설치하는 시점에서 해야하고, 설치 완료 후 close를 누르지 않은 상태에서 해야 IPC 오류가 발생하지 않는다.

(윈도우 7이라면) 시작 메뉴 호출 후 "서비스"를 타이핑하면 제어판 -> 관리도구 -> 서비스로 들어갈 수 있는 서비스를 바로 열 수 있다. 여기서 synergy를 찾아 중지 시킨 후 한/영 패치를 덮어씌워야 한다.


패치를 덮어씌웠다면 설치에서 close를 눌러 설치를 완료하고 설정창에서 클라이언트 환경 설정을 해 준 후

start를 누르면 서버로 접속하게 된다.


어쨌거나 위에서도 언급했듯 내 경우는 한영패치로는 한영전환이 되지 않았다는 것.

키보드가 alt키와 한/영 키가 한 키에 있어서 그런지, 서버가 맥이라서 그런지 이유는 잘 모르겠다.


맥이 서버이고 윈도우가 클라이언트일 때의 환경을 중심으로 검색하다보니


?http://allpeopleparty.blogspot.kr/2009/10/synergy-macserver-client-km.html? 에 autohotkey? 를 이용해서 한영 전환문제를 해결하는 글이 포스트되어있어 이를 참고해서 설정했더 아주 깔끔하게 해결이 되었다.


autohotkey를 이용한 방법을 간단하게 요약하면 

autohotkey 설치 후 완료되고 프로그램을 실행하면 메모장이 뜨면서 autohotkey의 스크립트(혹은 설정?)이 나타나는데

거기서 #z::Run www.autohotkey.com 이라고 된 부분을 #space::Send, {vk15sc138}로 수정해준 후 저장하고,

autohotkey GUI화면에서 메뉴를 찾아보면 reload script를 한번 실행하면 바로 적용이 되어 맥에서 사용하던 command+space로 한영전환을 할 수 있다.



 나름 어렵사리 설정한 Synergy 덕분에 책상이 아주 깔끔해졌다.

무료로 이런 기능을, 그것도 완성도 있게 사용할 수 있는 것만 해도 감지덕지해야겠지만 하나 아쉬운점이라면

매직 마우스를 이용해서 맥에서 스크롤을 하게 되면 맥 특유의 미끄러지듯 스크롤 되는 기능이 클라이언트가 맥임에도 불구하고 일반 휠 마우스에서 휠 하는 듯이 동작한다는 것. 불편하진 않으므로 넘겨버리면 될 문제라 상관없다.


이제 잠자고 있던 iMac을 좀 제대로 활용해야겠다.


+ Recent posts