본문 바로가기
이것저것(독후감같은거)

rundeck 사용해보기 (14년6월)

by 혜룐 2015. 11. 10.
Rundeck
이라는 오픈소스( http://rundeck.org/ )가 있다.
원격지 서버
에 command나 스크립트를 실행하는 용도로 현재 쓰고 있고. 나는 1.6버전을 사용 하고 있다. 
( 얘는 나에게 학습비용 없이 스크립트 재사용할수도 있고, 운영효율화에 도움을 주고 있다. )
http://www.slideshare.net/asyd/rundeck 이 사람은 배포 할때 쓰나보다. )
dataSource.url: jdbc:h2:file:/data/program/rundeck/server/data/grailsdb;MVCC=true 
데이터베이스는 h2를 기본으로 하고 있다. (1.5버전부터 H2가 기본 database이다.)
내가 생각하는 우선 런덱에 장점은
하나. 원격지 서버(=node)를 관리 하는 xml을 따로 갖고 있어, 어떤 서버들이 대상인지 알수있어서 좋다. (=관리)
둘. 설치가 매우 쉽다. 학습비용이 적은것 같다.
셋. command건 스크립트건 언어 특성을 타지 않아서 좋다.
넷. 스케쥴링도 되니, crontab을 밖으로 드러낼수 있어서 투명한관리가 될 것 같다. ( 아는 사람만 알게 되는 단점이 없어지겠지.. )
다섯. 계정에 대한 ssh 키를 원격지 서버에 등록해 보안에 문제가 되는 점을 낮출수 있어서 좋다. 
여섯. 어드민페이지로(web 관리페이지) 에서 확인 할수 있으니, 매우 편하다 (job을 생성하거나, 죽이는 행위가 매우 쉽다. )
최신버전을 받고, 관리페이지에서 job을 생성하고 run 하는 과정에 대해서만 적어본다.
1) java
->yum install java -y
2) rundeck-launcher-2.1.2.jar 최신버전 jar
->사내 ftp를 이용해서 http://rundeck.org/downloads.html 최신버전을 받아온다.
->jar 위치를 이동한다. : mv /tmp/bla.jar /test/program/rundeck/
3)
실행 : nohup java -jar /test/program/rundeck/rundeck-launcher-2.1.2.jar&
->rundeck 계정을 생성 하고, rundeck Home디렉터리에서 실행한다.
[rundeck@i2-mysql-tpl-master program]$ nohup java -jar /home/rundeck/program/rundeck-launcher-2.1.2.jar&
->잘 떴는지도 확인을 해본다.
[rundeck@i2-mysql-tpl-master program]$ ps afxu | grep java
rundeck 24051 18.0 8.3 1582892 351896 pts/1 Sl 15:50 0:25 | \_ java -jar /home/rundeck/program/rundeck-launcher-2.1.2.jar
rundeck 24192 0.0 0.0 61196 736 pts/1 S+ 15:52 0:00 | \_ grep java
[rundeck@iaas-dms2-mysql-tpl-master program]$ 
4) 웹브라우져에서 어드민페이지를 접속해보자.
->http://10.3.2.6:4440/
->admin / admin으로 접속하게 되면, server-url이 해당 서버에 hostname으로 바뀐다.
-->rundeck 하위 server/config디렉터리에 rundeck-config.properties 파일을 열어 grails.serverURL을 수정해 준다.
[root@test-lhr2-mysql-tpl-master config]# pwd
/test/program/rundeck/server/config
[root@test-lhr2-mysql-tpl-master config]# vim rundeck-config.properties 
#loglevel.default is the default log level for jobs: ERROR,WARN,INFO,VERBOSE,DEBUG
loglevel.default=INFO
rdeck.base=/data/program/rundeck
#rss.enabled if set to true enables RSS feeds that are public (non-authenticated)
rss.enabled=false
#grails.serverURL=http://test-lhr2-mysql-tpl-master:4440
grails.serverURL=http://10.3.2.6:4440
dataSource.dbCreate = update
dataSource.url = jdbc:h2:file:/data/program/rundeck/server/data/grailsdb;MVCC=true
->이제 아이피로 접속해서 호스트명:포트로 변경되는일은 없다 ㅎㅎ
5) 페이지에 접속 후>NEW Project
->sample 이라는 이름으로 프로젝트를 생성했고, 나머지 선택사항은 변경하지 않고 생성했다. 생성 한 후 projects 하위에는 내가 생성한 프로젝트(sample 이라는 이름으로 생성)와 관련된 설정파일을 확인 할 수 있다.
.
`-- sample -->내가 생성한 프로젝트명이다.
`-- etc
|-- project.properties
`-- resources.xml -->접속할 수 있는 노드(원격서버들)를 말한다.
2 directories, 2 files 
->resource.xml은 기본적으로 런덱 서버 노드가 추가된다.
[root@test-lhr-mysql-tpl-master etc]# vim resources.xml 
<?xml version="1.0" encoding="UTF-8"?><project><node name="test-lhr-mysql-tpl-master" description="Rundeck server node" tags="" hostname="test-lhr-mysql-tpl-master" osArch="amd64" osFamily="unix" osName="Linux" osVersion="2.6.18-348.el5xen" username="root"/></project>

6) 잡 JOB 을 생성해보자.
->내가 사용하고 있는 버전은 1.6인데, 최신버전에서는 생성한 잡을 스케쥴링으로도 등록할수 있었다. 이게 추가된 기능이다. ( http://rundeck.org/#LearnMore , http://rundeck.org/docs/manual/jobs.html )
->수행한 잡에 대한 workFlow도 정할 수 있고 완료된것, 실해한것 아직 시작하지 않은잡에 대한 히스토리통계도 보여줄수 있는 부분이 추가 되었다. 아마 스케쥴링이 추가 되면서 이부분도 볼 수 있게 한것 같다. (스프링배치처럼 job excution에 대한 데이터를 기록하고 있음)
6-1) Scheduled Jobs
->simple schedule 포맷은 quartz 스케쥴문법처럼 쓰면 되고, crontab포맷으로도 쓸수 있다.
->잡에 대한 노티피케이션도 추가되었는데, 실패했을때에 대한 처리, 성공했을때에 대한 노티액션도 선택할수 있게 되어있다.
->생성한 잡을 RUN 하고 결과를 확인 해볼수 있는데, 이는 생성한 job을 test할때 매우 유용하다. 커맨드가 아니라 쉘스크립트나 이외 스크립트를 실행해서 작업할때 로컬에서 test 해볼수 있다는게 런덱에 장점인것 같다.
설정은 http://10.3.2.6:4440/project/sample/configure 을 통해서 자세히 확인 할 수 있다.