* VM 세팅이 완료되었다 하여.. 프로그램들 설치를 하려고 보니./ 에러가 발생.
[root@localhost ~]# yum list subversion
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 알 수 없는 오류"
* VM 생성 담당자에게 확인하니.. 뭔 말인지 모르지만..해결..;;
내부망 VM으로 외부 repository 서버와 통신되지 않기 때문에 리눅스 ISO로 내부 repository 설정 하였습니다.
ㄱ. Subversion 설치
ㄱ.1. 설치 할 수 있는 Subversion 확인. yum list subversion
[root@localhost /]# yum list subversion
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Installed Packages
subversion.x86_64 1.7.14-14.el7 @anaconda
ㄱ.2. Subversion 설치 yum install -y subversion * '3. 설치확인' 후 미설치상태인 경우.
[root@localhost /]# yum install -y subversion
ㄱ.3. 설치확인 rpm -qa | grep subversion 혹은 svn --version
[root@localhost /]# rpm -qa | grep subversion
subversion-libs-1.7.14-14.el7.x86_64
subversion-1.7.14-14.el7.x86_64
[root@localhost /]# svn --version
svn, 버젼 1.7.14 (r1542130)
Apr 11 2018, 02:40:28에 컴파일 됨
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
..
ㄴ. Subversion 설정
ㄴ.1. 저장할 폴더(svn_repos) 생성 mkdir svn_repos
[root@localhost /]# cd /
[root@localhost /]# mkdir svn_repos
[root@localhost /]# ls
ISO boot dev home lib64 mnt proc run srv sys usr
bin data etc lib media opt root sbin svn_repos tmp var
ㄴ.2. svnserve 파일에 방금 생성한 svn 저장소를 관리할 폴더를 지정.
* /etc/sysconfig/svnserve 파일을 vi로 열고 수정합니다.
(이 파일을 생성해주어야 service svnserve start/stop/restart가 가능하다고 합니다)
[root@localhost /]# cd /etc/sysconfig
[root@localhost sysconfig]# vi svnserve
[root@localhost sysconfig]# cat svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
OPTIONS="--threads --root /svn_repos"
ㄴ.3. Subversion 서비스 포트 방화벽 해제 설정 * 개발서버에 firewall 미실행중..
* Subversion의 서비스 포트를 리눅스 방화벽에서 제외 ( SVN의 기본 포트: 3960 )
* firewall 관련 : https://avaiable.tistory.com/153
sudo firewall-cmd --permanent --zone=public --add-port=3690/tcp
sudo firewall-cmd --reload
[root@localhost sysconfig]# sudo firewall-cmd --permanent --zone=public --add-port=3690/tcp
FirewallD is not running
[root@localhost sysconfig]# firewall-cmd --state
not running
[root@localhost sysconfig]#
ㄴ.4. Subversion 실행
[root@localhost sysconfig]# ps -ef | grep svn
root 60907 60381 0 13:35 pts/1 00:00:00 grep --color=auto svn
[root@localhost sysconfig]# systemctl start svnserve.service
[root@localhost sysconfig]# ps -ef | grep svn
root 61221 1 0 14:08 ? 00:00:00 /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid --threads --root /svn_repos
root 61223 60381 0 14:08 pts/1 00:00:00 grep --color=auto svn
[root@localhost sysconfig]# netstat -anp | grep svnserve
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 61221/svnserve
systemctl start svnserve.service # 실행
systemctl stop svnserve.service # 중지
systemctl restart svnserve.service # 재실행
ps -ef | grep svn # 서브버전의 프로세스의 동작여부를 확인
netstat -anp | grep svnserve # 서브버전의 서비스 포트를 확인(기본적으로 3690 포트 사용)
ㄷ. Subversion 저장소 관리
ㄷ.1. Subversion에 저장소 생성 * svn repos 경로에서 저장소를 생성합니다.
[root@localhost sysconfig]# cd /svn_repos
[root@localhost svn_repos]# svnadmin create --fs-type fsfs AAA
[root@localhost svn_repos]# svnadmin create --fs-type fsfs BBB
[root@localhost svn_repos]# svnadmin create --fs-type fsfs CCC
[root@localhost svn_repos]# svnadmin create --fs-type fsfs DDD
[root@localhost svn_repos]# ls
AAA BBB CCC DDD
[root@localhost svn_repos]# cd AAA
[root@localhost AAA]# ls
README.txt conf db format hooks locks
[root@localhost AAA]# cd conf
[root@localhost conf]# ls
authz passwd svnserve.conf
TBS(저장소명)
|- conf * svn 설정파일 폴더
|- authz : 접근 계정 권한
|- passwd : 접근할 계정정보
|- svnserve.conf : 접근한을 관리하는 설정파일
********************************************************************
** ㄷ.2 ~ ㄷ.4 : 각각 저장소 별로 세팅 합니다. START
ㄷ.2. 저장소 접근 권한 설정 * 저장소명/conf/svnserve.conf
anon-access, auth-access, password-db, authz-db 항목 주석을 제거, anon-access 수정
[root@localhost AAA]# cd conf
[root@localhost conf]# ls
authz passwd svnserve.conf
[root@localhost conf]# vi authz
[root@localhost conf]# vi svnserve.conf
[root@localhost conf]# cat svnserve.conf
### This file controls the configuration of the svnserve daemon, if you
### ..
### ..
[general]
### The anon-access and auth-access options control access to the
### ..
### ..
anon-access = none
auth-access = write
### ..
### ..
password-db = passwd
### The authz-db option controls the location of the authorization
### ..
### ..
authz-db = authz
### This option specifies the authentication realm of the repository.
### ..
### ..
realm = THE AAA SVN
### 이하 수정없음
[sasl]
### 이하 수정 없음
ㄷ.3. 저장소에 접근할 계정(아이디/비번)정보 추가 * 저장소명/conf/passwd 파일을 열어 계정정보(아이디 = 비번) 추가합니다.
[root@localhost conf]# vi passwd
[root@localhost conf]# cat passwd
### This file is an example password file for svnserve.
### ..
[users]
karl = karl
edward = edward
ㄷ.4. 저장소에 접근할 계정정보 추가 * 저장소명/conf/authz 파일을 열어 계정정보 추가합니다.
[root@localhost conf]# pwd
/svn_repos/AAA/conf
[root@localhost conf]# vi authz
[root@localhost conf]# cat authz
### This file is an example authorization file for svnserve.
### ..
### ..
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r:q:q
# add TBS authz
[/]
* = r
root = rw
karl = rw
edward = rw
* = r #TBS저장소의 루트경로에 모든 사용자가 read 할수 있는 권한을 부여
root = rw #TBS 저장소의 루트경로에 root 계정은 read, write 권한 부여
admin = rw #TBS1저장소의 루트경로에 admin 계정은 read, write 권한 부여
** ㄷ.2 ~ ㄷ.4 : 각각 저장소 별로 세팅 합니다. END
********************************************************************
ㄷ.5. svnserve 데몬 재시작 service svnserve restart
[root@localhost conf]# systemctl restart svnserve.service
systemctl start svnserve.service # 실행
systemctl stop svnserve.service # 중지
systemctl restart svnserve.service # 재실행
ps -ef | grep svn # 서브버전의 프로세스의 동작여부를 확인
netstat -anp | grep svnserve # 서브버전의 서비스 포트를 확인(기본적으로 3690 포트 사용)
ㄷ.6. SVN 저장소 확인 svn list svn://ip 또는 도메인 주소/저장소명
[root@localhost conf]# svn list svn://127.0.0.1/AAA
[root@localhost conf]# svn info svn://127.0.0.1/AAA
[root@localhost conf]# svn info svn://127.0.0.1/BBB
[root@localhost conf]# svn info svn://127.0.0.1/CCC
[root@localhost conf]# svn info svn://127.0.0.1/DDD
더보기
* 첫 접속시
[root@localhost conf]# svn info svn://127.0.0.1/AAA
인증 영역(realm): AAA SVN REPO
'root'의 암호:
인증 영역(realm): AAA SVN REPO
사용자명:karl
'karl'의 암호:
-----------------------------------------------------------------------
주의! 인증정보 영역:
AAA SVN REPO
에 대한 당신의 비밀번호는 디스크에 암호화되어 저장되지 않습니다.
가능하면, 비밀번호를 암호화하여 저장하도록 설정을 바꾸십시오.
자세한 것은 문서를 참조하세요.
이 주의 문구를 다음에 보이지 않게 하려면, 'store-plaintext-passwords'의
설정을 'yes' 혹은 'no'로 지정하면 됩니다. 설정 파일은 다음과 같습니다.
'/root/.subversion/servers'
-----------------------------------------------------------------------
비밀번호를 평문으로 저장하겠습니까 (yes/no)?yes
경로: AAA
URL: svn://127.0.0.1/AAA
저장소 루트: svn://127.0.0.1/AAA
저장소 UUID: d***********
리비전: 0
노드 종류: 디렉토리
마지막 수정 리비전: 0
마지막 수정 일자: 2021-11-29 14:17:59 +0900 (2021-11-29, 월)
더보기
* 이후 접속시 ***********************************
[root@localhost conf]# svn list svn://127.0.0.1/AAA
[root@localhost conf]# svn info svn://127.0.0.1/AAA
경로: AAA
URL: svn://127.0.0.1/AAA
저장소 루트: svn://127.0.0.1/AAA
저장소 UUID: d***********
리비전: 0
노드 종류: 디렉토리
마지막 수정 리비전: 0
마지막 수정 일자: 2021-11-29 14:16:58 +0900 (2021-11-29, 월)
** SELinux가 활성화되어있는 경우, SVN 저장소 접근이 안됩니다.
[root@localhost conf]# sestatus
SELinux status: disabled
** 만약 활성화(enabled)되어있는 경우라면 /etc/selinux/config 파일을 열어 수정합니다.
[root@localhost conf]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# ..
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# ..
SELINUXTYPE=targeted
* 서버동작시 SVN 서비스 자동 실행하기 systemctl enable svnserve.service
[root@localhost conf]# systemctl enable svnserve.service
Created symlink from /etc/systemd/system/multi-user.target.wants/svnserve.service to /usr/lib/systemd/system/svnserve.service.
SVN 관리 심플 : https://eknote.tistory.com/2126