꼬반 Blog

Window Terminal V1.0 에서 Git-bash 한글 깨짐 해결

Microsoft Terminal이 정식 버전이 출시되었다는 것을 듣고 바로 설치하여 사용해보았습니다. 확실히 기존 cmd, powershell보다 훨씬 텍스트 출력이 빠른것이 체감이 되고 왠지 감성에 맞아 사용해보기로 하고 아래 사이트에서 추가 UI 프리셋을 추가하였습니다. https://apost.kr/492 새로운 윈도우 터미널 UI 환경설정하기 새로운 윈도우 터미널은 JSON 포맷으로 된 환경설정 파일이 별도로 제공됩니다. 환경 설정 파일의 기본 위치는 C:\Users\이송만\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\prof.. apost.kr 그런데 Git-bash 쉘을 추가하고 확인해보니 한글 출력이 T..

Read More

ELK 작업기

일단 Elasticsearch는 버전업이 무지하게 빠르다. 무시무시하다. 개발자님들에게 X키를 눌러 JOY를... 그런 환경이므로 elk를 docker를 활용하여 올린다. docker의 환경설정을 수정하여 docker 볼륨 위치도 변경해놓고 2개 클러스터 512m 램으로 기본 사용하여 mysql의 general 로그를 파싱하여 넣기로 했다. 일단 직접하려고 하루정도 golang으로 삽질하다가 검색 고고싱 아래 사이트들에서 도움을 받았다. - * - - - * 특히 별표가 있는 사이트가 도움이 되었는데 일단 버전이 다른 부분은 좀더 수정하였다. 첫번째 pad 사이트의 아래 부분의 파이선 스크립트로 general 로그를 전처리를 수행하고 이후 logstash 로 파싱하여 elastic으로 input해주었는데..

Read More

[MacOS] Vmware에서 사용하기

테스트를 위해 MacOS를 Vmware 에서 돌리기 위해 참고한 사이트 https://tigerteam.postype.com/post/3224012 윈도 10 VMWare에서 MacOS Mojave 구동하기 swift 언어를 배우기 위해 Mac book이나 Mac mini가 없다고 swift 언어의 개발이나 iOS개발 학습을 못하는건 아닙니다. 물론 iOS 디바이스 없이는 정확한 iOS 동작 테스트도 안되고, 애플 앱 스토어 (app store)에 앱을 올리기전 코드 사이닝을 위해는 Mac book이나 Mac mini등의 Mac 장비 구매는 반드시 필요합... tigerteam.postype.com https://github.com/DrDonk/unlocker DrDonk/unlocker VMware W..

Read More

[유틸] Putty 대신 사용하기 좋은 무료 SSH Client 프로그램 소개

SSH는 서버의 Terminal에 접속하기 위한 보편화된 방법이다. 그래서 다양한 무, 유료 프로그램들이 있고 특히 오픈소스에서 대표적으로 사용되는 클라이언트로는 Putty가 있다. Putty는 기본 기능에 매우 충실한 훌륭한! 프로그램이지만 편의 측면에서는 몇몇 불편한 부분들이 있다. 그래서 오늘은 Putty 대신 사용할만한 좋은 무료 프로그램 하나를 추천해본다. 공식 사이트 : https://www.solarwinds.com/free-tools/solar-putty Solar-PuTTY 위 프로그램 역시 기반은 Putty를 사용하지만 Session 이나 SSH 외 FTP, SFTP, SCP, Telnet 등을 하나의 화면에서 쉽게 사용하고 관리할 수 있게 해준다. 프로그램을 다운받아서 압축을 풀면 실..

Read More

[RemoteFX] Windows 10 에서 RemoteFX를 사용한 RDP

윈도우 7 sp1 인가 부터 적용되었다고 하는 RemoteFX 를 적용하여 원격 데스크톱을 활용해보기 위해 테스트 먼저 제일 중요한 것은 해당 하는 서버의 그래픽 카드가 DX 11 이상을 필수적으로 지원해야 하며 RDP 7.1 이상 버전으로 서로 동작해야 한다. 그리고 http://202psj.tistory.com/1037 주소를 참고하여 RemoteFX 관련 설정들을 사용으로 바꾸어 주었음. 근데 설명이 약간 모호해서 (서버에 설정해야 하는지 클라이언트에 해야 하는지..) 그냥 서버, 클라이언트 양쪽을 모두 다 그냥 다 RemoteFX 설정 해주었음.. 컴퓨터 구성 - 관리 템플릿 - 윈도우 구성 요소 - 터미널 서비스 항목에 원격 데스크톱 세션 호스트와 원격 데스크톱 연결 클라이언트 두개 항목이 있음..

Read More

[docker] ova to docker img 변환하기

이번에 회사에서 일을 하면서 ova 파일로 교육을 진행하게 되었다. 그런데 ova파일은 아무래도 실습, 교육환경을 준비하는게 매우 번거로워서 도커 컨테이너로 바꿀수 있는지 찾아보았다. 결과부터 적어보자면 변환도 가능하고 정상적으로 실행도 해보았으나 중간 처리 과정에 시간이 꽤 걸려서 실제 사용을 하기엔 어려워 보였지만 기록을 남긴다. 대상 ova : 30Gimport 용량 : 60G 1. ova 파일을 tar xvf 로 압축을 해제2. 안에 포함된 .vmdk 파일을 qemu-img 를 통해 raw 파일로 변환3. 변환한 raw 파일을 guest 를 이용하여 가상 filesystem 으로 마운트 후 처리과정4. 변환된 파일을 docker import 를 통해 img 로 등록5. 등록한 img 파일을 실행...

