Skip to content

Commit

Permalink
런덱 관련 내용 보완
Browse files Browse the repository at this point in the history
  • Loading branch information
YonghoChoi committed Jun 18, 2018
1 parent 135fe3b commit 20ea263
Show file tree
Hide file tree
Showing 6 changed files with 88 additions and 5 deletions.
58 changes: 58 additions & 0 deletions md/Rundeck/1_Overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,61 @@



## 디렉토리 구조

* /etc/rundeck : Rundeck 서버의 설정 파일들
* 인증
* 프레임워크
* 서버 설정 등
* /var/rundeck : Rundeck 프로젝트와 관련된 설정 파일들
* 프로젝트 자체의 설정 파일
* 노드 설정 파일
* 액세스 정책 등
* /var/lib/rundeck : rundeck 웹 페이지를 구성하기 위한 파일들
* 정적 파일
* rundeck 웹을 통해 생성되는 각종 파일들 (job, command, log 등)



## Rundeck 동작

* 가장 큰 단위가 되는 프로젝트를 생성
* 프로젝트 내에는 노드, 잡, 커맨드를 생성할 수 있는데, 원격 호스트가 노드에 해당하고 이 노드에서 실행할 명령이 잡과 커맨드로 구분된다.
* 이 때 노드는 GUI로 추가가 불가능하고 설정 파일을 수정해야한다.
* 잡과 커맨드의 차이는 커맨드는 단일 실행 명령을 의미하고, 잡은 이러한 커맨드를 포함해서 다양한 유형의 동작을 스텝으로 구분해서 실행할 수 있다. 즉, 워크플로 설정이 가능하다.
* 실행 순서를 정리해보면 먼저 프로젝트를 생성하고 노드를 추가한 후 노드에서 실행할 잡이나 커맨드를 생성한다.



## 인증

* Rundeck의 사용자 계정 관리는 `/etc/rundeck/realm.properties`에 정의

* 사용자 계정 입력 형식

```
admin:admin,user,admin
```

* `<username>: <password>[,<rolename> ...]`
* 위의 경우 사용자 계정은 admin이고 패스워드는 admin, 계정에 대한 role은 user와 admin이다.

* 패스워드를 암호화해서 입력하려면 `jetty-all-9.0.7.v20131107.jar` 를 실행해서 암호화된 문자열 생성

```
$ java -cp /var/lib/rundeck/bootstrap/jetty-all-9.0.7.v20131107.jar org.eclipse.jetty.util.security.Password <username> <password>
```

```
OBF:1xfd1zt11uha1ugg1zsp1xfp
MD5:a029d0df84eb5549c641e04a9ef389e5
CRYPT:jsnDAc2Xk4W4o
```

* 위에서 생성한 암호 문자열을 사용하여 계정에 패스워드 지정

```
<username>: MD5:a029d0df84eb5549c641e04a9ef389e5,user,admin
```


10 changes: 8 additions & 2 deletions md/Rundeck/2_Jobs.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@

## 개요

* Job은 프로세스를 캡슐화하는 수단을 제공
![](images/job_detail_view.png)

* Job은 반복되거나 자주 실행되는 일련의 작업 절차를 재사용할 수 있도록 한다.
* Job에 엑세스하기 위한 읽기, 쓰기, 실행, 삭제 권한은 액세스 제어 정책에 의해 관리된다.
* Job이 실행 중인 경우 진행 상황 모니터링 가능
* Job이 실행 중인 경우 진행 상황 모니터링이 가능하다.
* Job 목록
* 개별 실행 단계에 대한 결과 확인
* Job 실행 중단
Expand Down Expand Up @@ -51,6 +53,10 @@
* 로그 크기 제한에 걸릴 경우 Job을 중단시키거나 로그 출력만 중단 시킬 수 있다.
* 예약을 걸어서 주기적으로 Job이 실행되도록 할 수 있다.
* Unix crontab 형식으로 정의
* Job을 실행하는 전략(Strategy)을 지정할 수 있다.
* Node First : 노드 기반으로 잡을 실행하여 하나의 노드에서 명령이 다 끝난 후에 다음 노드에 명령 실행
* Parallel : 지정된 스레드 수에 따라 병렬적으로 명령 실행
* Sequential : 단계별로 각 노드에서 순차적으로 실행. (1 단계를 모든 노드가 실행하고 나면 2 단계를 실행)



Expand Down
25 changes: 22 additions & 3 deletions md/Rundeck/3_Nodes.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,39 @@
{namespace}:{name} = {value}
```

* 위와 같이 지정된 속성은 UI에서 자동으로 그룹화된다.
* resources.xml 파일에서는 아래와 같이 지정한다.

```
<attribute name="{namespace}:{name}" value="{value}"/>
```

* 네임스페이스 지정된 속성은 UI에서 자동으로 그룹화된다.

* 예를들어 web:pid=4872, web:state=RUNNING으로 지정한 경우 아래와 같이 그룹화

![](images/namespace.png)

* 네임스페이스 설정에 따라 필터링하고 필터를 저장하요 재사용할 수 있다.
* 네임스페이스 설정에 따라 필터링하고 필터를 저장하여 재사용할 수 있다.



## 노드 필터

![](images/node_navi.png)

1. 노드 목록에서 노드를 하나 선택하면 해당 노드에 대한 정보가 하위에 표시된다.
2. 노드 페이지의 상단에 필터 바에서 태그를 지정해서 필터링할 수 있다.
3. `web:pid: .*` 과 같이 web이라는 네임스페이스 내에 pid 어트리뷰트를 가진 모든 노드를 필터링할 수 있다.
4. `web:state: RUNNING` 과 같이 web이라는 네임스페이스 내에 state 어트리뷰트의 값이 RUNNING인 노드들을 필터링할 수 있다.



## Node 동작

![](images/node_action.png)

* 필터 결과 지정된 노드들에 일괄적으로 명령을 실행 할 수 있다.
* 명령은 Job을 기반으로 실행
* 명령은 Job 또는 command로 실행
* ACL에 의해 권한이 부여된 사용자에 한해서 명령을 수행할 수 있다.


Expand Down
Binary file added md/Rundeck/images/job_detail_view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added md/Rundeck/images/node_action.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added md/Rundeck/images/node_navi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 20ea263

Please sign in to comment.