안드로이드를 쓰다가 아이폰으로 기종을 바꾸면서 연락처를 모두 옮기지 않고,

정리하면서 천천히 옮기려고 했었는데, 그러다보니 차일피일 미루게 되고

연락할 분이 생기면 구글 연락처에서 연락처를 찾아다가 전화를 하고 그 번호를 저장하는 식으로 연락처 관리가 되었다.

가끔 아이폰에 저장되지 않은 번호로 먼저 연락오는 경우가 있는데 광고 전화일 때가 대부분이긴 하지만 아는 분일 때도 있다. 분명 예전엔 서로 저장이 되어있어서 누구인지 알았을텐데, 상대는 나를 알고, 나는 상대를 모르는 상태로 전화를 받을 때는 적잖이 당황스럽고 미안하다.

무안함에 폰을 바꾸면서 전화번호를 다 안옮겨서 몰랐다는 식으로 변명을 하긴 하지만 어쨌든 서운함이 남을터인데, 얼른 연락처 정리를 해야겠다 8ㅅ8

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

문제 찾기  (1) 2015.02.09
아이스 스케이트 잘 타고 싶다.  (0) 2015.01.23
나름 다듬어 가기  (2) 2015.01.08
멀쩡하던 OpenShift가 죽었다.  (0) 2014.10.17
OpenShift Node 설정 중...  (0) 2014.09.18

달력이 2015년도로 넘어간지도 일주일 정도가 지났다.2014년의 나는 어떠했나 돌이켜보면 많은 일이 있기도 했고, 나 자신의 변화는 크게 없었던 것 같다. 소마에서의 회의감을 느꼈던 그 때, 그리고 그 회의감이 어디서 왔었는지를 생각해보면 작년도 제작년과 같은 날들을 반복해왔던게 아닌가 싶다.


Moneycomb 프로젝트를 하고,

건국대 분들과 Ceiling 프로젝트를 하고,

대학교 졸업을 하고,

사내벤처 파일럿 프로젝트를 하고,

사랑하는 여자친구를 만나고,

동아리 활동을 정리하고,

취직을 했다.


정신없이 흘러간 한 해였지만, 내가 되고자 한 나의 모습으로의 변화는 거의 없었다.

소마 때 회의감의 원인은 "내가 노력하지 않았다" 였고, 내가 허투루 쓰는 시간을 추적하기 위해 내가 쓰는 모든 시간을 기록했는데, 확실히 인지하고만 있던 것이 가시화 되면서 문제점이 무엇이고, 어떻게 바꿔야 하는지 방향을 잡을 수 있었다.

시간을 기록하기 전에는 잠을 자기 전에 폰 게임을 한참 하다가 잠을 잤는데, 이걸 측정해보니 짧게는 20분 정도에서 길게는 2시간도 넘어가는 경우도 있었고, 이렇게 쓴 시간은 수면 시간으로 이어지고, 부족한 수면은 아침을 늦게 시작하게 만든다. 무리해서 잠을 적게 자면 하루가 피곤하고, 결국 집중을 못하여 안하느니 못한 효율을 보인다.

또 담배를 피우는 시간은 프로젝트 실에서 나오는 순간부터 담배를 피고 다시 프로젝트 실로 들어오는 동안의 시간을 측정했는데, 일주일을 합쳐보니 4시간 반정도가 나왔다.

휴식이라면 휴식시간이라고 할 수 있겠지만, 담배로 호흡하는 시간이 네 시간 반 전부는 아니지만 그렇다고 생각하니 그건 그것대로 충격이었다.

항상 시간이 부족하다고 하면서 놀건 다 챙겨 놀고 쉴 거 쉬는 이런 모순적인 부분들을 알고는 있었지만 측정을 통해 확인을 하다보니 좀 더 시간을 잘 쓰게 될 수 있었고, 습관이 되면서 굳이 측정하지 않아도 시간 관리를 자연스럽게 할 수 있게 되었다.


