이전 글에서 오픈소스 라이선스 스캔도구, FOSSology를 소개하였는데요 : https://devocean.sk.com/internal/board/viewArticle.do?id=158882
여기서는 FOSSology를 사내 P.CL(Private Cloud)에 설치하는 방법에 대해 설명하려고 합니다.
사실, FOSSology에서 제공하는 Docker image(https://hub.docker.com/r/fossology/fossology/)를 이용하는 것이 가장 간단합니다. 그런데, P.CL에 설치하다보니까 DOCKER_HOST IP 충돌 이슈가 발생하더라구요. (누군가 이 부분 해결을 위한 팁을 주시면 고맙겠습니다. ^^)
그래서, 부득이 FOSSology build, Postgesql, PHP, Apache 등을 개별적으로 설치 및 설정해주는 방식으로 P.CL에서 설치하였습니다. FOSSology는 오픈소스로 공개되어 있기 때문에, 누구나 자체적으로 설치하여 운영할 수 있습니다. 아래의 설명이, 오픈소스 라이선스 스캔 도구가 필요하신 분들에게 도움이 되길 바라겠습니다.
P.CL 보안 정책 추가
P.CL에서는 보안정책을 추가해야 80포트 이용하여 web 접속이 가능하다.
- P.CL > 보안그룹 추가 : inboud > 0.0.0.0/0 > 80 port
- 보안 정책이 제대로 반영되었는지 Apache 설치 후 http://[ip] 로 확인 (참고 : https://blog.lael.be/post/1721)
|
// 설치
$ sudo yum install httpd
// 부팅 시 자동 실행 enable 및 적용여부 확인
$ sudo yum enable httpd.service
$ sudo systemctl list-unit-files --type=service | grep httpd
// httpd 시작 및 status 확인
$ sudo systemctl start httpd.service
$ sudo systemctl status httpd.service
|
SELinux 해제
(P.CL 보안 정책에 따라 SELinux 해제가 필요하지 않을 수도 있다.)
|
$ sudo vi /etc/sysconfig/selinux
...
SELINUX=disabled
$ sudo reboot
|
PHP upgrade
PHP 5.6으로 upgrade : https://www.zerostopbits.com/how-to-upgrade-php-5-4-to-php-5-6-on-centos-7-5-1804/
|
// php version 확인
$ php -v
// install the Remi and EPEL repositories
$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm
// Enable the Remi repository globally
$ sudo vi /etc/yum.repos.d/remi.repo
[remi]
...
enabled=1
[remi-php56]
...
enabled=1
// UPGRADE PHP 5.4 TO PHP 5.6
$ sudo yum -y upgrade php*
// 다시 version 확인
$ php -v
|
Get source code
|
$ wget https://github.com/fossology/fossology/archive/3.6.0.tar.gz
|
Install dependencies
|
// lsb package for centos7 설치
$ sudo yum install redhat-lsb
// composer 설치
$ sudo yum install composer
// dependencies 설치
$ tar xvfz 3.6.0.tar.gz
$ cd fossology-3.6.0
[fossology-3.6.0]$ sudo utils/fo-installdeps
|
Build FOSSology
(P.CL이 제공하는 서버에 이미 설치되어 있을 수 있다.)
|
// Development Tools 설치
$ sudo yum groupinstall 'Development Tools'
// make
[fossology-3.6.0]$ make
|
Install FOSSology
|
// Install & log 저장
[fossology-3.6.0]$ sudo make install 2>&1 | tee install.log
|
Postgresql 설정
https://github.com/fossology/fossology/wiki/Configuration-and-Tuning
|
// initdb
$ sudo postgresql-setup initdb
// postgresql.conf 편집
$ sudo vi /var/lib/pgsql/data/postgresql.conf
...
listen_addresses = '*'
// pg_hba.conf 편집
$ sudo vi /var/lib/pgsql/data/pg_hba.conf
...
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
// 부팅 시 시작되도록 postgreasql enable
$ sudo systemctl enable postgresql
// postgreasql 시작
$ sudo systemctl start postgresql
|
Intall 완료 후 추가 사항
|
// /var/log/fossology 생성
$ sudo mkdir /var/log/fossology
// Postinstall script 실행
$ sudo /usr/local/lib/fossology/fo-postinstall
|
PHP 설정
|
[fossology-3.6.0]$ sudo ./install/scripts/php-conf-fix.sh --overwrite
|
Apache 설정
(여기서는 단지 시험을 위한 운영이기 때문에 FOSSology 가이드인 repo alias를 사용하지 않고, Apache home directory 변경하는 방식으로 설정한다.)
Apache 설치 가이드 for CentOS 7 참고
|
// FOSSology가 설치되어 있는 경로 지정
$ sudo vi /etc/httpd/conf/httpd.conf
...
DocumentRoot "/usr/local/share/fossology/www/ui"
...
# Relax access to content within /var/www.
#
"/usr/local/share/fossology/www/ui">
...
# Further relax access to the default document root:
>
// httpd restart
$ sudo systemctl restart httpd
|
설치 테스트
|
// Postgresql 접속 확인
$ sudo psql -d fossology -U fossy
// fossology scheduler 동작 확인
$ sudo /usr/local/etc/fossology/mods-enabled/scheduler/agent/fo_scheduler -t
|
FOSSology start
|
// 부팅 시 시작되도록 fossology enable
$ sudo systemctl enable fossology
// fossology 시작
$ sudo systemctl start fossology
|
Browser에서 접속 확인
http://[ip address]
접속 실패 시 log 확인
|
// fossology log 확인
$ tail -f /var/log/fossology/fossology.log
// httpd log 확인
$ sudo tail -f /var/log/httpd/error_log
|
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.