mystic-agit 개발 블로그

[Jenkins] User Account 삭제 방법 / 삭제 안되는 경우 / 계정 관리 플러그인 본문

CI-CD/Jenkins

[Jenkins] User Account 삭제 방법 / 삭제 안되는 경우 / 계정 관리 플러그인

mystic-agit 2024. 7. 9. 15:30

[목 차]

1. Jenkins UI 에서 인원 관리 메뉴에서 계정 삭제하는 방법

2. Script Console을 통해 Jenkins Home 이하에 계정 폴더 및 파일 제거

3. Jenkins Home (설치 경로) 이하에서 계정 제거

4. Jenkins 사용자 제거가 안되는 경우

5. Jenkins 사용자 관리를 위한 플러그인 - Role-based Authorization Strategy


 

Jenkins 관리 중 미사용 인원이 발생하면서

User Account 를 삭제하는 방법을 몇 가지 확인해보았다.

그리고 계정 삭제가 안되는 상황이 있어 이에 대한 메로를 해두려고 한다.

 

1. Jenkins UI 에서 인원 관리 메뉴에서  계정 삭제하는 방법

'사람' 메뉴 이동
User Id 클릭
'삭제' 수행

 

 

2. Script Console을 통해 Jenkins Home 이하에 계정 폴더 및 파일 제거

'Jenkins 관리' 이동
'Script Console' 이동
코드 입력 후 실행

// 코드
// username 변수에 Jenkins 계정(User Id) 입력
import hudson.model.User
import jenkins.model.Jenkins

def username = "mysticagit"	// 계정 입력!
def user = User.get(username, false, null)
if (user != null) {
    user.delete()
    println "User ${username} deleted successfully."
} else {
    println "User ${username} not found."
}

 

 

3. Jenkins Home (설치 경로) 이하에서 계정 제거

User Id가 포함된 폴더 제거 / users.xml 내용에서 User Id 가 색인된 내용 제거

  • .jenkins/users 이하에
    • User Id가 포함된 폴더 제거
    • users.xml 내용에서 User Id가 색인된 내용 제거

 

이렇게 1~3 경우로 등록된 사용자를 삭제할 수 있다.

다만, 위의 방법으로도 삭제가 안되는 경우가 있다.

 

 

4. Jenkins 사용자 제거가 안되는 경우

  • 사용자 정보 화면에서 '접속 중' 에 정보가 있는 경우
    • 위 1~3 방법으로 수행해도 사용자 정보 화면에서 계정이 삭제되지 않는다.
    • 계정 설정에 들어가 Session Termination 을 수행해도 '접속 중' 세션은 기록되어 있다.

이런 경우 해당 계정으로 Jenkins 내 각 프로젝트 빌드 로그(build.xml)에 정보가 남아 있어
빌드 로그 내 계정 정보가 더이상 존재하지 않아야 계정 삭제가 가능하다.

빌드 로그가 상당히 많은 경우 이를 정리하는데 불편한 부분이 있다.

 

 

5. Jenkins 사용자 관리를 위한 플러그인 - Role-based Authorization Strategy

 

때문에, Jenkins Plugins 에서 Role-based Authorization Strategy 를 설치하여 인원을 관리하면 편리하다.

  • Manage Roles 을 설정하여 권한을 세부적으로 다루고 그에 대한 등급명을 구성할 수 있고
  • Assign Roles 을 설정하여 권한을 부여할 User Id를 추가하여 등급명을 별도로 부여할 수 있다.
  • 미사용 계정이 발생할 경우 사용자 목록에서 직접적으로 제거하는 것 대신 Roles 을 별도로 할당하여 분리할 수 있다.

Comments