Nexus repository 설치
...
Repositories > Create repository > pypi (hosted) 선택
이름 입력 후 저장
생성한 repository에 파일 업로드
Code Block $ vi .pypirc [distutils] index-servers = nexus-pypi [nexus-pypi] repository: http://192.168.146.132:8081/repository/nexus-pypi/ username = admin password = admin $ python3 -m twine upload --repository nexus-pypi python-packages/*
...
Plugin 빌드
Code Block git clone https://github.com/flytreeleft/nexus3-keycloak-plugin.git cd nexus3-keycloak-plugin mvn clean install -Dmaven.test.skip=true
Nexus install directory(/opt/sonatype/nexus)에 plugin 복사
Docker로 생성하여 install 폴더 들어가려면 docker 콘솔 실행하여야 함Code Block $ docker exec -itu 0 nexus bash ### root 권한으로 컨테이너 접속 [root@1694b1a7a42d /]# mkdir -p /opt/sonatype/nexus/system/org/github/flytreeleft/nexus3-keycloak-plugin/0.5.0-SNAPSHOT/ [root@1694b1a7a42d /]# exit $ docker cp ~/.m2/repository/org/github/flytreeleft/nexus3-keycloak-plugin/0.5.0-SNAPSHOT/nexus3-keycloak-plugin-0.5.0-SNAPSHOT.jar nexus:/opt/sonatype/nexus/system/org/github/flytreeleft/nexus3-keycloak-plugin/0.5.0-SNAPSHOT/
startup.properties 파일에 번들 추가
Code Block $ docker exec -itu 0 nexus bash [root@1694b1a7a42d /]# vi /opt/sonatype/nexus/etc/karaf/startup.properties reference\:file\:org/github/flytreeleft/nexus3-keycloak-plugin/0.5.0-SNAPSHOT/nexus3-keycloak-plugin-0.5.0-SNAPSHOT.jar = 200
Keycloak 영역 클라이언트 구성
Keycloak realm > clients > create > nexus3Settings
>Access Type: confidential
>Service Accounts Enabled: On
>Authorization Enabled: On
Service Account Roles
>Client Roles: realm-management
>Available Roles
:view-realm
,view-clients
,view-users
>Add selected
>Assigned Roles
Installation
>Format Option: Keycloak OIDC JSON
> 파일 복사keycloak.json 생성
Code Block $ vi keycloak.json # 복사한 내용 붙여넣기 $ docker cp keycloak.json nexus:/opt/sonatype/nexus/etc/
Container 재시작
...
Error 내용 : Keycloak에 user 생성 후 해당 user로 nexus 접근 시도 하였으나 접근 불가. nexus에 생성된 user정보가 있으면 연동 가능하나 새로운 user로 접속 시도 시 인증이 되지 않음. 하기 URL 참조: https://community.sonatype.com/t/authenticate-users-via-keycloak/652
...