2017년 8월 22일 화요일

바람이 분다

술퍼먹고 집에가는길에 패북에 올렸던 글인듯...

구글 메모에 있길래 옮겨 놓아봄..

=====

바람이 분다

이런날이면

발은 그 길위에 있고

눈은 저 멀리 전선줄 없는 하늘과 지평선 너머 산을 바라본다

어렸을때 꿈이라는 단어가 뭔지도 몰랐다가

언제부턴가 꿈이 참 좋았고

지금은 그 꿈이 싫다

단어를 사전적 의미로 소비하던 30대 초반

꿈만 있으면 언젠가는 되겠지... 라는 막연함이

시간이 지나서

아무것도 하지 않으면 아무것도 없다는...

까미노에서 자주봤던

No pain no glory

No pain, no gain

로또를 맞으려면 로또를 사고 빌라는 명언

그런 시간이 지나고

꿈이란 단어는

적당한 이유로 "절대 하지 않겠다"는 의미로 해석 되어졌고

시간이 지나 이제

단어를 감성으로 소화하기위해 노력한다

.꿈.을 대체한 단어는 .소망.

꿈이나 소망이나

내가 무엇인가 하겠다는것 보다

기복의 의미가 큰 건 다를바 없겠지만

꿈보다 어쩐지 좀더 개인적인듯하고

꿈보다 어쩐지 좀더 소중한 느낌이랄까


바람이 부는날이면

경계의 끝자락에서서 기다리다

아니 오셨던듯이

사뿐이 날려갈 날을 기다린다.

2017년 8월 10일 목요일

지랄지랄

.지랄지랄.

박근혜탄핵되면
나라가 망한다고 지랄지랄
(요즘 기사와 비리들 보면서 태극기들던 인종중에 쪽팔려서 말 못하고 있는 세끼들
숨어 있는거 안다.
어깨 펴라 씨발
살다보면 병신짓도 가끔 하는거다
탄핵했으니 이제 구속시켜서 늙어죽는꼴을 본다면 나라가 좀 망해도 참을 수 있다)

김상조 공정위원장 뽑으면
나라가 망할꺼라고 지랄지랄
(개사이다... 존경합니다. 꼭 4대기업 특히 삼성 현대는 정상적인 회사가 되도록 해주세요
이 섹히들 때문에 중소기업을 못 다니겠어요)

사대강보(라쓰고 댐이라고읽는다) 열면
가뭄, 홍수로 망한다고 지랄지랄
(이건뭔....생각좀 하고 말좀 하자...MB야 언넝 나온나)

국정원 민간사찰 조사하겠다니
주사파가 나라말아먹는다고 지랄지랄
(한나라때도 선거때면 운동권이라고 하던놈들
특히 따먹문수같은 인종들 니들이 다 말아먹은 나라 살리느라 지금 이 고생이다)

삼성이 망하면
나라가 망한다고 지랄지랄
(회장 구속되면 주가가 오른다
삼성전자는 수원단지 공장들 이미 베트남등으로 옮긴지 한참이고 
SDS는 자체 사업이라고는 할 줄 모르니 중소기업 파이 뺏아 먹느라 정신이 없다)

최저임금 올리면
기업이 다 떠나 나라가 망한다고 지랄지랄
(이전 준비 몇 년동안 하다가 임금올라서 회사가 떠난다고 개구라 치는 놈들 좀 잡아 넣어라)

건보지원 확대 한다니
건보돈 다써서 망한다고 지랄지랄
(언제부터 사보험-실비보험-들었는지 기억은 하냐 이명박때부터다
전에 실비보험이 뭔지나 알았냐 
정신좀 차려랴 보장범위확대 하고 
대기업 실비보험에 꼴아박는 돈의 반만 내면 건강보험 걱정 없다)

이 개종자세끼들은
주둥아리 지랄 말고는 할 줄 아는게 없는게 확실하다

.

2017년 6월 22일 목요일

ATOM기반으로 Ansible개발환경 설정하기

앞서 Eclpise기반으로 yml을 편집하고 런쳐로 실행하는 포스팅을 올렸다.

https://yckwon2nd.blogspot.kr/2017/03/ansible.html

근데 오타 대마왕인 나로써는 코드 코디네이터(자동완성기능같은...)가 꼭 필요한데

Eclipse에서 찾을 수 가 없더라고....

그래서 혹시나 ATOM을 뒤져 봤더니 대박!

그것뿐 이니라 Syntax checker까지 다 나와있다... 이미 몇년전 부터  -.-;;

