DevOps
DevOps
ALM(Application Lifecycle Management)
ALM(Application Lifecycle Management)
Sonar
- What is Sonar ?
- Sonar는 Codehaus에서 개발한 코드 품질 관리 플랫폼으로, 오픈소스
-
PMD, CheckStyle, Findbugs, Cobertura등을 이용해서 코드검사, 코드커버리지, 중복도, 복잡도 등의 데이터를 추출해주고,그 외 품질관련 데이터도 뽑아주기 때문에 수월하게 좋은 데이터를 얻을 수 있다.
-
PMD : source quality assurence
-
- 프로젝트 내의 규칙을 추가로 적용하여 반영할 수 있다.
- Download Sonar
-
- show databases;
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | redmine | | test | +--------------------+ 4 rows in set (0.13 sec)
mysql> create user 'sonar_usr'@'localhost' identified by 'sonar_usr'; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on sonar_db.* to 'sonar_usr'@'localhost' with grant option; Query OK, 0 rows affected (0.00 sec) mysql>
- show databases;
- Sonar config
-
#----- MySQL 5.x/6.x # Comment the embedded database and uncomment the following lines to use MySQL sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar_db?useUnicode=true&characterEncoding=utf8 sonar.jdbc.driverClassName: com.mysql.jdbc.Driver sonar.jdbc.validationQuery: select 1 #----- Global database settings sonar.jdbc.username: sonar_usr sonar.jdbc.password: sonar_usr sonar.jdbc.maxActive: 10 sonar.jdbc.maxIdle: 5 sonar.jdbc.minIdle: 2 sonar.jdbc.maxWait: 5000 sonar.jdbc.minEvictableIdleTimeMillis: 600000 sonar.jdbc.timeBetweenEvictionRunsMillis: 30000
-
- Start
- /apps/sonar-2.7/bin/linux-x86-32/sonar.sh start
- Stop
- /apps/sonar-2.7/bin/linux-x86-32/sonar.sh stop
Git
git
-
How To Install Git on Ubuntu 18.04 : https://www.digitalocean.com/community/tutorials/how-to-install-git-on-ubuntu-18-04
- Install
- # apt-get install git
- Add User
- $ sudo adduser gitolite
- $ sudo adduser git-repo
GitLab
-
GitLab 연동 : http://ratseno.tistory.com/4
-
Ubuntu GitLab 설치 : http://html5around.com/wordpress/tutorials/ubuntu-gitlab-install-use-1/
-
$ sudo apt-get install curl openssh-server ca-certificates postfix ## postfix는 일단 그냥 No Configuration으로 선택합니다. ## sudo dpkg-reconfigure postfix 명령으로 언제든지 설정 가능합니다. $ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash ## Running apt-get update... 메세지 ...약간 시간 걸림 ## 메세지 The repository is setup! You can now install packages. 가 보임 $ sudo apt-get install gitlab-ce ## 화면에 노란 별로 그린 마크와 빨간색으로 쓴 GitLab 글자 밑에 ## 메세지로 sudo gitlab-ctl reconfigure 를 실행하라고 알려줌 $ sudo gitlab-ctl reconfigure ## 화면에 글자들이 올라가면서 잠시 시간 걸림 ## 설정파일 수정 후에는 항상 이 명령을 해주어야 함 $ gitlab-ctl -help ## gitlab-ctl 명령뒤에 사용할 수 있는 옵션(start..stop..upgrade 등등) 확인 $ sudo gitlab-ctl upgrade ## 그냥 한번 해 보았습니다. 이상하게 동작하면 restart하라는 메세지가 보입니다.
-
설정 : https://docs.gitlab.com/omnibus/settings/smtp.html#smtp-settings
- install the Runner
-
# For Debian/Ubuntu/Mint curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash # For Debian/Ubuntu/Mint sudo apt-get install gitlab-runner
-
DevOps Shell script
Web Server
#!/bin/sh # /data/scm/homeplus-club-admin/homeplus-club-admin-web echo echo '##### START DEPLOY #####' echo echo '##### Set Env #####' ##### JAVA ##### WEBROOT=/data/homeplus/padm export JAVA_HOME=/app/java/java8 export PATH=$PATH:$JAVA_HOME/bin/ export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar export Finalbackupfiles=5 export DeleteDate=3 PATH=$PATH:$HOME/bin export PATH echo " > JAVA_HOME=" $JAVA_HOME echo " > Final Backup File count=" $Finalbackupfiles echo " > DeleteDate=" $DeleteDate "day before" echo " > WEBROOT=" $WEBROOT echo echo '1. Backup & Stop' export NOW=`date +%Y%m%d` export OLDDAY=$((NOW -$DeleteDate)) export NOWTIME=`date +%H%M` echo ' > Today = ' $NOW$NOWTIME cd $WEBROOT find $WEBROOT -xdev | grep -v 'nas' > $WEBROOT/achiving.list tar -cf /data/homeplus/backup/homeplus-club-admin/homeplus-club-admin-web/$NOW$NOWTIME.tar -T $WEBROOT/achiving.list echo ' > Backup file : ' /data/homeplus/backup/homeplus-club-admin/homeplus-club-admin-web/$NOW$NOWTIME.tar echo '2. Delete ' $DeleteDate ' day ago = ' $OLDDAY ', but must remain ' $Finalbackupfiles ' files on the backup folder' Totalbackupfiles=`find /data/homeplus/backup/homeplus-club-admin/homeplus-club-admin-web/ -name "*.tar" | wc -l` echo ' > Total backupfiles(all files) = ' $Totalbackupfiles echo ' > Final backup files count = ' $Finalbackupfiles Targetdeletebackupfiles=`expr $Totalbackupfiles - $Finalbackupfiles` echo ' > Total backup files - Final backup files =' $Targetdeletebackupfiles BackupAllFiles=(`find /data/homeplus/backup/homeplus-club-admin/homeplus-club-admin-web/ -name "*.tar" -mtime +$DeleteDate -printf "%f\n" | sort -n`) cnt=1 echo ' > ' $DeleteDate ' day before delete target file list' for i in "${BackupAllFiles[@]}" do if [ $Targetdeletebackupfiles -ge $cnt ] then echo " " $i " , " $cnt " DELETEed !" rm /data/homeplus/backup/homeplus-club-admin/homeplus-club-admin-web/$i else echo " " $i " , " $cnt " SKIPed !" fi let cnt=cnt+1 done echo '3. Delete Web ROOT' cd $WEBROOT ls $WEBROOT | grep -v nas | grep -v export | grep -v achiving.list | grep -v somethingspecial | xargs rm -rf echo ' > Check Web ROOT = '$WEBROOT echo ' > list ' `ls $WEBROOT` echo '4. Copy tar to '$WEBROOT echo ' > cp OOT-jar.tar.gz to '$WEBROOT cp /data/scm/homeplus-club-admin/homeplus-club-admin-web/target/ROOT-jar.tar.gz $WEBROOT echo '5. Decompress TAR.GZ' echo ' > tar -zxvf '$WEBROOT'/ROOT-jar.tar.gz' cd $WEBROOT tar -zxf $WEBROOT/ROOT-jar.tar.gz -C $WEBROOT/ --strip-components=1 echo '6. Clear ' echo ' > Delete ROOT-jar.tar.gz and achiving.list in Web ROOT' cd $WEBROOT rm -rf $WEBROOT/ROOT-jar.tar.gz rm -rf $WEBROOT/achiving.list echo echo '##### FINISH DEPLOY #####' echo 'Bye'