회사에서 SAFE CODING 을 위해 SONAR SERVER 를 사용하여 코드 분석을 하려고 한다.
1. sonar server 2. git 3. jenkins
sonar server 는 따로 분리되어 있으며 , open jdk 11 , postgreSql 을 설치해 놓았다.
2. git 현재 여러개의 프로젝트중에 A 프로젝트를 연결할 것이다.
3. jenkins : 2번의 A프로젝트가 push 이벤트가 발생하면 build 하도록 설정
현재 우리는 jenkins 와 git 이 동일한 사설 ip 내부에 들어있다. git 이 webhook 을 생성시 url 과 token key 값이 필요한데 그때 localhost/ 로 ip 를 설정해주어도 되고 지금 사용중인 사설 ip 로 값을 불러도된다. port 도 동일
* 제일 좋은 것은 영어로 된 공식문서가 아주 깔끔하다는 것을 느꼈고, 유투브를 보면서 자꾸 변하는 것들은 공식문서 ( 최신 업데이트)를 사용해서 공부해야 한다는 것을 알았다.
내가 진행하기 위해서 조사한 것
1. - sonarQube 설치
.zip 파일 다운로드 -> 압축풀기 * 숫자로 시작하는 디렉토리에 압축을 풀면 안된다.
(or Docker image 를 사용하기도 한다. )
2. 해당 폴더의 conf/sonar-properties 에 DB 설정한다.
DB 설정 : empty schema 를 설정.
sonarqube user 생성 ( create , update , delete object 권한 부여가 필수다 )
Edit $SONARQUBE-HOME/conf/sonar.properties sonar.jdbc.username=이름설정 sonar.jdbc.password=패스워드설정 sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
3. ip 값을 설정해준다. 현재 내부망pc 에서 sonar 서버에 접근할 수 있도록 ip 를 뚫어준다.
default 로 Elasticsearch 데이터는 $SONARQUBE-HOME/data 여기 저장되지만 , 상용에서는 권장되지 않아서, Edit $SONARQUBE-HOME/conf/sonar.properties to configure the following settings:
sonar.path.data=/var/sonarqube/data sonar.path.temp=/var/sonarqube/temp
4. Web server 시작하기
공식문서에 보니 값 셋팅이 있다.
If you're running on Linux, you must ensure that: - vm.max_map_count is greater than or equal to 524288 - fs.file-max is greater than or equal to 131072 - the user running SonarQube can open at least 131072 file descriptors - the user running SonarQube can open at least 8192 threads
default port 는 9000 으로 지정되어 있다.
$SONARQUBE-HOME/conf/sonar.properties 에서 변경이 가능하다.
예시) sonar.web.host=ip 번호 sonar.web.port= port 번호 sonar.web.context=/sonarqube
6. 실행하기
bin/linux-x86-64/sonar.sh start
7. git 에 push 이벤트 발생시 build 할 프로젝트에 integrations 를 설정하여 , web hook 을 부여한다.
url 은 위에도 언급했다 싶이 우리 사설 ip / port 이며 , token key 는 젠킨스에서 생성한 key 를 넣는다.
8. jenkins 에서도 빌드시 수행할 script 설정해준다.
댓글
댓글 쓰기