그래서 ATOM을 기반으로 Ansible playbook 개발과 실행을 위한 환경을 구성해 보았다.

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



ATOM IDE로  ansible 편집

Eclipse에서 Ansible code assistant를 찾아보다가....못 찾았음....없을리가 없을 것 같은데...

혹시나 해서 ATOM에서 보니 이거저거 잔뜩 있길래 ATOM으로 갈아타 봤다.

겁내 가볍고 좋내!!  (Eclips도 필요없는거 정리하면 가벼워지겠으나...기본설치시 넘 무거워졌음)

개발자들은 몇 년전 부터 아톰으로 넘어가던데 연장(?)바꾸기 귀찮아서 이클립스만 쓰다가 이번에 아톰 첨 써봄


ATOM버젼 1.18기준 yml 확장자는 자동을 2칸띄기 등을 인식하고 하일라이팅도 해준다.

하지만  지시자나 모듈에 대한 가이드와 구문체크는 제공되지 않는다.
(아래 패키지를 추가 설치하면 지원됨)

메뉴에서
Edit --> Preference 를 선택하면 install 메뉴가 있다.
검색창에 ansible 입력하고 조회하면 이것 저것 나온다.
install 버튼을 누르면 설치됨
혹시 설치후 오류나거나 하믄 정지시키거나 삭제도 여기서함


1. 먼저 기본 에디터설정 
기본 에디터에 yml편집을 쉽게 하기 위해 아래 옵션을 켜주도록 한다.

setting --> Editor --> Show Indent Guide & Show Invisibles 를 선택해준다

들여쓰기 라인을 눈으로 바로 확인할 수 있고

공백과 엔터를 편집기에서 표시해준다.


2. 코드 코디네이터 설치 
autocomplete-ansible package
https://atom.io/packages/autocomplete-ansible

지시자와 모듈리스트, 모듈의 속성에 대한 자동완성 및 샘플을 자동으로 입력하도록 지원한다.
오타로 인한 고생을  줄이려면 꼭 필요한 패키지 되시겠다.

directive 와 module의 자동완성 과
module의 경우 필수항목 및 모든 항목의 셈플을 지원한다.

자동완성은  타이핑시 자동으로 드롭다운되므로 방향키 등으로 선택하면되고
모듈의 속성 셈플을 자동입력 하기 위해서는
module이름을 자동완성으로 입력하거나 손가락이 빠르다면 코드어시스트가 출력되기 전에 모두 타이핑을 한 다음에
바로 이어서 r 또는 a 키를 눌러서 지원 받을 수 있다.
r은 필수 속성항목 샘플 코드가 아래쪽에 추가 되고
a는 모든 속성항목  샘플 코드가 입력된다.

3. 구문오류 체크 설치
Linter-UI-Default 설치 필수
Atom에서 패키지 설치를 하면
의존성이 있어 필요한 intentions, linter, busy-signal을 물어보면
yes 눌러서 같이 설치하도록 한다.
구문분석을 위한 기본 패키지로 아래 패키지를 위하여 먼저 설치해 주어야 한다.

구문을 분석해서 잘못된 부분에 대한 검토를 대신 수행해 준다.
Linter-Ansible-Syntax
https://atom.io/packages/linter-ansible-syntax
기본환경에서는 ansible-playbook --syntax-check 을 별도로 수행해야 하나
이 패키지가 설치되면 구문에 대한 체크를 수행하고 오류위치  및 내용을 IDE에 상에서 확인할 수  있다.
디버깅을 위해  필요하다.


ansilbe-lint 기반으로 구문체크를 해준다.
너무 빡빡하게 검사를 하는지 온통 Warning이 발생하지만 애교로 넘어간다 ㅋㅋ
linter-ansible-linting  
https://atom.io/packages/linter-ansible-linting

이 패키지는 ansible-lint가 설치 되어 있어야 하므로 ATOM과 별도로 설치를 해야 한다.

안깔고 패키지만 올리면 파일 저장할때 마다 에러를 보게 될 것이다. ^^;;

파이선 패키지로 설치 해야하므로 아래와 같이 패키지관리 및 이런저런것을 설치하도록 한다.

나는 PC가 민트리눅스라 우분투명령어로 설치했음. 센트나 레뎃이면 아래 링크를 참고해서 설치

pip 설치 http://sens.tistory.com/443  참고

#sudo apt-get install python-pip python-dev build-essential
#sudo pip install --upgrade pip
#sudo pip install --upgrade virtualenv

