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 에서 인원 관리 메뉴에서 계정 삭제하는 방법
2. Script Console을 통해 Jenkins Home 이하에 계정 폴더 및 파일 제거
// 코드
// 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 (설치 경로) 이하에서 계정 제거
- .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 을 별도로 할당하여 분리할 수 있다.