콘텐츠로 건너뛰기

[Rundeck] 설치 및 사용법

Rundeck 설치는 2026년 9월에도 공식 rpm-setup.sh 스크립트 한 줄과 yum 설치로 끝나고, 최신 버전은 6.2.1 입니다. 달라진 점은 Java 17 이상이 필수가 된 것과 정적 API 토큰에 역할까지 적어야 한다는 것이라 7절 표에 모아 두었습니다.

필자가 운영하는 프로젝트에서는 CI툴로는 Jenkins를 사용하고 CD툴로는 Rundeck을 사용한다. 소스는 IDC 서버에 있고, WAS 서버들이 아마존 웹서비스에 존재하다보니, 빌드를 한뒤 파일을 아마존쪽으로 전달해서 배포하는 형식이다. 라이브 배포툴로 사용하면 좋을 오픈소스 Rundeck에 대해서 정리한다. Rundeck 설치 및 사용법 설명 이미지 1 런덱 공식 URL

1. 설치

• 설치
curl https://raw.githubusercontent.com/rundeck/packaging/main/scripts/rpm-setup.sh 2> /dev/null | sudo bash -s rundeck
sudo yum install java rundeck
• 중지 및 기동
service rundeckd stop
service rundeckd start

2. 런덱 기본 설정

  • hostname 변경
    vi /etc/rundeck/rundeck-config.properties
    grails.serverURL=http://xx.xx.xxx.xx:{port}  # Public IP 등록
    
  • admin 계쩡 설정
    vi /etc/rundeck/realm.properties
    admin:admin,user,admin,architect,deploy,build        
    # admin 계정 패스워드 변경
    
  • Framework 설정
    vi /etc/rundeck/framework.properties
    framework.server.name = xx.xx.xxx.xx
    framework.server.hostname = 0.0.0.0 
    framework.server.port = {port}
    framework.server.url = http://xx.xx.xxx.xx:{port} 
    framework.rundeck.url = http://xx.xx.xxx.xx:{port}
    
  • 영구 API 토근 설정 (필요시) 외부에서 API를 연계할일이 있어, API를 발급받아 사용했는데, 토큰 만료일자가 30일로 셋팅되어 매번 토근을 재발급받아야 했다. 토근을 영구적으로 셋팅하기 위해서는 다음과 같이 하면된다.
    vi /etc/rundeck/tokens.properties
    Rundeck Web UI 의 Profile 메뉴에서 API Token 생성 후 등록
    admin: {API_TOKEN}
    

    2026년 9월 기준 공식 설정 문서로는 이 파일을 쓰려면 framework.properties 에 rundeck.tokens.file=/etc/rundeck/tokens.properties 로 경로를 지정해야 하고, 한 줄은 admin: {API_TOKEN}, admin 처럼 토큰 뒤에 역할을 붙이는 형식입니다. 자세한 내용은 7절에 적었습니다.

    Rundeck 설치 및 사용법 설명 이미지 2
  • 로그 셋팅
    cd /etc/logrotate.d/
    vi rundeck
    vi rundeck-access
    vi rundeck-api
    vi rundeck-audit
    vi rundeck-exec
    vi rundeck-jobs
    vi rundeck-options
    vi rundeck-service
    vi rundeck-storage
    
    /var/log/rundeck/{파일명}.log {
          daily
          rotate 14
          compress
          delaycompress
          missingok
          notifempty
          create 0664 rundeck rundeck
    }
    

3. 플러그인 설치

• /var/lib/rundeck/libext 경로에 Plug-In 파일 복사 후 재기동
openssh-node-execution-master.zip
rundeck-influxdb-annotation-step-plugin-master-0.1.0-SNAPSHOT.jar
rundeck-slack-incoming-webhook-plugin-0.6.jar

4. 노드 접속 키 설정

• 노드 접속 Key 생성 ( password 방식 )
cd /var/lib/rundeck/var/storage/content
( rundeck 기동 후에 path 생성됨 )
mkdir keys
cd keys
vi {node_name}.password
{password}

