그리고 zip 파일 압축해제를위해서 unzip 을 설치합니다.
cd /tmp
# 다운로드
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip
# zip파일 압축 해제를 위한 unzip 설치
sudo apt-get install unzip
# zip파일 압축 해제
unzip sonarqube-7.7.zip
#파일 이동
mv sonarqube-7.7 /usr/local/src/sonarqube
2. Jdk 설치
SonarQube를 사용하려면 서버에 JDK도 설치 되어있어야 합니다만. 지원하는 JDKsms Open JDK 8 버젼만 지원합니다. 참고
그래서 Open JDK 8 버젼을 설치합니다.
# Open JDK 8 설치
sudo apt-get install openjdk-8-jdk
# Java 환경변수 설정
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
# 환경변수 설정 내용 확인
echo $JAVA_HOME
3. 환경설정
#디렉터리 이동
cd /usr/local/src/sonarqube/
#환경설정
vi conf/sonar.properties
sonar.properties파일을 위와같이 빨간색 쳐진부분처럼 수정해줍니다.
user명은 sonar로 하도록하겠습니다.
4.database 세팅
# postgresql을 설치합니다.
sudo apt-get install postgresql
# postgres로 계정을 바꿔줍니다.
sudo -i -u postgres
# postgresql의 쉘 커맨드를 실행합니다.
psql
#유저생성, db생성, db권한설정
CREATE USER sonar WITH ENCRYPTED PASSWORD 'sonar';
CREATE DATABASE sonar OWNER sonar;
ALTER ROLE sonar WITH createdb;
GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar;
# 쉘 커맨드를 종료합니다.
CTRL + C
# 원래 계정으로 돌아갑니다.
exit
#재시작
#systemctl restart postgresql
5.기타 환경설정
db작업을 마치고 부팅서비스로 등록하도록 하겠습니다.
#service 생성 , system 디렉토리 없다면 생성
vi /usr/lib/systemd/system/sonar.service
파일안에 아래와같은 내용을 입력해주고 저장해줍니다.
[Unit]
Description=SonarQube Service
After=syslog.target
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/src/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/usr/local/src/sonarqube/bin/linux-x86-64/sonar.sh stop
ExecReload=/usr/local/src/sonarqube/bin/linux-x86-64/sonar.sh restart
[Install]
WantedBy=multi-user.target
wq
#데몬 재로드를 한뒤 부팅시 등록 및 실행
systemctl daemon-reload
systemctl enable sonar
systemctl start sonar
방화벽 포트도 열어줍니다.
ufw allow 9000
그리고 다음 중요한것이 실행할때 루트계정으로 실행하면 실행되지 않습니다.
그러므로 sonar라는 계정을 생성해보도록 하겠습니다.
유저생성
#그룹생성
sudo groupadd sonar
#유저생성
sudo useradd -m -g sonar -d /usr/local/src/sonarqube -s /bin/bash -p sonar sonar
# -m 홈디렉토리생성, -g 그룹지정 ,-d 디렉토리 지정, -s 쉘지정, -p 패스워드 지정
소유권한 변경
#파일 소유권한 변경
sudo chown -R sonar:sonar /usr/local/src/sonarqube
##chown -R [owner name]:[group name] [filename or directory]
6. 실행
데몬으로 부팅시에 실행되지만, 직접 쉘로 실행해보도록 하겠습니다
f
현재 유저 변경
#현재 유저 변경 (switch user)
su - sonar
패스워드입력
소나큐브실행
#소나큐브 실행
./bin/linux-x86-64/sonar.sh console start
##(옵션 목록 : console | start | stop | restart | status | dump)