나를 바꾸는데 들이는 시간을 길게 잡는다면, 제작년에는 시간을 느끼며 쓰는 습관을 들였다고 치고,

작년은 변화 자체가 크지 않았으니 휴지기라고 생각하고(낙관적),

올 해에는 네 가지 관점에서 바꾸어보려고 한다.


  • 재정관리

  • 생활습관

  • 시간관리

  • 인맥관리


재정관리

이 각박한 세상을 살아가려면 자급자족하는 게 아니고서야 돈이 필요하다.자본주의, 물질 만능주의에 찌들어서 "돈! 돈! 돈!"하고 외치는 건 아니지만, 최소한 하고 싶은 하기 위해서는 대부분의 경우에 돈이 필요한 건 어쩔 수 없다. 돈 대신 노력과 시간을 들이면 되기야 하겠지만.

그 동안에 일도 하고 알바도 하면서 돈을 벌어온 액수가 어느정도는 될텐데, 어째서 하나도 모으지 않았던걸까?

일단 가계부를 쓰면서 지출에 대해 파악하는 것부터 시작해서, 신용카드를 쓰고 있는 지금의 후불인생을 선불인생으로 바꿀 계획이다.

돈이 들어갈 계획이 있다면, 그에 대해 기간, 목표 금액 등을 설정해서 체계적으로 관리할 필요가 있을 듯 하다.


생활습관

아침형 인간, 회사에 입사하면서 4시간 30분 잠 프로젝트를 잠깐(이른바 작심삼일) 했었으나 실패. 그대로 출근 시간에 겨우 맞춰서, 혹은 지각하는 일이 많았다. 확실히 4시간 30분은 수면주기에는 맞지만 필요 수면 시간으로는 부족한 것 같아서 여섯시간으로 조정하고, 실행하고 있다.

지금은 여섯시에 일어나 일곱시에 회사에 도착하는 일정으로 삼일 째 진행하고 있다.

아침 시간에 대한 계획은 8시부터 9시까지 스터디 시간으로 잡아둔 것 말고는 세워둔 게 없지만,

플래너가 오는 대로 하루 일정을 정리하는 시간을 가지려고 한다.

아침만 중요하냐 하면 아침은 밤의 연장이니 잠에 드는 시간도 중요하다고 생각한다. 올해 계획에 대해 생각하면서 이부분에 대해 여자친구와 평일에 집에 들어가는 시간은 열한시 반까지로 하고 싶다라고 얘기 했는데, 이해하고 들어줘서  고마웠다.


시간관리

시간을 측정하는 것을 현재 진행형 시간관리라고 한다면, 미래 시제로써의 시간관리로, 일정관리와 시간관리를 하려고 한다. 어찌보면 당연한 것이지만 이 부분이 참 안되었던 것 같다. 시간관리와 함께 더불어 진행되는 것은 To do 관리이다. 단기, 중기, 장기적 To do로 나누어 내가 지금 해야할 일이 무엇인지, 무엇이 더 중요한지를 함께 파악하고자 한다.

구글 캘린더, 메모, 달력, Wunderlist, Evernote 등 내가 쓰는 것들에 이러한 관리가 퍼져있다보니 이걸 한 군데로 모으고, 그걸 프랭클린 플래너를 통해서 하려고 한다. 갤노트 10.1 용 프랭클린 플래너 앱을 사용해볼까도 싶었지만 실제 플래너를 쓰는 느낌도 안살고, 더 불편하여, 짐이 늘어나더라도 플래너를 들고 다닐 계획이다. 기존의 시스템에 익숙해지면 나에게 맞는 툴을 만들고 정리해야겠다.


인맥관리

