Home | 문태준 | 시스템어드민 메일링 | Sys Admin 세미나
Skip to end of metadata
Go to start of metadata

rundeck : Job scheduler and runbook automation

rundeck sige : http://rundeck.org/

rundeck vagrant image

https://github.com/rundeck/anvils-demo

 

노드 추가하여 실행하기

다음은 위 rundeck vagrant 이미지를 이용하여 vm을 생성하고 노드를 하나 추가하고 명령을 실행한 상황이다.

 

rundeck 에서 다른 서버로 ssh 접속하기 위해 필요한 작업

1. ssh key 생성 및 복사
$ ssh-keygen -t rsa

여기에서 생성된 id_rsa.pub 파일을 ssh 로 접속할 서버 계정의 .ssh 디렉토리에 authorized_keys 파일명으로 저장을 하고 chmod 600 authorized_keys 명령을 실행한다.
여기서 생성한 id_rsa private key를 이용하여 해당 서버에 접속이 잘 되는지 먼저 확인을 해 보는 것이 좋다.

1. rundeck 에 해당 ssh key 업로드하기
해당 project 의 편집화면(http://192.168.50.2:4440/project/anvils/configure -> 으로 들어가서 private key, public key를 추가한다.
http://192.168.50.2:4440/menu/storage?project=anvils
-> http://192.168.50.2:4440/menu/storage?project=anvils

 

예를 들어 아래와 같이 storage path 를 설정했다고 하겠다.
keys/acme/anvils/node0/id_rsa
keys/acme/anvils/node0/id_rsa.pub

https://github.com/rundeck/anvils-demo/blob/master/add-project.sh 스크립트를 보면 아래와 같은 명령어로 이 작업을 수행하는 것으로 보인다.

 

이렇게 업로드한 ssh key는 아래 경로에 자동으로 저장이 된다.
/var/lib/rundeck/var/storage/content/keys/acme/anvils/node0/

/var/lib/rundeck/var/storage/meta/keys/acme/anvils/node0/ 디렉토리에는 자체적으로 해당 ssh key에 대한 부가 정보를 저장하고 있는 것 같다.

1. 해당 node 정보 rundeck에 추가하기
http://rundeck.org/docs/administration/project-setup.html
project setup을 마치면 project는 file resource model source 를 가진다.
centos6에서 rpm으로 설치시 /etc/rundeck/project.properties 에서 확인을 할 수 있다.

# grep project.resources.file /etc/rundeck/*
/etc/rundeck/project.properties:project.resources.file = /var/rundeck/projects/${project.name}/etc/resources.xml

웹UI의 해당 프로젝트 설정으로 가면 Resource Model Source 에 대한 설정이 나온다.
http://192.168.50.2:4440/project/anvils/configure
여기에는 첫번째로 /var/rundeck/projects/anvils/etc/resources.xml , 두번째로 /var/rundeck/projects/anvils/etc/resources.d/ 디렉토리에서 정보를 읽어오도록 되어 있다.

/var/rundeck/projects/anvils/etc/resources.d/ 에 새로운 노드를 추가한다.
아래의 경우 hostname, username 을 이용하여 node0 서버에 접속을 하는 것이다.
ssh-key-storage-path 는 위에서 만들어서 업로드한 ssh private key를 이용하는 것이다.

이제 해당 노드를 검색하여 원하는 명령을 실행하면 된다.


CLI 명령 실행하기

 

Command Line Tools
http://rundeck.org/docs/man1/index.html

 

다음의 CLI가 있음.
dispatch
rd-acl
rd-jobs
rd-project
rd-queue
rd-setup
run

-F 필터옵션을 주어서 원하는 명령을 실행할 수 있다. 화면에 명령실행결과가 뿌져지지는 않고 Queued Execution 이라고 나오며 해당 url로 가서 실행결과를 볼 수 있다. 위에서 나온 localhost는 ip로 바꾸어야 할 것이다. /etc/rundeck/framework.properties 에서 rundeck 서버에 대한 설정을 바꿀 수도 있다.

-f 옵션을 주면 실행결과도 화면에 출력을 한다.

현재 실행중인 명령 보기

 

 

현재 정의한 job 보기

 

run : job 실행하기
http://rundeck.org/docs/man1/run.html 에 있는 것 따라하는데 에러가 남. 확인 필요.

 

Labels
  • No labels