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들을 쪼개서 사용하는 연습을 해보자

.이상



댓글 없음:

댓글 쓰기

본 블로그의 댓글은 검토후 등록됩니다.