인맥 "관리"라는 어감이 좋지는 않지만(이를 대체할만한 표현은 뭐가 있을까? 사람 챙기기..?)  기본적으로 인맥관리를 하는 이유는 내 가치관인 "일기일회의 마음으로 만나라"에서 비롯되었고, 내가 만난 한 사람 한 사람이 소중하다는 생각에서이다. 그런 까닭에 체계적으로 관리한다는 느낌보다는 그냥 내가 평소에 잘 연락을 하면 될 거 같다. 이 전에 만들고 있던 그룹-사람 관계 맵은 완성해야겠다.



천천히, 그렇지만 부단히 노력해서 내가 원하는 나의 모습으로 다듬어 가야겠다. (급 마무리)



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

아이스 스케이트 잘 타고 싶다.  (0) 2015.01.23
연락처  (0) 2015.01.23
멀쩡하던 OpenShift가 죽었다.  (0) 2014.10.17
OpenShift Node 설정 중...  (0) 2014.09.18
새로운 영역의 공부  (0) 2014.07.25

꽉꽉 매어도 어떻게 이렇게 잘 풀릴 수 있는거지..??? 미스테리


그래서 찾아봤다 'ㅅ '



이미지 출처 http://fb.ru/article/78153/rassmatrivaem-razlichnyie-sposobyi-zavyazyivaniya-shnurkov


Case #1. FAIL: httpd config references DNS name without associated gear: 'jbossews-nnoco.example.com'


위 테스트는 애플리케이션이 정상적으로 제거되지 않은 경우에 실패한다.

Step 1. cat /etc/httpd/conf.d/openshift/nodes.txt | grep jbossews-nnoco.example.com을 실행하여 해당 도메인과 연결된 기어의 UUID를 복사한다.
# cat /etc/httpd/conf.d/openshift/nodes.txt | grep jbossews-nnoco.example.com
jbossews-nnoco.example.com 127.12.146.130:8080|541fcc9e818cadf578000004|541fcc9e818cadf578000004
jbossews-nnoco.example.com/health HEALTH|541fcc9e818cadf578000004|541fcc9e818cadf578000004
jbossews-nnoco.example.com/haproxy-status 127.12.146.131:8080/|541fcc9e818cadf578000004|541fcc9e818cadf578000004

Step 2. oo-admin-gear destroygear --with-container-uuid 541fcc9e818cadf578000004 를 실행하여 정상적으로 제거되지 않은 기어를 제거한다.

# oo-admin-gear destroygear --with-container-uuid 541fcc9e818cadf578000004

Killing gear processes for name:541fcc9e818cadf578000004...

Deleting cgroup info...

Deleting stale info from /var/lib/openshift/.httpd.d/ files...

  for 541fcc9e818cadf578000004

  for jbossews-nnoco.example.com



참고 문서 : https://bugzilla.redhat.com/show_bug.cgi?id=1057727





AWS 상에 설치한 OpenShift의 브로커를 이중화하고, 잘 돌아가는 것을 확인하고, 대표님께서 보고 싶다고 하셔서 보여드리려고 했더니. 그때부터였다.

멀쩡히 돌아가고 MCollective Ping도 확인했을 때 잘 돌아가던 그놈이 배신을 했다.

OpenStack에 설치했던 Broker의 설정을 변경해서 AWS의 Node에도 연결을 해보고,

새로 Broker를 몇번이나 다시 설치해서 해보고, 설정값도 이리저리 바꾸어보고, 의심가는 것들을 모두 해보고 확인해봤지만 계속 안된다.


3일 째..

여전히 AWS의 문제는 해결이 되지 않아서 새로 클러스터를 구성하려다가 귀찮았던 바람에 Broker와 Node만 새로 설치하고, ActiveMQ와 MongoDB는 이전의 것을 그대로 두고 사용했다. 여전히 안된다. MongoDB 쪽에는 전혀 문제가 없다.

역시 Broker-ActiveMQ-Node 간의 통신 문제인데, 잘 되던 게 갑자기 안되니 도무지 이유를 모르겠고, 웬만한 트러블 슈팅을 다 할 수 있다고 자만하던 내게 벌을 내린게 아닌가 싶을 정도다.