5. 노드 연결 확인

설치가 완료되면, 노드를 추가해야 해당 서버로 ssh 접속이 가능하게 된다.
vi /var/rundeck/projects/{프로젝트 명}/etc/resources.xml    ( 프로젝트 추가 후 생성됨 )
노드는 프로젝트별로 추가 필요
=> /var/rundeck/projects/resources.xml 로 통합하여 1개 파일만 수정하면 모든 프로젝트에 적용됨

추가할 노드 정보 입력 ( 예시 )




6. RSA 인증방식으로 설정

필자가 운영하는 프로젝트에서는 배포할 파일을 각 서버로 SCP하는 작업이 있었다. 그렇게 하기 위해서는 해당 서버로 SCP를 하기 위해 RSA 인증을 얻어야 하는데 다음과 같은 방식으로 인증을 획득한다.
1. 각 서버에서 키 생성 후, rundeck 서버에 publick key 등록 ( 패스워드 없이 scp 가능하도록 )
 - 대상 서버 : ssh-keygen -t rsa -b 2048
 - 생성된 rsa_id.pub 키 내용을 rundeck 서버 rundeck 계정 ~/.ssh/authorized_keys 에 추가 
   /var/lib/rundeck/.ssh/authorized_keys

2. 서버에서 scp 수동으로 1회 실행 ( 각 서버 → Rundeck 서버 )
클라이언트에서 생성한 공개키 값을 접속하려는 서버의 authorized_keys 파일에 추가시키는 이유는 SSH 접속 시 client의 id_rsa.pub 키 값과 서버의 authorized_keys 값을 비교하여 인증을 진행하기 때문이다. 이상으로 런덱의 설치 및 운용방법에 대해서 알아보았다. 런덱은 내부적으로 h2라는 db를 사용하는데, 보통 런덱을 업그레이드 하거나 백업을 할때는 다음의 경로를 백업 하면 된다.
       /var/lib/rundeck/data/rundeckdb.mv.db
       /var/lib/rundeck/data/rundeckdb.trace.db
다음에는 각 JOB을 생성하는 방법에 대해서 알아보겠습니다.

7. 2026년 9월 기준으로 바뀐 설치 값은 무엇인가요?

설치 순서는 그대로이고 Java 버전, 토큰 형식, 운영 DB 권고가 달라졌습니다. 2026년 9월 28일에 Rundeck 공식 문서와 GitHub 릴리스를 다시 열어 이 글의 값과 나란히 적어 보았습니다.

항목이 글(2019년)2026년 9월 기준
최신 버전버전 표기 없음6.2.1 (2026-09-09 릴리스)
Javayum install java 로 버전 지정 없이 설치6.0.0 부터 Java 17 이 최소, Java 25 까지 지원
설치 명령rpm-setup.sh 스크립트, yum install java rundeck같은 스크립트와 명령이 공식 문서에 그대로 있음
기동과 첫 접속service rundeckd start공식 문서도 sudo service rundeckd start, 기본 주소 http://localhost:4440, 초기 계정 admin/admin
정적 API 토큰admin: 토큰framework.properties 에 rundeck.tokens.file 지정, 사용자: 토큰, 역할 형식
UI 발급 토큰 만료30일기본 30d, rundeck.api.tokens.duration.max 로 변경
내장 DBh2 (rundeckdb 파일)기본 경로는 같음, 운영에는 외부 DB 권장
플러그인libext 에 복사 후 재기동libext 에 넣으면 재시작 없이 활성화
공식 사이트rundeck.orgrundeck.org 는 www.rundeck.com 으로 이동, 문서는 docs.rundeck.com