Read More

[LineageOS] 커스텀 롬 사용해보기!

내게는 현재 메인 폰으로는 Nexus 6P를 사용하고 있다. 구글 레퍼런스다 보니 최신 OS가 바로바로 업데이트 되는것이 제일 맘에 들었고 통신사 앱이 설치되지 않는점도 마음에 들었다. 그래서 앞으로도 핸드폰은 쭉 구글 레퍼런스를 쓰지 않을까 싶다. 그리고 얼마전에 산 아이패드 pro 10.5를 메인 디바이스로 사용한다. 마지막으로 Nexus 6P를 쓰기전 중고로 잠시 사용하던 삼성 갤럭시 S5 LTE-A 모델. 현재는 액정 보호 유리가 나가고 더이상 업뎃도 안되고 느린거 같아 한번 커스텀롬을 올려보고자 정보를 찾아보고 기록을 남긴다. 참고는 많은 사이트가 있었으나 다음 사이트가 제일 도움이 되었다. 참고 : http://blog.naver.com/PostView.nhn?blogId=kykint&logN..

Read More

[vSphere] vmdk 파일 복구 방법

운영 환경 : vSphere 5.5장애 이유 : esxi 호스트 리부트 후 disk description 파일인 vmdk 파일이 보이지 않음. 때문에 해당 vm을 켤 수 없는 상황 (error 18) 복구 방법 : https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1002511 해당 datastore 에 접속하여 cli로 작업 # ls -l target-flat.vmdk vmdk size nnnnnnn # cat target.vmx scsi0.virtualDev = "type" # vmkfstools -c nnnnnnn -a type -d thin temp.vmdk # rm -i tem..

Read More

[협업개발] Yona

개발을 할때 팀이나 조직에서 사용하기 좋은 오픈소스 https://repo.yona.io/organizations/yona-projects 과거 Yobi가 업그레이드 되었다고 한다. 팀에서 사용하기위해 셋팅해보았다. 추후 사용기를 적어보도록 하겠다.

Read More

[오픈소스] GOQ 구축 (goq: a queuing and job management system fir for the cloud. Written in GO (golang)).

설치 및 구축 프로세스 마스터 노드, 워커 노드 셋팅 VM에 마스터 노드, 워커 노드 2대 생성 후 CentOS 7.2 설치 설치 후 각 서버는 selinux 설정을 permissive 로 변경 워커 노드는 firewalld.service 를 stop 및 disable 시킴 마스터 노드에 eth0, eth1 connection 설정 각 서버 네임서버 셋팅 (210.218.222.100) dhcpd 설치 및 셋팅 (yum 으로 설치 후 아래처럼 dhcpd.conf 수정) option space PXE; option PXE.mtftp-ip code 1 = ip-address; option PXE.mtftp-cport code 2 = unsigned integer 16; option PXE.mtftp-spor..

Read More

Window Terminal V1.0 에서 Git-bash 한글 깨짐 해결

Microsoft Terminal이 정식 버전이 출시되었다는 것을 듣고 바로 설치하여 사용해보았습니다.

확실히 기존 cmd, powershell보다 훨씬 텍스트 출력이 빠른것이 체감이 되고 왠지 감성에 맞아

사용해보기로 하고 아래 사이트에서 추가 UI 프리셋을 추가하였습니다.

https://apost.kr/492

 

새로운 윈도우 터미널 UI 환경설정하기

새로운 윈도우 터미널은 JSON 포맷으로 된 환경설정 파일이 별도로 제공됩니다. 환경 설정 파일의 기본 위치는 C:\Users\이송만\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\prof..

apost.kr

그런데 Git-bash 쉘을 추가하고 확인해보니 한글 출력이 Terminal에서 깨져서 출력이 되었다. ??

한글파일명이 깨져서 나온다.

Git-bash를 단독으로 띄울때는 정상적으로 출력이 된다.

Git-bash.exe 결과

그래서 차이점을 비교하여 보니 위 사이트에서 추가한 Git-bash 환경설정은

환경설정의 command file

로 되어 있고 해당 경로에 있는 bash를 실행해보면 똑같이 한글이 깨진다.

그래서 Git-bash.exe 가 실행될때 잘 살펴보니 실행하는 bash 파일의 위치가 달랐다.

저 경로에 있는 bash 파일로 설정을 변경하고 옵션을 수정해주었더니

정상적으로 잘 출력이 되었다.

끝.

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

ELK 작업기

일단 Elasticsearch는 버전업이 무지하게 빠르다. 무시무시하다. 

 

개발자님들에게 X키를 눌러 JOY를...

 

그런 환경이므로 elk를 docker를 활용하여 올린다. 

 

docker의 환경설정을 수정하여 docker 볼륨 위치도 변경해놓고 2개 클러스터 512m 램으로 

 

기본 사용하여 mysql의 general 로그를 파싱하여 넣기로 했다.

 

일단 직접하려고 하루정도 golang으로 삽질하다가 검색 고고싱 아래 사이트들에서 도움을 받았다.

 

- *<https://pad.yohdah.com/285/mysql-general-query-log-and-logstash>

- <https://qbox.io/blog/mysql-logs-elasticsearch-logstash-kibana>

- <https://qbox.io/blog/ship-mysql-logs-elasticsearch-filebeat>

- *<https://github.com/cj203/logstash-mysql-general-log-filter/blob/master/pipeline.conf>

 