그러다가 다시 오픈시프트 관련 메일링 리스트를 뒤져보다가

같은 문제의 제목을 찾았고, 전에 MCollective와 관련해서 한번 읽었던 글이지만 혹시나 하는 지푸라기라도 잡는 심정에 다시 천천히 읽어봤다.

그러다가 이 스레드에서 Brenton찡이 clock skew가 아니냐고 물어보길래 응? 설마 이것 때문에 그러려고.. 하다가 혹시나 싶어서 VM들의 시간을 확인해보니, Broker와 Node는 일치하지만 ActiveMQ는 2분 정도의 차이가 났다.

ActiveMQ가 설치된 서버에 ntpd를 설치하고 clock.redhat.com과 시간 동기화를 한 후 접속해보니 되는게 아닌가..!?


아.. 인생 무상.. 사람이 이렇게 미칠 수도 있겠구나 싶었다. 아니.. 안될거면 처음부터 안될 것이지 되다가 아니되냔 말이다. 하하.

이 문제 때문에 사흘을 버리긴 했지만.. 다시 돌아가니 다행이다. ㅠㅠ

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

연락처  (0) 2015.01.23
나름 다듬어 가기  (2) 2015.01.08
OpenShift Node 설정 중...  (0) 2014.09.18
새로운 영역의 공부  (0) 2014.07.25
Do you want to stay here?  (0) 2013.11.22

OpenShift 안정성 테스트를 위해 Broker Host를 이중화하는 작업을 진행했다. 실제로 서비스되는 서버를 구성해 본 적이 없는 까닭에 이것 저것 찾아보고 관련된 책을 읽어보면서 진행했다. 역시 최대의 장벽은 영어... 여담으로 이 프로젝트를 하면서 새로이 배우는 것들이 참 많다. 학교에서 이론 수업으로 배웠던 것들도 되새기는 것들도 많고, 다만 그때 열심히 하지 않았던 게 후회되긴 한다.


OpenShift 설치를 위해서는 매뉴얼 설치, oo-installer, VM 이미지, Puppet으로 배포하는 방법이 있고, 여기에서는 매뉴얼 설치(OpenShift Comprehensive Deployment Guide)를 참고하여 설치했다.


기존에 하나의 OpenShift 클러스터가 있으므로, 여기에서는 하나의 Broker를 추가적으로 구성하고, 로드 밸런서로는 HAProxy를 사용한다.


 VM 구성



  VM 환경 정보

OpenShift 구성은 OpenStack 환경에서 진행되었다. 작업 내용에 포함된 HAProxy 서버와 Broker 서버의 구성을 적어두었다.


HAProxy

  Ubuntu 14.04 LTS, HAProxy 1.5.5

Broker

  CentOS 5.4, BIND9.8

  Broker 1(기존 브로커, DNS Server(BIND) 설치) / Private IP : 30.30.0.1

  Broker 2(새로 설치할 브로커) / Private IP : 30.30.0.2


DNS 설정



  Key 파일 복사

rsync 키 복사

편의를 위해서 Broker 1에서 생성한 rsync용 대칭키를 Broker 2로 복사한다. 파일 복사를 위해 따로 툴은 사용하지 않고 cat 명령을 통해 출력되는 파일의 내용을 Copy & Paste 했다.

Broker 1에서 아래와 같이 실행하면 Private Key 파일인 rsync_id_rsa와 Public Key 파일인 rsync_id_rsa.pub 를 출력한다.

# cat ~/.ssh/rsync_id_rsa*

-----BEGIN RSA PRIVATE KEY-----

블라블라

-----END RSA PRIVATE KEY-----

Public Key 파일 내용


Broker 2에서 아래와 같이 Broker 1의 키 파일 내용을 복사하여 붙여넣은 후 파일을 생성한다.

# cat <<EOF > ~/.ssh/rsync_id_rsa

Private Key 파일 내용 붙여넣기

EOF


# cat <<EOF > ~/.ssh/rsync_id_rsa.pub

