以前有寫過一篇如何在kubernetes上部署SonarQube的文檔,html
而後因爲客戶的需求,須要SonarQube關聯LDAP的用戶,java
因而今天花了半天時間研究瞭如下如何在原有的基礎上安裝LDAP插件。web
首先若是不知道如何在kubernetes上部署SonarQube的童鞋能夠先看一下這篇文檔:docker
SonarQube install on Kubernetesvim
參照:...暫無參照,往後會出一篇關於LDAP的安裝微博bash
安裝完成後帳號信息以下:服務器
服務器IP:192.168.1.147:389app
DN: cn=admin,dc=daocloud,dc=iodom
Password: passwordui
SonarQube須要安裝LDAP插件:
LDAP插件官方手冊:https://docs.sonarqube.org/display/PLUG/LDAP+Plugin
配置文件 sonarqube/conf/sonar.properties
# LDAP configuration # General Configuration sonar.security.realm=LDAP ldap.url=ldap://192.168.1.147:389 ldap.bindDn=cn=admin,dc=daocloud,dc=io ldap.bindPassword=password # User Configuration ldap.user.baseDn=ou=People,dc=daocloud,dc=io ldap.user.request=(&(objectClass=posixAccount)(uid={login})) ldap.user.realNameAttribute=cn ldap.user.emailAttribute=mail # Group Configuration ldap.group.baseDn=ou=Group,dc=daocloud,dc=io ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
sonarqube/bin/[OS]/sonar.sh restart
日誌文件:sonarqube/logs/sonar.log
2018.07.05 07:12:22 INFO web[][org.sonar.INFO] Security realm: LDAP 2018.07.05 07:12:22 INFO web[][o.s.p.l.LdapSettingsManager] User mapping: LdapUserMapping{baseDn=ou=People,dc=daocloud,dc=io, request=(&(objectClass=posixAccount)(uid={0})), realNameAttribute=cn, emailAttribute=mail} 2018.07.05 07:12:22 INFO web[][o.s.p.l.LdapSettingsManager] Group mapping: LdapGroupMapping{baseDn=ou=Group,dc=daocloud,dc=io, idAttribute=cn, requiredUserAttributes=[uid], request=(&(objectClass=posixGroup)(memberUid={0}))} 2018.07.05 07:12:22 INFO web[][o.s.p.l.LdapContextFactory] Test LDAP connection on ldap://192.168.1.147:389: OK
現來看看難點:
固然接下來的作法只是我我的的解決思路,僅供參考。
若是後續有更好的辦法會更新這篇微博,若是你們有更好的辦法也能夠在博客下留言。
mkdir /opt/sonarqube cd /opt/sonarqube vim Dockerfile
首先基於openjdk:8-alpine的鏡像,製做屬於咱們本身的SonarQube7.1的docker鏡像:
FROM openjdk:8-alpine ENV SONAR_VERSION=7.1 \ SONARQUBE_HOME=/opt/sonarqube \ # Database configuration # Defaults to using H2 SONARQUBE_JDBC_USERNAME=sonar \ SONARQUBE_JDBC_PASSWORD=sonar \ SONARQUBE_JDBC_URL= # Http port EXPOSE 9000 RUN addgroup -S sonarqube && adduser -S -G sonarqube sonarqube RUN set -x \ && apk add --no-cache gnupg unzip \ && apk add --no-cache libressl wget \ && apk add --no-cache su-exec \ && apk add --no-cache bash \ && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys F1182E81C792928921DBCAB4CFCA4A29D26468DE \ && mkdir /opt \ && cd /opt \ && wget -O sonarqube.zip --no-verbose https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-$SONAR_VERSION.zip \ && wget -O sonarqube.zip.asc --no-verbose https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-$SONAR_VERSION.zip.asc \ && gpg --batch --verify sonarqube.zip.asc sonarqube.zip \ && unzip sonarqube.zip \ && mv sonarqube-$SONAR_VERSION sonarqube \ && rm sonarqube.zip* \ && rm -rf $SONARQUBE_HOME/extensions/plugins/* \ && rm -rf $SONARQUBE_HOME/bin/* ADD plugins/ $SONARQUBE_HOME/extensions/plugins/ ADD sonar.properties $SONARQUBE_HOME/conf/ RUN chown -R sonarqube:sonarqube $SONARQUBE_HOME VOLUME "$SONARQUBE_HOME/data" WORKDIR $SONARQUBE_HOME COPY run.sh $SONARQUBE_HOME/bin/ RUN chmod +x $SONARQUBE_HOME/bin/run.sh ENTRYPOINT ["./bin/run.sh"]
vim run.sh #!/bin/bash set -e if [ "${1:0:1}" != '-' ]; then exec "$@" fi chown -R sonarqube:sonarqube $SONARQUBE_HOME exec su-exec sonarqube \ java -jar lib/sonar-application-$SONAR_VERSION.jar \ -Dsonar.log.console=true \ -Dsonar.jdbc.username="$SONARQUBE_JDBC_USERNAME" \ -Dsonar.jdbc.password="$SONARQUBE_JDBC_PASSWORD" \ -Dsonar.jdbc.url="$SONARQUBE_JDBC_URL" \ -Dsonar.web.javaAdditionalOpts="$SONARQUBE_WEB_JVM_OPTS -Djava.security.egd=file:/dev/./urandom" \ "$@"
建立一個sonar.properties的配置文件,這裏只貼出LDAP配置這一段
# LDAP configuration # General Configuration sonar.security.realm=LDAP ldap.url=ldap://192.168.1.147:389 ldap.bindDn=cn=admin,dc=daocloud,dc=io ldap.bindPassword=password # User Configuration ldap.user.baseDn=ou=People,dc=daocloud,dc=io ldap.user.request=(&(objectClass=posixAccount)(uid={login})) ldap.user.realNameAttribute=cn ldap.user.emailAttribute=mail # Group Configuration ldap.group.baseDn=ou=Group,dc=daocloud,dc=io ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
建立一個plugins的目錄將全部須要的插件都放在這個目錄下
mkdir plugins
在這裏列出我所安裝的插件列表:
ok!最後是docker build的過程,最後把鏡像push到你的鏡像倉庫。
結合這篇blog:SonarQube install on Kubernetes
把裏面的sonarqube的image替換成你新制做出來的鏡像查看效果。