특히 별표가 있는 사이트가 도움이 되었는데 일단 버전이 다른 부분은 좀더 수정하였다.

 

첫번째 pad 사이트의 아래 부분의 파이선 스크립트로 general 로그를 전처리를 수행하고 

 

이후 logstash 로 파싱하여 elastic으로 input해주었는데 중간에 filter 부분에 multiline { }

 

은 현재 사용하는 7.1.1 버전에서는 codec => multiline { } 으로 바꿔 사용하여 주고

 

filter 부분이 아닌 input 쪽에 넣어주어 

 

input {
  file {
    codec => multiline {
      pattern => "^%{NUMBER}\s+%{NOTSPACE}"
      negate => "true"
      what => "previous"
    }

  ...

}

처럼 설정해준다.

 

그럼 path에 지정한 log파일을 파싱해서 input 하는데 대상 로그 사이즈는 2016년10월부터 현재까지 약 80G

 

로그 파일이고 전처리는 오래 걸리지 않았으나 elk로 전체 data를 입력하는데는 약 5일정도 걸린것 같다...

 

그리고 중간에 elk memory heap 이 부족하여 error가 났고 docker-composer 를 수정하여

 

각 node의 메모리를 4G로 / 전체 클러스터를 마스터1 / 노드 3으로 수정하여 이후 문제없이 모두 입력을 받았다.

 

 

 

그리고 이후 입력된 값을 확인하는 중에 사용한 grok 패턴은 connect command 에만 접속한 db, 유저, client 정보가 나오고 나머지엔 나오지 않아 다른 레코드들의 field 를 업데이트 해주어야 했다.

 

이는 update_by_query 를 통해 수행하였는데 

 

- <https://www.roseindia.net/elasticsearch/elasticsearch-update-by-query-add-field.shtml>

- <https://stackoverflow.com/questions/44725905/how-to-update-a-string-field-with-elasticsearch-update-by-query>

- <https://stackoverflow.com/questions/44725905/how-to-update-a-string-field-with-elasticsearch-update-by-query>

- <https://discuss.elastic.co/t/is-there-any-way-to-update-multiple-fields-by-update-by-query/70644/1>

- <https://discuss.elastic.co/t/add-field-to-existing-document-by-query/68874/1>

 

다음 사이트들의 도움을 받았고 kibana console 에서 

 

POST /mysql-xxxx-xx-xx/_update_by_query
{
  "script": {
    "inline": "ctx._source.mysql_database=\"\";ctx._source.mysql_connect_user=\"\";ctx._source.mysql_connect_host=\"\"",
    "lang": "painless"
  },
  "query": {
    "match": {
      "command": "Query"
    }
  }
}

 

특정일에 대한 인덱스에 대해 테스트 후 동작하는 것을 확인하고 mysql-* 로 전체 인덱스에로 쿼리를 수행했다.

 

그리고 kibana에서 request timeout 으로 정상 수행 결과가 나오지 않는 것을 보고는 날짜별/월별/일별 등 다양한 

 

방법으로 테스트 하였는데 월별 정도로 돌릴때 타임아웃없이 수행된것을 보고 실제 레코드를 확인해보면

 

필드가 반영이 안되어 있는 등 여러 이슈를 발견하여 해결하기 위해 다양하게 체크를 했는데

 

결과적으로는 에러가 아니라 실질적으로 해당 쿼리를 수행하고 kibana에서의 대기시간에 return이 없어서

 

timeout이 난 것뿐 이고 

 

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
002b90c4fc50        es04                229.43%             4.831GiB / 62.65GiB   7.71%               456GB / 159GB       50.1GB / 531GB      215
3052fb09ca6a        es01                268.17%             5.363GiB / 62.65GiB   8.56%               1.05TB / 955GB      65.5GB / 597GB      259
73ee3a3d2f17        es03                227.66%             4.868GiB / 62.65GiB   7.77%               442GB / 635GB       49.6GB / 589GB      222
d81350bd7053        kibana              0.55%               174.1MiB / 62.65GiB   0.27%               19.5GB / 1.58GB     437MB / 102kB       14
5b36619c88b5        es02                261.03%             4.857GiB / 62.65GiB   7.75%               499GB / 212GB       61.8GB / 584GB      229

 

도커 컨테이너의 resoure를 보면 부지런히 해당 쿼리를 수행하고 있음을 알게 되었다. 그래서 이후는 쿼리를 수행시키고

 

리소스 사용률이 없어질때까지 기다리기..

 

이후 원하는데로 필드가 추가된 것을 볼수 있었다. 

 

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[MacOS] Vmware에서 사용하기

테스트를 위해 MacOS를 Vmware 에서 돌리기 위해 참고한 사이트

https://tigerteam.postype.com/post/3224012

 

윈도 10 VMWare에서 MacOS Mojave 구동하기

swift 언어를 배우기 위해 Mac book이나 Mac mini가 없다고 swift 언어의 개발이나 iOS개발 학습을 못하는건 아닙니다.   물론 iOS 디바이스 없이는 정확한 iOS 동작 테스트도 안되고,  애플 앱 스토어 (app store)에 앱을 올리기전 코드 사이닝을 위해는 Mac book이나 Mac mini등의 Mac 장비 구매는 반드시 필요합...

tigerteam.postype.com

https://github.com/DrDonk/unlocker

 

DrDonk/unlocker

VMware Workstation macOS . Contribute to DrDonk/unlocker development by creating an account on GitHub.

github.com

https://techsviewer.com/download-mac-virtual-machine-image-for-vmware-and-virtualbox/

 

Download Mac Virtual Machine Image for VMware and VirtualBox

When you hear the term Mac Virtual Machine, this refers to the ability to be able to run Mac OS through a Virtual Machine. This Virtual Machine can be installed on a Windows desktop and Mac. Virtual Machines are available from providers such as VMWare and

techsviewer.com

https://mac-torrents.com/category/mac-os-apps/office/

 

Office Archives | Mac Torrents

Fix Blocked downloads on chrome/firefox

mac-torrents.com

 

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[유틸] Putty 대신 사용하기 좋은 무료 SSH Client 프로그램 소개

SSH는 서버의 Terminal에 접속하기 위한 보편화된 방법이다. 그래서 다양한 무, 유료 프로그램들이 있고


특히 오픈소스에서 대표적으로 사용되는 클라이언트로는 Putty가 있다.


Putty는 기본 기능에 매우 충실한 훌륭한! 프로그램이지만 편의 측면에서는 몇몇 불편한 부분들이 있다.


그래서 오늘은 Putty 대신 사용할만한 좋은 무료 프로그램 하나를 추천해본다.


공식 사이트 : https://www.solarwinds.com/free-tools/solar-putty


Solar-PuTTY


위 프로그램 역시 기반은 Putty를 사용하지만 Session 이나 SSH 외 FTP, SFTP, SCP, Telnet 등을 하나의 화면에서


쉽게 사용하고 관리할 수 있게 해준다. 


프로그램을 다운받아서 압축을 풀면 실행 파일이 보이며, 설치할 필요 없이 바로 실행이 가능한 Portable 버전이다.



위 화면에서 Create  new session 버튼을 클릭하여 신규 세션을 생성한다.



테스트 서버는 네이버 클라우드에 크레딧으로 사용중인 SSD 리눅스 서버를 입력했다. 이후 Create 버튼으로 세션을 생성하면


최초 접속은 자동으로 진행되고 이후에는 Overview 탭에서 생성된 세션을 클릭하여 바로 접속이 가능하다.



Putty에서 접속하면 나타나던 경고창을 확인할 수 있다. 예 버튼을 클릭한다.



정상적으로 접속이 되는것을 확인할 수 있다.



생성된 세션을 확인할 수 있으며 이후 접속에는 해당 세션을 더블 클릭하여 쉽게 접속이 가능하다.


또한 SFTP, FTP, SCP 도 지원하기 때문에 세션생성에서 해당 프로토콜 방식을 선택하는 경우 관련 프로그램이 없을때


자동으로 WinSCP 설치를 지원하고 역시 해당 프로그램내에서 바로 사용이 가능하도록 연동이 된다.


하나의 프로그램에서 다양한 프로토콜을 세션으로 관리하여 사용자가 쉽게 사용할 수 있도록 지원해주는 Solar-Putty는 


Putty 대신 사용하기 좋은 (기반은 Putty라 대신이라고 하기는 뭐하지만.) 프로그램이다.



첨부 1. 

내용을 영문사이트에서 발취 하여 조합하였다고 하나 글 내용이 빨간부분은 맨 끝 해준다. -> 해줍니다. 


만 바뀌고 띄어쓰기까지 동일하고


아래 파란부분은 중간 세션생성 -> 세션 생성 / 연동이 된다. 연동도 가능 합니다. 


로 바뀐 부분 제외 띄어쓰기까지 동일.


외국 사이트 발취를 어디서 한건진 모르겠지만 외국 사이트면 영어로 된 걸 옮겨적은게 


띄어쓰기까지 거~어의 동일하게 옮겼졌다는 말이라는건데.... 흠




반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[RemoteFX] Windows 10 에서 RemoteFX를 사용한 RDP

윈도우 7 sp1 인가 부터 적용되었다고 하는 RemoteFX 를 적용하여 원격 데스크톱을 활용해보기 위해 테스트


먼저 제일 중요한 것은 해당 하는 서버의 그래픽 카드가 DX 11 이상을 필수적으로 지원해야 하며


RDP 7.1 이상 버전으로 서로 동작해야 한다.


그리고 http://202psj.tistory.com/1037 주소를 참고하여 RemoteFX 관련 설정들을 사용으로 바꾸어 주었음.


근데 설명이 약간 모호해서 (서버에 설정해야 하는지 클라이언트에 해야 하는지..)


그냥 서버, 클라이언트 양쪽을 모두 다 그냥 다 RemoteFX 설정 해주었음..


컴퓨터 구성 - 관리 템플릿 - 윈도우 구성 요소 - 터미널 서비스


항목에 원격 데스크톱 세션 호스트와 원격 데스크톱 연결 클라이언트 두개 항목이 있음


세션 호스트에서는 원격 세션 환경 폴더 내에 RemoteFX for Windows Server .. 폴더와 RemoteFX 관련 설정이 있는데


다 사용으로 설정해주고


클라이언트 쪽에도 RemoteFX ... 폴더 내 설정을 사용함으로 바꾸어 주었음


그리고서는 잘 되는 것 같음


나중에 잘 정리해서 다시 작성해야봐 겠음.

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[docker] ova to docker img 변환하기

이번에 회사에서 일을 하면서 ova 파일로 교육을 진행하게 되었다.


그런데 ova파일은 아무래도 실습, 교육환경을 준비하는게 매우 번거로워서


도커 컨테이너로 바꿀수 있는지 찾아보았다.


결과부터 적어보자면 변환도 가능하고 정상적으로 실행도 해보았으나 중간 처리 과정에 


시간이 꽤 걸려서 실제 사용을 하기엔 어려워 보였지만 기록을 남긴다.


대상 ova : 30G

import 용량 : 60G


1. ova 파일을 tar xvf 로 압축을 해제

2. 안에 포함된 .vmdk 파일을 qemu-img 를 통해 raw 파일로 변환

3. 변환한 raw 파일을 guest 를 이용하여 가상 filesystem 으로 마운트 후 처리과정

4. 변환된 파일을 docker import 를 통해 img 로 등록

5. 등록한 img 파일을 실행.


위 순서로 진행되었다.


30G 파일은 qemu-img 를 통해 50G 파일의 .img 파일로 변환

이 파일은 guest 를 통해 16G 파일로 변환 됨

16G 파일은 docker import 후 31.3GB 이미지로 등록 됨


docker import 시 docker의 기본 device mapper 용량은 10G로 되어 있어서

import 해주려면 dockerd 옵션에  dockerd --storage-opt dm.basesize=60G 로 실행 시켜줘야 한다. 물론 이전 처리 과정도 있음


참고 : https://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/


다만 위 과정은 기존 컨테이너, 이미지 등이 모두 지워지므로 주의해야 한다.


변환을 위해 참고한 주소


참고 : https://stackoverflow.com/questions/31321076/how-to-convert-a-vagrant-box-to-a-docker-image

참고 : http://noizbuster.github.io/2016/04/20/2016-04-20-ova-to-dockerimg/2016-04-20-ova-to-dockerimg/

참고 : https://blog.inslash.com/how-to-convert-vmdk-to-a-docker-image-be939745ed8a


결론 : 처음부터 도커로 작업을 하자.


반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[LineageOS] 커스텀 롬 사용해보기!

내게는 현재 메인 폰으로는 Nexus 6P를 사용하고 있다.


구글 레퍼런스다 보니 최신 OS가 바로바로 업데이트 되는것이 제일 맘에 들었고


통신사 앱이 설치되지 않는점도 마음에 들었다.


그래서 앞으로도 핸드폰은 쭉 구글 레퍼런스를 쓰지 않을까 싶다.


그리고 얼마전에 산 아이패드 pro 10.5를 메인 디바이스로 사용한다.


마지막으로 Nexus 6P를 쓰기전 중고로 잠시 사용하던 삼성 갤럭시 S5 LTE-A 모델.


현재는 액정 보호 유리가 나가고 더이상 업뎃도 안되고 느린거 같아


한번 커스텀롬을 올려보고자 정보를 찾아보고 기록을 남긴다.


참고는 많은 사이트가 있었으나 다음 사이트가 제일 도움이 되었다.


참고 : http://blog.naver.com/PostView.nhn?blogId=kykint&logNo=220778832122


준비.


미리 핸드폰 개발자 옵션 활성화 / USB 디버깅 모드 설정


Odin3 : Odin3_v3.12.3 Official Samsung 버전 https://odindownload.com/download/#.Wc2YGDeRUUE


TWRP : twrp-3.1.0-0-lentislte.img.tar https://dl.twrp.me/lentislte/twrp-3.1.0-0-lentislte.img.tar.html

(twrp 는 이유는 알수 없지만 이 상위 버전들 3.1.0-2 / 3.1.1-0 / 3.1.1-1 / 3.1.1-2 가 동작하지 않아 3.1.0-0 사용)


LineageOS : lineage-14.1-20170927-nightly-lentislte-signed.zip https://download.lineageos.org/lentislte


OpenGAPPS : ARM 7.1 pico version http://opengapps.org/


을 사용했다.


그 후 Odin 은 Auto reboot 옵션은 해제하고 사용하여 성공적으로 커스텀 롬을 올렸다.

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[vSphere] vmdk 파일 복구 방법

운영 환경 : vSphere 5.5

장애 이유 : esxi 호스트 리부트 후 disk description 파일인 vmdk 파일이 보이지 않음. 

               때문에 해당 vm을 켤 수 없는 상황 (error 18)


복구 방법 : https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1002511


해당 datastore 에 접속하여 cli로 작업


# ls -l target-flat.vmdk


vmdk size nnnnnnn


# cat target.vmx


scsi0.virtualDev = "type"


# vmkfstools -c nnnnnnn -a type -d thin temp.vmdk


# rm -i temp-flat.vmdk


# mv temp.vmdk target.vmdk


# vi target.vmdk


RW ~ VMFS "temp-flat.vmdk" 해당 라인 수정

RW ~ VMFS "target-flat.vmdk"


이후 부팅 테스트

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[협업개발] Yona

개발을 할때 팀이나 조직에서 사용하기 좋은 오픈소스


https://repo.yona.io/organizations/yona-projects


과거 Yobi가 업그레이드 되었다고 한다.


팀에서 사용하기위해 셋팅해보았다.


추후 사용기를 적어보도록 하겠다.


반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[오픈소스] GOQ 구축 (goq: a queuing and job management system fir for the cloud. Written in GO (golang)).

설치 및 구축 프로세스

마스터 노드, 워커 노드 셋팅

VM에 마스터 노드, 워커 노드 2대 생성 후 CentOS 7.2 설치

설치 후 각 서버는 selinux 설정을 permissive 로 변경

워커 노드는 firewalld.service 를 stop 및 disable 시킴

마스터 노드에 eth0, eth1 connection 설정

각 서버 네임서버 셋팅 (210.218.222.100)

dhcpd 설치 및 셋팅 (yum 으로 설치 후 아래처럼 dhcpd.conf 수정)

option space PXE;
option PXE.mtftp-ip    code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option arch code 93 = unsigned integer 16; # RFC4578

subnet 10.10.10.0 netmask 255.255.255.0 {
    option routers 10.10.10.10;
    range dynamic-bootp 10.10.10.200 10.10.10.250;
    allow booting;
    allow bootp;
    next-server 10.10.10.10;
    filename "pxelinux.0";
}
:wq!
# systemctl enable dhcpd
# systemctl start dhcpd

방화벽 설정

1. 마스커레이드 설정

2. 마스터서버와 워커노드가 통신을 하기위해 해당 대역에 대한 룰 설정

# firewall-cmd --permanent --add-masquerade
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.10.10.0/24" accept'
# firewall-cmd --reload
  • 워커 노드에 접속해서 네트워크 설정 상태 확인 (마스터 및 다른 노드와 통신이 되는지 확인, nslookup으로 외부 인터넷과 연결이 되는지 확인)
  • 각 서버 OS 최신 패치 yum update

GO 설치

  • Go는 https://golang.org/dl/ 에서 작성일 기준 1.6.2 버전 다운 (동작 확인)
  • /share/apps/ 폴더에 다운 및 압축 해제 (미리 빌드된 버전 사용)
  • 사용자 환경설정에 GOROOT, GOPATH 설정 (root 기준)
vim ~/.bashrc
export GOROOT=/share/apps/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/share/workspace
export PATH=$PATH:$GOPATH/bin
export GOQ_HOME=/root
추가 후
:wq!
# go version
go version go1.6.2 linux/amd64
  • GOPATH는 워크스페이스 개념
  • GOQ_HOME은 goq init 시 환경 파일이 저장될 위치

goq 설치

github src : https://github.com/glycerine/goq

# go get -t -u github.com/glycerine/mangos/compat
# go get -u -t github.com/glycerine/goq
# cd $GOPATH/src/github.com/glycerine/goq; make; go test -v
  • 3번째 단계에서 goq/vendor/github.com 안에 보면 go-mangos 폴더이름을 gdamore 로 변경
  • 이유는 goq 내 소스에서 해당 mangos 패키지를 참조하는데 github.com/gdamore/mangos 로 되어 있음. (아마도 기존 경로로 보임, 현재 mangos 는 github.com/go-mangos/mangos 로 변경되어 있음)
  • 소스 내 참조를 모두 변경하기 어려우니 해당 폴더명만 변경 후 make 하면 에러가 나지 않고 build 가 완료 됨.
  • 이후 각 서버 별로 테스트 확인

마스터, 워커 설정

  • 먼저 마스터에서 설정
# goq init
  • 이후 GOQ_HOME 에 .goq 폴더 생성 됨. 이 안에 key와 환경파일이 생성.
# cd $GOQ_HOME
# vim serverloc
  • 서버 IP 셋팅 (디폴트는 eth0 ip 를 사용하므로 마스터, 워커가 사용하는 대역으로 변경)
export GOQ_JSERV_IP=10.10.10.10
:wq!
  • 다른 옵션은 디폴트 사용
  • 위 작업 완료 후 마스터의 .goc 폴더를 각 워커 GOQ_HOME에 복사
마스터
$ cd $GOQ_HOME
$ goq init     # only needed once.
$ nohup goq serve &   # start the central server

워커
$ ssh computenode
$ for i in $(seq 1 $(cat /proc/cpuinfo |grep processor|wc -l)); do 
  /usr/bin/nohup goq work forever & done

잡 서밋
$ cd somewhere/where/the/job/wants/to/start
# start by doing 'goq sub' on the same machine 
# that 'goq serve' was launched on. Just to learn the system.
$ goq sub ./myjobscript  

테스트
마스터에서 확인 
root      4060  2959  0 14:33 pts/0    00:00:00 goq serve

워커 1
root     12153 11924  0 14:36 pts/0    00:00:00 goq work forever
root     12154 11924  0 14:36 pts/0    00:00:00 goq work forever

워커 2
root     12215 12004  0 14:36 pts/0    00:00:00 goq work forever
root     12216 12004  0 14:36 pts/0    00:00:00 goq work forever

테스트 잡 서밋
[root@goq .goq]# goq sub /share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh
[pid 5655] submitted job 5 to server at 'tcp://10.10.10.10:1776'.
[root@goq .goq]# goq stat
[pid 5661] stats for job server 'tcp://10.10.10.10:1776':
runQlen=1
waitingJobs=0
waitingWorkers=3
jservPid=4060
finishedJobsCount=3
droppedBadSigCount=0
cancelledJobCount=0
nextJobId=6
jservIP=10.10.10.10
jservPort=1776
badNonceCount=0
maxShow=10
runq 000000   runtime: < 1 heartbeat RunningJob[jid 5] = '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh '   on worker 'tcp://10.10.10.201:39504'/pid:0. Lastping: none.   
finished: [jid 1] total-time: 20.006763604s. done: 2016-06-21 14:14:45.162962843 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh []' finished on worker 'tcp://192.168.150.73:46641'/pid:3531.  . Err: ''
finished: [jid 3] total-time: 145.624801ms. done: 2016-06-21 14:37:12.110080928 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/good.sh []' finished on worker 'tcp://10.10.10.200:45736'/pid:12168.  . Err: ''
finished: [jid 4] total-time: 20.019386787s. done: 2016-06-21 14:38:33.327349501 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh []' finished on worker 'tcp://10.10.10.200:43298'/pid:12172.  . Err: ''
--- goq security status---
summary-bad-signature-msgs: 0
summary-bad-nonce-msg: 0
--- goq progress status ---
summary-jobs-running: 1
summary-jobs-waiting: 0
summary-known-jobs: 1
summary-workers-waiting: 3
summary-cancelled-jobs: 0
summary-jobs-finished: 3
--- goq end status at time: 2016-06-21 15:44:40.540185547 +0900 KST ---
[root@goq .goq]# goq stat
[pid 5667] stats for job server 'tcp://10.10.10.10:1776':
runQlen=0
waitingJobs=0
waitingWorkers=4
jservPid=4060
finishedJobsCount=4
droppedBadSigCount=0
cancelledJobCount=0
nextJobId=6
jservIP=10.10.10.10
jservPort=1776
badNonceCount=0
maxShow=10
finished: [jid 1] total-time: 20.006763604s. done: 2016-06-21 14:14:45.162962843 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh []' finished on worker 'tcp://192.168.150.73:46641'/pid:3531.  . Err: ''
finished: [jid 3] total-time: 145.624801ms. done: 2016-06-21 14:37:12.110080928 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/good.sh []' finished on worker 'tcp://10.10.10.200:45736'/pid:12168.  . Err: ''
finished: [jid 4] total-time: 20.019386787s. done: 2016-06-21 14:38:33.327349501 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh []' finished on worker 'tcp://10.10.10.200:43298'/pid:12172.  . Err: ''
finished: [jid 5] total-time: 20.031627872s. done: 2016-06-21 15:44:58.280047843 +0900 KST. cmd: '/share/workspace/src/github.com/glycerine/goq/bin/sleep20.sh []' finished on worker 'tcp://10.10.10.201:39504'/pid:12970.  . Err: ''
--- goq security status---
summary-bad-signature-msgs: 0
summary-bad-nonce-msg: 0
--- goq progress status ---
summary-jobs-running: 0
summary-jobs-waiting: 0
summary-known-jobs: 0
summary-workers-waiting: 4
summary-cancelled-jobs: 0
summary-jobs-finished: 4
--- goq end status at time: 2016-06-21 15:45:00.384001311 +0900 KST ---
  • 해당 잡 스크립트
#!/bin/bash
echo "sleep.sh begins sleeping for 20 seconds"
sleep 20
echo "sleep.sh done"

워커 2번에서 실행이 된걸 확인할 수 있음.

결과
/root/.goq/o
out.00005 # jid

sleep.sh begins sleeping for 20 seconds
sleep.sh done
  • nfs 공유폴더 설정 및 hpl 벤치를 위한 설정
** 마스터 서버
# vim /etc/exports
/BiO 10.10.10.0/24(rw,sync,no_root_squash)

# systemctl start rpcbind
# systemctl start nfs-server
# systemctl start nfs-idmap
# systemctl start nfs-lock
# systemctl enable nfs-server

** 노드
# showmount -e 10.10.10.10
# mount -t nfs 10.10.10.10:/BiO /BiO

# vim /etc/fstab
10.10.10.10:/BiO /BiO defaults 0 0

** hpl 벤치 준비 (failed...)
** ATLAS 설치 및 install
** hpl 은 추후 다시 설치 시도...
  • 테스트
  • /BiO/test
  • 1 ~ 9 데이터셋
  • run.sh - 1번부터 9번을 읽어서 그 내용을 result 에 저장, 단 5초 대기 시간 있음
#!/bin/bash
echo "sleep 5"
sleep 5
cat $1 >> result
cat $1
  • job.sh - 단순한 반복문으로 실행. 각 파일마다 5초 딜레이 걸리므로 45초 후 작업이 완료
#!/bin/bash
for i in $(seq 1 9); do 
  ./run.sh $i
done
  • job2.sh - 해당 잡을 goq 로 서밋시킴. 이때 4개의 워커가 서밋된 잡을 실행. 즉 한번에 4개씩 처리. 15초에 작업 완료
#!/bin/bash
for i in $(seq 1 9); do 
  goq sub ./run.sh $i
done

[root@goq test]# goq stat
[pid 8221] stats for job server 'tcp://10.10.10.10:1776':
runQlen=0
waitingJobs=0
waitingWorkers=4
jservPid=6641
finishedJobsCount=22
droppedBadSigCount=0
cancelledJobCount=0
nextJobId=24
jservIP=10.10.10.10
jservPort=1776
badNonceCount=0
maxShow=10
finished: [jid 14] total-time: 5.006814286s. done: 2016-06-22 16:46:53.858905226 +0900 KST. cmd: './run.sh [9]' finished on worker 'tcp://10.10.10.200:38134'/pid:9547.  . Err: ''
finished: [jid 15] total-time: 5.009640992s. done: 2016-06-22 16:52:28.8312227 +0900 KST. cmd: './run.sh [1]' finished on worker 'tcp://10.10.10.200:52480'/pid:9678.  . Err: ''
finished: [jid 16] total-time: 5.009856439s. done: 2016-06-22 16:52:28.822657713 +0900 KST. cmd: './run.sh [2]' finished on worker 'tcp://10.10.10.201:54694'/pid:9931.  . Err: ''
finished: [jid 17] total-time: 5.014137871s. done: 2016-06-22 16:52:28.827363219 +0900 KST. cmd: './run.sh [3]' finished on worker 'tcp://10.10.10.201:54228'/pid:9933.  . Err: ''
finished: [jid 18] total-time: 5.005063449s. done: 2016-06-22 16:52:28.866128228 +0900 KST. cmd: './run.sh [4]' finished on worker 'tcp://10.10.10.200:38134'/pid:9681.  . Err: ''
finished: [jid 19] total-time: 5.007172282s. done: 2016-06-22 16:52:33.867240633 +0900 KST. cmd: './run.sh [5]' finished on worker 'tcp://10.10.10.200:52480'/pid:9686.  . Err: ''
finished: [jid 20] total-time: 5.014624321s. done: 2016-06-22 16:52:33.858707659 +0900 KST. cmd: './run.sh [6]' finished on worker 'tcp://10.10.10.201:54694'/pid:9941.  . Err: ''
finished: [jid 21] total-time: 5.015421181s. done: 2016-06-22 16:52:33.863655635 +0900 KST. cmd: './run.sh [7]' finished on worker 'tcp://10.10.10.201:54228'/pid:9942.  . Err: ''
finished: [jid 22] total-time: 5.011072741s. done: 2016-06-22 16:52:33.896002578 +0900 KST. cmd: './run.sh [8]' finished on worker 'tcp://10.10.10.200:38134'/pid:9691.  . Err: ''
finished: [jid 23] total-time: 5.002196052s. done: 2016-06-22 16:52:38.898022316 +0900 KST. cmd: './run.sh [9]' finished on worker 'tcp://10.10.10.200:52480'/pid:9696.  . Err: ''
--- goq security status---
summary-bad-signature-msgs: 0
summary-bad-nonce-msg: 0
--- goq progress status ---
summary-jobs-running: 0
summary-jobs-waiting: 0
summary-known-jobs: 0
summary-workers-waiting: 4
summary-cancelled-jobs: 0
summary-jobs-finished: 22
--- goq end status at time: 2016-06-22 17:43:52.258494225 +0900 KST ---
[root@goq test]#

이후 진행 방안

  • bwa 테스트 완료
  • 18개 fasta 파일 bwa 테스트 진행
run.sh (/BiO/bwa_data/)
#!/bin/bash
for i in *.fasta
do
    #echo $i
    goq sub /BiO/apps/bwa-0.7.15/bwa index $i
done

[root@goq bwa_data]# goq stat
[pid 5300] stats for job server 'tcp://10.10.10.10:1776':
runQlen=0
waitingJobs=0
waitingWorkers=4
jservPid=6641
finishedJobsCount=77
droppedBadSigCount=0
cancelledJobCount=0
nextJobId=79
jservIP=10.10.10.10
jservPort=1776
badNonceCount=0
maxShow=10
finished: [jid 70] total-time: 25.652276979s. done: 2016-06-24 11:26:47.437507654 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-3R-chromosome-r5.37.fasta]' finished on worker 'tcp://10.10.10.201:54228'/pid:25409.  . Err: ''
finished: [jid 72] total-time: 2m57.995945527s. done: 2016-06-24 11:29:38.320234035 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-all-chromosome-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:52480'/pid:25095.  . Err: ''
finished: [jid 67] total-time: 5m20.065814901s. done: 2016-06-24 11:31:20.588482645 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-2R-aligned-r5.37.fasta]' finished on worker 'tcp://10.10.10.201:54694'/pid:25399.  . Err: ''
finished: [jid 74] total-time: 2m32.706963928s. done: 2016-06-24 11:32:11.06134462 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-all-gene_extended2000-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:52480'/pid:25125.  . Err: ''
finished: [jid 76] total-time: 5.257377818s. done: 2016-06-24 11:32:16.329604209 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-U-chromosome-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:52480'/pid:25209.  . Err: ''
finished: [jid 69] total-time: 6m56.254709913s. done: 2016-06-24 11:33:07.201563569 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-3R-aligned-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:38134'/pid:25088.  . Err: ''
finished: [jid 78] total-time: 14.240585455s. done: 2016-06-24 11:33:21.461607565 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-X-chromosome-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:38134'/pid:25214.  . Err: ''
finished: [jid 77] total-time: 4m4.989334558s. done: 2016-06-24 11:36:21.328854204 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-X-aligned-r5.37.fasta]' finished on worker 'tcp://10.10.10.200:52480'/pid:25211.  . Err: ''
finished: [jid 75] total-time: 6m35.538950491s. done: 2016-06-24 11:37:56.176649363 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-all-predicted-r5.37.fasta]' finished on worker 'tcp://10.10.10.201:54694'/pid:25542.  . Err: ''
finished: [jid 73] total-time: 11m17.50777801s. done: 2016-06-24 11:38:04.953963217 +0900 KST. cmd: '/BiO/apps/bwa-0.7.15/bwa [index dmel-all-clones-r5.37.fasta]' finished on worker 'tcp://10.10.10.201:54228'/pid:25415.  . Err: ''
--- goq security status---
summary-bad-signature-msgs: 0
summary-bad-nonce-msg: 0
--- goq progress status ---
summary-jobs-running: 0
summary-jobs-waiting: 0
summary-known-jobs: 0
summary-workers-waiting: 4
summary-cancelled-jobs: 0
summary-jobs-finished: 77
--- goq end status at time: 2016-06-24 13:19:11.903386522 +0900 KST ---
[root@goq bwa_data]#
반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post