Public Key 파일 내용 붙여넣기

EOF


# cat ~/.ssh/rsync_id_rsa.pub >> ~/.ssh/authorized_keys


authorized_keys 파일에 Public Key를 추가한 이유는 Broker 1에서 Broker 2로 추가적으로 복사할 파일이 있기 때문에 scp를 사용하기 위해서다.


DNS 키 복사

Broker 1의 DNS 서버를 설정할 때 사용한 키파일을 Broker 2로 복사한다. OpenShift는 애플리케이션을 생성하면 애플리케이션에 접근하기 위한 도메인을 추가하며, app_name-domain.example.com과 같은 형식이다. Broker 1의 DNS 업데이트를 위해서 동일한 키가 필요하므로 키를 복사해야한다.

Broker 2에는 BIND를 설치하지 않았으므로 /var/named 디렉토리를 먼저 생성한 후 파일을 복사한다.

# mkdir /var/named


Broker 1에서 scp로 키 파일을 복사한다. example.com은 도메인으로 설정한 주소이므로 자신의 설정에 맞는 알맞은 주소를 넣어준다. 가이드를 따라 변경없이 진행했다면 example.com 일 것이다.

# scp -i ~/.ssh/rsync_id_rsa /var/named/*example.com* 30.30.0.2:/var/named


추가적으로 Broker 2 /etc/resolv.conf 의 nameserver 값은 Broker 1의 IP로 수정하고, DHCP 설정 과정에서의 DNS 값 역시 Broker 1의 IP로 값을 설정한다.



  ruby193-mcollective-client 설정 파일 복사

Node와의 통신을 위해 사용하는 Mcollective Client를 설치한 후에 이어 진행할 Comprehensive Deployment Guide의 5.2.절 Configuration에서 Mcollective client 설정 파일은 Broker 1의 설정 파일을 그대로 복사한다.

Broker 1에서 아래의 명령을 수행한다.

# scp -i ~/.ssh/rsync_id_rsa /opt/rh/ruby193/root/etc/mcollective/client.cfg 30.30.0.2:/opt/rh/ruby193/root/etc/mcollective/client.cfg



  Access Keys, 브로커 설정파일 복사

설치 가이드의 6.3.절 Generate Access Keys는 수행하지 않고 Broker 1의 파일을 복사하면 된다. Broker 1에서 아래의 명령을 수행

# scp -i ~/.ssh/rsync_id_rsa /etc/openshift/server* /etc/openshift/rsync_id_rsa* /etc/openshift/broker.conf 30.30.0.2:/etc/openshift/



  DNS 플러그인 설정

7.2.절 Configure the DNS plugin의 과정이다. 브로커 내부에서 nsupdate 명령을 사용하여 DNS를 업데이트할 때 /etc/openshift/plugins.d/openshift-origin-dns-nsupdate.conf 파일의 설정을 읽어와서 사용하게 된다. Broker 1과 설정 값을 동일하게 설정하고, BIND_SERVER의 값을 Broker 1의 IP로 설정한다.


OpenShift Console 설치 후 SSL 설정 없애기

HAProxy 설치 후 HAProxy에서 SSL 설정 시 Broker의 SSL 설정과 충돌하여 접속할 수 없으므로 HAProxy에만 SSL을 적용하고, Broker에서는 80포트로 서비스를 제공하도록 한다. 

Broker 1과 2모두 /etc/httpd/conf.d/000002_openshift_origin_broker_proxy.conf 파일을 아래와 같이 수정한다.

#

# This configuration is to proxy to an OpenShift broker

# (and optional developer console) running in a separate

# httpd instance.

#

# If the broker and node are installed on the same host,

# typically node configuration will provide vhosts prior

# to the ones defined here, so these will not be used.


<Directory />

    Options FollowSymLinks

    AllowOverride None

</Directory>


