Rundeck은 원격 컴퓨터에서 명령어나 스크립트를 실행할 수 있도록 지원하는 강력한 오픈소스 자동화 도구입니다. 하나의 단계 또는 여러 단계로 구성된 워크플로우를 정의하여 작업(Job)을 만들면, 로컬 및 원격 노드 전체에서 다양한 명령어, 스크립트, 도구를 일괄 실행할 수 있습니다. 작업은 스케줄러에 의해 자동으로 실행되거나, 웹 인터페이스 또는 API를 통해 필요할 때마다 수동으로 트리거할 수도 있습니다. 이 글에서는 Debian 8(Jessie) 서버에 Rundeck을 설치하는 방법을 단계별로 자세히 알아보겠습니다.
1단계: Java 설치
Rundeck은 Java 프로그래밍 언어로 작성되었기 때문에 시스템에 Java가 반드시 설치되어 있어야 합니다. Debian에서 Java를 설치하려면 아래 명령어를 차례로 실행하세요.
$ sudo dpkg --add-architecture i386 $ sudo apt-get install openjdk-8-jre
2단계: Rundeck 다운로드
다음 명령어를 사용해 Rundeck 패키지를 다운로드합니다.
$ wget https://dl.bintray.com/rundeck/rundeck-deb/rundeck-2.6.7-1-GA.deb
정상적으로 다운로드가 진행되면 아래와 같은 출력 결과를 확인할 수 있습니다.
--2016-05-24 10:13:36-- https://dl.bintray.com/rundeck/rundeck-deb/rundeck-2.6.7-1-GA.deb Resolving dl.bintray.com (dl.bintray.com)... 75.126.118.188, 108.168.243.150 Connecting to dl.bintray.com (dl.bintray.com)|75.126.118.188|:80... connected. HTTP request sent, awaiting response... 302 Location: https://akamai.bintray.com/... [following] HTTP request sent, awaiting response... 200 OK Length: 101028776 (96M) Saving to: 'rundeck-2.6.7-1-GA.deb' rundeck-2.6.7-1-GA. 100%[===================>] 96.35M 1.76MB/s in 54s 2016-05-24 10:14:32 (1.79 MB/s) - 'rundeck-2.6.7-1-GA.deb' saved [101028776/101028776]
참고: Bintray 저장소는 현재 서비스가 종료되어 위 링크가 동작하지 않을 수 있습니다. 이 경우 Rundeck 공식 사이트(rundeck.org)에서 최신 버전의 .deb 패키지를 직접 내려받으시기 바랍니다.
3단계: Rundeck 설치
다운로드한 .deb 패키지를 아래 명령어로 설치합니다.
$ sudo dpkg -i ./rundeck-2.6.7-1-GA.deb
설치가 완료되면 다음과 같은 출력이 나타납니다.
Selecting previously unselected package rundeck. (Reading database ... 197916 files and directories currently installed.) Preparing to unpack ./rundeck-2.6.7-1-GA.deb ... Unpacking rundeck (2.6.7) ... Setting up rundeck (2.6.7) ... Adding group rundeck....done Adding system user rundeck....done Processing triggers for ureadahead (0.100.0-19) ... Processing triggers for systemd (229-4ubuntu4) ...
4단계: Rundeck 서버 설정
Rundeck 서버를 구성하려면 /etc/rundeck/framework.properties 파일과 /etc/rundeck/rundeck-config.properties 파일을 편집해야 합니다. 두 파일에서 아래 항목을 찾아
grails.serverURL=https://localhost:4440
다음과 같이 실제 서버 주소로 변경합니다.
grails.serverURL=https://your_server:4440
만약 로컬 환경(localhost)에서 작업 중이라면 이 단계는 건너뛰어도 무방합니다.
5단계: Rundeck 시작
아래 명령어를 입력해 Rundeck 서비스를 시작합니다.
$ sudo /etc/init.d/rundeckd start
서비스가 정상적으로 시작되면 다음과 같은 메시지가 출력됩니다.
[ ok ] Starting rundeckd (via systemctl): rundeckd.service.
6단계: 웹 인터페이스 접속 및 프로젝트 생성
웹 브라우저를 열고 https://your_server:4440 또는 https://localhost:4440에 접속합니다.

GUI에 로그인하려면 사용자 이름과 비밀번호 모두 admin을 입력합니다.

"New Project(새 프로젝트)" 링크를 클릭해 프로젝트를 추가합니다. 이때 공백 없는 프로젝트 이름을 반드시 입력해야 합니다.

"Resource Model Source(리소스 모델 소스)" 섹션에서 "Edit(편집)" 버튼을 클릭한 후 "Require file exists(파일 존재 필수)" 옵션을 선택하고 "Save(저장)" 버튼을 누릅니다.

7단계: 첫 번째 작업(Job) 만들기
이제 첫 번째 작업을 생성할 준비가 되었습니다. 이 예제의 작업은 SSH 연결을 통해 원격 명령을 실행하는 방식입니다. "Create a new job(새 작업 만들기)"을 클릭하고 공백 없이 작업 이름을 지정합니다. 그런 다음 원격 서버에 연결하고 명령을 실행하기 위해 필요한 비밀번호와 sudo 비밀번호 정보를 입력합니다.

모든 세부 정보를 입력한 뒤 "Save(저장)" 버튼을 클릭하면 작업 생성이 완료됩니다.
마무리
이 가이드를 따라 하면 Debian 8(Jessie) 서버에 Rundeck을 설치하고 기본적인 작업까지 구성할 수 있습니다. Rundeck을 활용하면 반복적인 운영 업무를 자동화하고 여러 대의 서버를 손쉽게 통합 관리할 수 있습니다. 앞으로 더 유용한 Linux 팁과 트릭을 소개해 드릴 예정이니 계속 지켜봐 주세요!