ansible-lint 설치  https://github.com/willthames/ansible-lint  참고
#pip2 install ansible-lint


4. playbook  런쳐 설치
script
Atom에서 ansible을 실행시키기위한 패키지(ansible뿐아니라 이것저것 다 돌린다)
https://github.com/rgbkrk/atom-script

script 패키지를 이용해서 playbook을 돌리기 위해서는
shift+Ctrl+b 로 직접 수행할 수 있다.
다만 처음에 실행해보면 host파일을 현 yml위치가 아니라 /etc/ansible/host 에서 찾는등 환경 변수가 정상적이지 않다
이때는 프로파일 적용이 필요하다.
shift+Ctrl+alt+O 를 누르면 프로파일 지정이 가능하다.

Current Working Directory :  실행될 위치 비워두면 된다.
command : ansible-playbook 실행파일의 위치  path에 걸려있으면 안넣어도 되고 linux라면 "/usr/bin/ansible-playbook" 로 넣어주면 된다.
command Arguemnts :  Ansible 수행시 필요한 옵션을 넣는다 대표적으로 hosts 파일 지정을 위해 "-i hosts" 를 추가하면 현재 폴더의 hosts파일을 참고한다.
Program Arguments: APP에 적용할 환경 변수를 넣는다. Ansible에서는 사용할일 없으므로 비워둔다
Environment Variables: OS 환경변수에 넣을 설정을 넣는다. Ansible에서는 넣을 일이 없다.
     예외적으로 필자의 경우 실행시 lang 환경변수가 없어서 ATOM편집기의  패키지에서 에러가 발생하는 문제가 있어서 "export lang=ko_KR.UTF-8" 을 넣어 주었다.
(env에 LANG 은 있는데 lang이 없다... -.-;;)

이후 프로파일을 적용해서 실행하기 위해서는

shift + Ctrl + alt + b 를 누르면 저장한 프로파일을 선택하여 실행할 수 있다.

개인적인 생각으로 프로젝트마다 -u(사용자지정) 등을 지정할 수 도 있겠으나 이건 hosts나 yml에서 지정할 수 있으므로 프로파일은 단순하게 -i 만 지정하고 공통으로 쓰는것이 편하지 않을까 생각된다.


기타로....

yml파일이 아이콘이  밋밋하다면 
Atom file-specific icons for improved visual grepping.
https://github.com/file-icons/atom


Ansible 코드를 암호화 하고 싶다면 
https://atom.io/packages/ansible-vault

Ansible galaxy init로 폴더구조를 생성하고자 한다면
ansible-galaxy
https://atom.io/packages/ansible-galaxy



.이상

2017년 4월 30일 일요일

지름신이 강림하사 (IKEA Workstation, LG 34인치 울트라와이드 34UM59)

질렀다

모니터...21인치가 인생 가장 큰 모니터였던 내가

까이꺼 함 질러보지뭐!  하고 확 질러주셨음

잘팔려서 그런지 내가 원하는 기종(34UM59)은 시장에서 품절

4월 중순 예약 주문하고 4월 28일 배송 시작 29일 배송이 되었다

우아...박스 사이즈봐라....깡패내  ㅋㅋ

모니터를 질러놓고 보니 다이닝테이블인 내 책상이..... 꺼떡꺼떡 거리는 불안한 나무 다리를 보다가  아침에 눈뜨자 마자 이케아로 달려갔다(집이 안양...광명 이케아 차몰고 15분)

모니터와
IKEA Fredde Workstation 책상
집에와서 풀어 놓고 보니

어쩔.....

이거 혼자 어케 만들지....

그래도 한다.


아놔...

2시간 정도 걸려서 조립후 내 방에 밀어넣었다

양쪽으로 날개가 달렸는데 폭이 180이라 한쪽으로 몰아서 붙였다는

사이즈가 이 방에 딱이다!!

무게가 예술임....

일단 모니터와 놋북부터 올려봄
34UM59는 사이즈로 이야기 하면 27인치 모니터를 두개 이어 놓은 사이즈로

높이는 그리 높지 않다

만약 32인치 모니터라면 사진 처럼 안들어가고 아래쪽 페널을 제거하고 올려놓아야 할 듯


AMD 설정
59를 산 이유가 AMD FreeSync 기능때문이였는데...
뭐가 문제인지 지원안함으로 나온다.... 해결해야지....
 여하간 대략 올려두고 PC도 아래쪽에 밀어 넣어놓고 보니 간지는 작렬한다

(자...이제 대체 뭘 할꺼냐????)