<VirtualHost *:80>

  # ServerName we will inherit from other config;

  # ServerAlias is to make sure "localhost" traffic goes here regardless.

  ServerAlias localhost

  ServerAdmin root@localhost

  DocumentRoot /var/www/html

  ProxyPass /console http://127.0.0.1:8118/console

  ProxyPassReverse /console http://127.0.0.1:8118/console


  ProxyPass /broker http://127.0.0.1:8080/broker

  ProxyPassReverse / http://127.0.0.1:8080/


  ProxyPass /assets http://127.0.0.1:8118/console/assets

  ProxyPassReverse /assets http://127.0.0.1:8118/console/assets


  ProxyTimeout 300

</VirtualHost>


ProxyPreserveHost On

TraceEnable off

# Required for the remote-user plugin

RequestHeader unset X-Remote-User




  HA Proxy 설치 및 설정

HAProxy에 SSL을 적용하려면 패키지로 설치하지 않고 소스를 빌드해야한다. (1.4 버전에서는 그랬다고 하는데, 1.5 버전부터는 어떠한지 모르겠으나, 이 글에서는 동일하게 1.5.5 버전을 사용하여 소스 빌드를 했다.)

-- 작성 중..




참고 도서

1. 카츠마 료 외 웹 서비스 개발 철저공략 (BJ Public)

2. 이토 나오야 외 저 서버/인프라를 지탱하는 기술 (제이펍)


참고 자료

1. OpenShift Comprehensive Deployment Guide

2. HAProxy Configuration Manual

3. HAProxy TCP Port Forwarding

4. HAProxy Subdomain Redirect

5. HAProxy URL Pattern Forwarding

6. How can I make haproxy route requests based on URL substrings?

7. L4/L7 스위치의 대안, 오픈소스 로드밸런서 HAProxy

8. BIND9로 업그레이드 하기: 알아야 할 9가지 특성

9. [BIND] master,slave nameserver 구축

10. DNS Sample BIND Configurations


리눅스에서 curl로 JSON을 받았을 때 Pretty Print가 되어있지 않으면 참 읽기 난감하다.

내용을 복사해서 JSON Viewer로 옮겨서 봐도 되지만 매번 그렇게 하기에는 번거로운 일이기도 해서 "cli json pretty print"을 키워드로 구글링하니 편한 방법을 찾을 수 있었다.


파이썬 2.6 이상이 설치되어 있다면 아래와 같이 커맨드를 실행시키면 된다.

$ echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool

{

    "bar": "ipsum", 

    "foo": "lorem"

}


그럼 위의 출력 결과처럼 보기 좋게 나온다.



참고 자료

http://stackoverflow.com/questions/352098/how-can-i-pretty-print-json


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 파일을 따로 수정하거나, 처음 추가할 때 줄바꿈을 추가해서 위의 명령을 수행해준다.

FAIL: service ruby193-mcollective not running

FAIL: Could not get SELinux context for ruby193-mcollective


노드를 모두 설치한 후 oo-accept-node로 체크하면,

ruby193-mcollective로 인한 실패가 2건이 뜬다.


일단 서비스 자체가 무슨 이유에서인지 실행이 안되고.. 트러블 슈팅을 할 수가 없다.

로그를 봐도 보이질 않는다.

SELinux 컨텍스트는... 일단 SELinux에 대해서 잘 모르는 것도 있고,

저걸 어떻게 해결해야할 지 책을 보고 구글링해도 해결 방법을 찾을 수가 없다.


더이상 검색만으로는 원하는 답을 찾을 수 없어서 OpenShift 메일링 리스트에 가입했다.

부족한 영어 실력이지만 열심히 메일링 리스트에 써보고 물어봐야겠다.

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

나름 다듬어 가기  (2) 2015.01.08
멀쩡하던 OpenShift가 죽었다.  (0) 2014.10.17
새로운 영역의 공부  (0) 2014.07.25
Do you want to stay here?  (0) 2013.11.22
뚜렷도?  (0) 2013.10.10