공식 문서는 Azul Zulu OpenJDK 로 빌드하고 테스트한다고 적고 있어서, 배포판 기본 java 패키지가 17 미만이라면 17 이상을 먼저 설치하고 java -version 으로 확인한 뒤 Rundeck 을 까는 편이 안전합니다. 이미 돌고 있는 서버를 올리는 경우라면 필자가 따로 정리한 런덱 버전 업그레이드 절차를 같이 보시면 됩니다.

영구 API 토큰은 지금도 tokens.properties 로 만드나요?

네, 지금도 tokens.properties 로 정적 토큰을 둘 수 있습니다. 다만 framework.properties 에 파일 경로를 적어야 읽히고, 각 줄에 사용자의 역할을 반드시 붙여야 합니다.

vi /etc/rundeck/framework.properties
rundeck.tokens.file=/etc/rundeck/tokens.properties

vi /etc/rundeck/tokens.properties
admin: {API_TOKEN}, admin

웹 UI 에서 발급한 토큰의 기본 만료는 지금도 30일이고, rundeck-config.properties 의 rundeck.api.tokens.duration.max 로 기간을 바꿀 수 있습니다. 0 을 주면 만료가 없어지지만 공식 문서도 보안상 권하지 않는 설정입니다.

H2 내장 DB 를 그대로 운영에 써도 되나요?

운영에는 권하지 않습니다. 공식 문서는 H2 를 체험이나 중요하지 않은 용도로만 쓰라고 하고, Rundeck 이 정상 종료되지 않으면 안전하지 않다고 경고합니다. 운영 서버라면 MariaDB, MySQL, PostgreSQL 같은 외부 DB 로 옮기는 편이 맞습니다.

6절에 적은 백업 경로 /var/lib/rundeck/data/rundeckdb 는 지금 문서의 기본 dataSource.url 과 같아서, H2 를 쓰는 동안에는 그대로 유효합니다. 로그 파일 쪽은 Rundeck 로그 정리 방법에 따로 적어 두었습니다.

플러그인을 넣고 나면 꼭 재기동해야 하나요?

지금 문서 기준으로는 재기동하지 않아도 됩니다. 플러그인 파일을 libext 디렉터리에 복사하면 바로 활성화되고, 파일을 지우면 제거된다고 안내합니다. 필자는 2019년에 재기동까지 했는데, 반영이 안 보일 때만 재기동으로 확인하시면 될 것 같습니다.

이 글처럼 빌드는 Jenkins 로, 배포는 Rundeck 으로 나누는 구성이라면 Jenkins 파이프라인 구성 방법도 함께 참고하실 수 있습니다. 공식 설치 문서는 Rundeck RPM 설치 가이드에 있습니다.

런덱 공식 URL 워니즈 깃헙

Rundeck 설치에 관해 자주 묻는 것

Q. Rundeck과 Jenkins는 무엇이 다른가요?
Jenkins는 빌드를 담당하고 Rundeck은 배포와 운영 작업 실행을 담당합니다. 역할이 겹치지 않아 둘을 함께 쓰는 구성이 흔합니다.

Q. 노드 연결이 안 될 때 가장 먼저 볼 것은 무엇인가요?
SSH 키 파일의 권한과 소유자입니다. 권한이 600이 아니거나 rundeck 실행 계정이 그 키를 읽지 못하면 연결이 실패합니다. 대부분 여기서 막힙니다.

Q. 지금도 이 방법이 유효한가요?
설치, 노드 등록, 키 설정으로 이어지는 흐름은 그대로입니다. 다만 버전에 따라 설정 파일 경로가 다를 수 있어 공식 문서와 함께 보시는 편이 안전합니다.

함께 보면 좋은 글

이 글을 쓴 사람

인프라와 DevOps를 실무로 다루면서 겪은 것을 기록합니다. Docker, Kubernetes, AWS, 그리고 AI 도구를 실제로 써 보고 남기는 로그입니다.

Threads·X

새 글이 올라오면 Threads @wonizz.ai 에도 올립니다. 팔로우해 두면 피드에서 바로 볼 수 있습니다.

태그:

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다