참고로 이케아 워크스테이션 아래쪽에는 좌 우로 물건을 올릴 수 있는 자리가 있다.

PC를 올리라고 해놓은 것으로 보이고

5.1 체널 우퍼를 왼쪽에 올리고

우측에 PC를 넣는데....... ㅠ.ㅠ

공간이 높이 50Cm

PC케이스가 50Cm 상단 배기팬이 있고 전원이 위쪽에 있음...

넣을 수 는 있는데  전원을 켤 수 가 없음...

포기하고 그냥 바닥에 놓고 선방에는 허브와 뭐...잡다구리한거 대충 던져놓고 셋팅 끝

지금 이 포스팅을 하는데도 모니터의 어마무시한 사이즈가 적응이 잘 안됨 ^^;;

우측을 보려면 고개가 돌아감

제공하는 어플을 깔면 PIP나 화면 분할(기본 밝기, 명도등은 당연히 조정됨)이 지원되는데

동영상 편집작업과 뭐 몇가지 하다보니 처음 써봐서 그런지 살짝 당혹(?)스럽지만

넓은 화면에 대충 던져 놓는것 보다 알아서 들러붙는 기능이 상당히 편한듯 함


고장만 나지말고 백년 만년 쓰자꾸나 ^^;;

아래는 조립과정 동영상



2017년 3월 29일 수요일

Ansible 개발환경 구성하기

언제까지 vi로 시커먼데서 스페이스로 줄 맞춰가며 yml파일을 만들껀가!!!!

이번에는 좀 간지나게 playbook을 만들기위해 eclipse를 사용해 보도록 하자

개발자면 깔린 eclipse가 있을것이니 플러그인 몇 개 깔면 될것이고

취향에 따라 여러가지가 있으니 알아서 하시면 됨...

여기서는 잘 모르고 일단 시작할때 어떻게 하는것인가 정도로 참고하시면 되겠음.

가벼운거 좋아하심 edit+ 쓰시덩가  딴지걸지 말자   (개발환경운 개취임)


1. eclipse 설치
https://www.eclipse.org/downloads
아무거나 받아서 깔자 나는 최신판으로 받았더니 neon 이라는 버젼이 떨어졌다.

몇 년만에 이클립스인지 몰것다...



2. eclipse plugin설치
이클립스는 기본 설치만 하면 그냥 편집기 수준이다.

내가 java 개발자면 거기에 맞춰서 다른 언어 개발자라면 또 거기에 맞춰서....

힙분석이나 UML 에디터로 사용할 수 도 있다.

플러그인을 뭘 쓰고 얼마나 익숙한지가 관건이므로

회사마다 개발조직마다의 암묵적인 룰이 있을 것으로 안다.

아래 플러그인은 꼭 써야 하는게 아니라

개발환경의 편의성증대(생산성)를 위한 것이므로 그저 참고만 하도록 하자
(잘 몰것으면 그냥 찾아서 깔아주자)

플러그인은 아래 링크를 클릭해 들어가서 검색후 설치하면 된다.

https://marketplace.eclipse.org

Eclipse Runner - for grouping of Run configurations  ansible-playbook으로 yml을 런칭하기위해 사용한다.

Grep Console - for log output highlighting  출력결과 보기 편하라고

Shell Script (DLTK) - shell 스크립트 editor도 하나 깔자  쉘스크립트 편집기

YEdit - for YAML syntax highlighting  yml 파일 편집기

PyDev - Python IDE (if you want to develop custom Python modules or dig into Ansible core)  파이선편집

세상좋아졌다.



마켓 플레이스에 접속해서 install 이라는 링크를 끌어서

이클립스 작업공간에 드랍하면 설치된다 0.0!!!

리파지토리 추가하고 뭐하고뭐하고 하니라 삽질하고 하얗게 밤새던 그때가...지랄....


3. 공개된 sample을 받아와서 참고하도록 하자
뭐 해본적이 없는 사람이 가장 빠르게 뭔갈 하는방법(?)은 일단 샘플보고 연습하는것 아니겠는가

조금씩 하다 보면 참고하고 배끼기 위해서라도 샘플 정도는 한세트 받아서 참고하도록 하자

좀 간지나게 git으로 함 빨아보기로 했다.

https://github.com/ansible/ansible-examples/  사이트에 제공하는 셈플이 있으므로

git으로 빨아서 내 작업공간에 저장하도록 한다.