OpenShift Node 호스트 설치입니다. OpenShift Origin Comprehensive Deployment Guide를 참고하여 설치하였습니다.


OpenShift 설치 전 필요한 것들

OpenShift Origin을 설치하려면 아래 서비스를 네트워크에서 사용할 수 있어야 합니다.

DNS

MongoDB

ActiveMQ


또한 호스트(Broker, Node)에는 아래 클라이언트가 설치되어 있어야 합니다.

NTP

MCollective


1. 필수사항: 호스트 시스템 준비

이 항목은 Broker와 Node 호스트를 위해 필요한 절차입니다.


1.1 OpenShift Origin 저장소 설정

openshift-dependencies RPM 저장소 설정

cat <<EOF> /etc/yum.repos.d/openshift-origin-deps.repo
[openshift-origin-deps]
name=openshift-origin-deps
baseurl=https://mirror.openshift.com/pub/origin-server/release/4/rhel-6/dependencies/x86_64/
gpgcheck=0
enabled=1 

EOF


파일 생성 확인

# cat /etc/yum.repos.d/openshift-origin-deps.repo 

[openshift-origin-deps]

name=openshift-origin-deps

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

gpgcheck=0

enabled=1


openshift-origin RPM 저장소 설정

cat <<EOF> /etc/yum.repos.d/openshift-origin.repo

[openshift-origin]

name=openshift-origin

baseurl=https://mirror.openshift.com/pub/origin-server/release/4/rhel-6/packages/x86_64/

gpgcheck=0

enabled=1

EOF


파일 생성 확인

#  cat /etc/yum.repos.d/openshift-origin.repo 

[openshift-origin]

name=openshift-origin

baseurl=https://mirror.openshift.com/pub/origin-server/release/4/rhel-6/packages/x86_64/

gpgcheck=0

enabled=1



1.1.1. EPEL 저장소

최신 버전의 epel-release 패키지를 설치합니다. 최신 버전의 epel-release의 RPM 파일 경로는 http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html 에서 확인할 수 있습니다.


yum install -y --nogpgcheck ${url_of_the_latest_epel-release_rpm}


설치 결과

# yum install -y --nogpgcheck http://mirror.premi.st/epel/6/i386/epel-release-6-8.noarch.rpm

Loaded plugins: amazon-id, rhui-lb

epel-release-6-8.noarch.rpm                                                 |  14 kB  00:00:00     

Examining /var/tmp/yum-root-GP7kyR/epel-release-6-8.noarch.rpm: epel-release-6-8.noarch

Marking /var/tmp/yum-root-GP7kyR/epel-release-6-8.noarch.rpm to be installed

Resolving Dependencies

--> Running transaction check

---> Package epel-release.noarch 0:6-8 will be installed

--> Finished Dependency Resolution


Dependencies Resolved


===================================================================================================

 Package                Arch             Version          Repository                          Size

===================================================================================================

Installing:

 epel-release           noarch           6-8              /epel-release-6-8.noarch            22 k


Transaction Summary

===================================================================================================

Install  1 Package


Total size: 22 k

Installed size: 22 k

Downloading packages:

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : epel-release-6-8.noarch                                                         1/1 

  Verifying  : epel-release-6-8.noarch                                                         1/1 


Installed:

  epel-release.noarch 0:6-8                                                                        


Complete!



/etc/yum.repos.d/epel.repo 파일 수정

아래 파란색으로 표시한 부분을 추가해줍니다.

[epel]

name=Extra Packages for Enterprise Linux 6 - $basearch

#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

exclude=*passenger* nodejs* 

failovermethod=priority

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6



1.1.2. "옵션" 저장소 설정 (RHEL 환경에서만 적용됩니다.)

"Optional" 저장소를 사용가능하도록 설정합니다.

yum-config-manager --enable rhel-6-server-optional-rpms


yum-config-manager가 없는 경우 설치해줍니다.

# yum search yum-config-manager

Loaded plugins: amazon-id, rhui-lb

epel/x86_64/metalink                                                                       |  14 kB  00:00:00     

epel                                                                                       | 4.4 kB  00:00:00     

openshift-origin                                                                           | 2.9 kB  00:00:00     

openshift-origin-deps                                                                      | 2.9 kB  00:00:00     

rhui-REGION-client-config-server-7                                                         | 2.9 kB  00:00:00     

rhui-REGION-rhel-server-releases                                                           | 3.7 kB  00:00:00     

(1/6): rhui-REGION-client-config-server-7/x86_64/primary_db                                | 3.3 kB  00:00:00     

(2/6): rhui-REGION-rhel-server-releases/7Server/x86_64/primary_db                          | 6.0 MB  00:00:00     

(3/6): openshift-origin/primary_db                                                         |  44 kB  00:00:01     

(4/6): epel/x86_64/group_gz                                                                | 237 kB  00:00:02     

(5/6): openshift-origin-deps/primary_db                                                    | 481 kB  00:00:03     

(6/6): epel/x86_64/primary_db                                                              | 6.3 MB  00:00:04     

(1/4): rhui-REGION-rhel-server-releases/7Server/x86_64/group_gz                            | 133 kB  00:00:00     

(2/4): rhui-REGION-rhel-server-releases/7Server/x86_64/updateinfo                          |  62 kB  00:00:00     

(3/4): epel/x86_64/updateinfo                                                              | 841 kB  00:00:03     

(4/4): epel/x86_64/pkgtags                                                                 | 908 kB  00:00:03     

========================================== Matched: yum-config-manager ===========================================

yum-utils.noarch : Utilities based around the yum package manager


# yum install yum-utils.noarch

Loaded plugins: amazon-id, rhui-lb

Resolving Dependencies

--> Running transaction check

---> Package yum-utils.noarch 0:1.1.31-25.el7_0 will be installed

--> Processing Dependency: python-kitchen for package: yum-utils-1.1.31-25.el7_0.noarch

--> Running transaction check

---> Package python-kitchen.noarch 0:1.1.1-5.el7 will be installed

--> Finished Dependency Resolution


Dependencies Resolved


==================================================================================================================

 Package                 Arch            Version                  Repository                                 Size

==================================================================================================================

Installing:

 yum-utils               noarch          1.1.31-25.el7_0          rhui-REGION-rhel-server-releases          111 k

Installing for dependencies:

 python-kitchen          noarch          1.1.1-5.el7              rhui-REGION-rhel-server-releases          266 k


Transaction Summary

==================================================================================================================

Install  1 Package (+1 Dependent package)


Total download size: 377 k

Installed size: 1.7 M

Is this ok [y/d/N]: y

Downloading packages:

(1/2): python-kitchen-1.1.1-5.el7.noarch.rpm                                               | 266 kB  00:00:00     

(2/2): yum-utils-1.1.31-25.el7_0.noarch.rpm                                                | 111 kB  00:00:00     

------------------------------------------------------------------------------------------------------------------

Total                                                                             938 kB/s | 377 kB  00:00:00     

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : python-kitchen-1.1.1-5.el7.noarch                                                              1/2 

  Installing : yum-utils-1.1.31-25.el7_0.noarch                                                               2/2 

  Verifying  : python-kitchen-1.1.1-5.el7.noarch                                                              1/2 

  Verifying  : yum-utils-1.1.31-25.el7_0.noarch                                                               2/2 


Installed:

  yum-utils.noarch 0:1.1.31-25.el7_0                                                                              


Dependency Installed:

  python-kitchen.noarch 0:1.1.1-5.el7                                                                             


Complete!



1.2. 업데이트 및 NTP


1.2.1. 방화벽 설치

firewalld를 삭제하고 대신 방화벽 규칙 관리를 위해서 lokkit을 사용합니다.

yum erase -y firewalld

yum install -y lokkit


! Trouble Shooting




+ Recent posts