yckwon@yckwonS440 ~/work/git $ git clone https://github.com/ansible/ansible-examples/ ~/work/git/ansible-examples/
Cloning into '/home/yckwon/work/git/ansible-examples'...
remote: Counting objects: 3190, done.
remote: Total 3190 (delta 0), reused 0 (delta 0), pack-reused 3189
Receiving objects: 100% (3190/3190), 16.25 MiB | 124.00 KiB/s, done.
Resolving deltas: 100% (1105/1105), done.
Checking connectivity... done.


!! 혹시 git이 안갈렸다면 아래와 같이 설치한다.
yckwon@yckwonS440 ~/work/git $ sudo apt install git


4. 이클립스에 샘플 등록 및 창 추가

별건 아니고 이클립스에 받은 셈플을 프로젝트로 등록해서 필요할때 열어 볼 수 있도록 하자

아래순서를 참고해서 이클립스의 메뉴를 열어서 프로젝트를 만들고

참고로 git로 연결되어 있으면 이리저리 번거러우므로 연결을 끊는 작업까지 하도록 하자

File -> New -> Project
General -> Project
Project name: ansible-examples  (그냥 맘대로 정하자)

Uncheck "Use default location" and select directory with ansible-examples sources (/.../ansible-examples)

왼쪽에 project가 추가되고 git과 연결되었다고 파란색 표시가 있을 것이다.
그 다음에

Right-Click on the project -> Team -> Disconnect   <== git원본과 연결을 끊어준다...난 다 망쳐버릴꺼니까 ㅋㅋ

앞서 설치한 플러그인 창도 보이도록 하자 (깔아놓고 안보면 뭐하러 까나)
Window -> Show View -> Other.. > General -> Runner
Window -> Show View -> Console

쪼끔 다르겠지만 아래같이 왼쪽에는 프로젝트 가운데는 코드
(yml을 클릭해서 열면 색으로 구분-하일라이팅-되면 yedit가 잘 먹은거다)

아래쪽 창에 runner 와 console이 보이면 대충 된거다




혹시나 아직 ansible이 설치되어 있지도 않다면 아래처럼 그냥 깔믄된다.

Ansible설치 (난 민트리눅스라)
#sudo apt install ansible


5.eclipse Runner plugin에 Ansible 실행환경 등록
ansible-playbook이 실행(?)시키는 yml 파일은 일반적인 실행 파일이나 java APP 아니므로

런쳐(ansible-playbook)과 연결하여 실행할 수 있도록 구성을 추가해야한다.

이 런쳐는 playbook을 만들때 마다 이하나씩 만들어줘야 이클립스에서 play 버튼을 눌러서 쉽게 테스트 할 수 있다.

물론 이렇게 안하고 eclips에서는 편집만 하고 쉘에서 직접 돌려도 아무상관없다....

편하게 살자고....편하게...

아래 메뉴로 접근 하여 런쳐를 추가한다.

Run -> External Tools -> External Tools Configurations -> Program(우클릭하면 new나온다) -> New launch configuration

런쳐에 내가 실행시킬 플레이북을 돌릴 수 있도록 설정을 추가한다.

location : /usr/bin/ansible-playbook    (ansible-palybook 명령어 위치 )
working Directory : ${workspace_loc:/Ansible-Examples/jboss-eap7-standalone} (ansible project 위치 )
변수처리된 path가 해깔리면 그냥 하드코딩 해도 된다. 내경우
/home/yckwon/work/git/ansible-examples/jboss-eap7-standalone  이다.
Arguments : ${workspace_loc:/Ansible-Examples/jboss-eap7-standalone/site.yml} -i hosts -u jboss -v

-i 옵션이 없으면 기본으로 /etc/ansible/hosts 파일을 참고한다
-u 대상 서버에 접근할때 사용할 계정정보를 fix했다. 없으면 hosts파일에 넣어도 되고 playbook에서 지정할 수 도 있다.
-v 수행결과가 상세하게 출력되도록

이렇게 하면 화면에서 play 버튼을 누르면 수행이 되고 결과는 앞서 설치한 console 플러그인 윈도우로 출력된다.


위에 주황색으로 표시한 부분은 playbook 연습시에 실제 eclipse project의 폴더명과 같아야 한다는 것을 강조하려고...
안맞으면 당근 site.yml을 못찾아서 실행이 안될것이다.
일단 개발환경 설정하는건 이정도 까지 하고


다음에는 ad hoc으로 날리던 간단한 명령들을 playbook으로 만들어 돌려보고

작업이 복잡해 지면 task의 재 사용성을 높이고

표준화된 환경을 사용하기 위해 role로 task들을 쪼개서 사용하는 연습을 해보자

.이상