วันพฤหัสบดีที่ 27 มีนาคม พ.ศ. 2557

SVN บน CentOS และ Authen ผ่าน LDAP

รัน command linux จะใช้สิทธิ์ root หรือ sudo เอาก็ได้ ตามสะดวก แล้ว ถ้าใช้ yum อย่าลืมต่อเน็ตนะครับ

# yum install mod_dav_svn subversion

แก้ไข 3 ไฟล์ดังนี้

1. /etc/httpd/conf/httpd.conf

(เพิ่มลงล่างสุดของไฟล์)

<VirtualHost *:80>
    ServerAdmin root@localhost
    DocumentRoot /var/www/svn
    ServerName dev-server
    ErrorLog logs/dev-server-error_log
    CustomLog logs/dev-server-access_log common
</VirtualHost>


2. /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn
   SVNListParentPath on
   SVNAutoversioning on

   AuthType Basic
   AuthName "Subversion repositories"   
   AuthzLDAPAuthoritative off
   AuthBasicProvider ldap
   AuthLDAPURL "ldap://xxx.xxx.xxx.xxx:389/dc=pumbaa,dc=co,dc=th?uid?sub?(objectClass=*)"
   AuthLDAPBindDN "cn=root-dn,dc=pumbaa,dc=co,dc=th"
   AuthLDAPBindPassword "password"

   Require ldap-group cn=SM,ou=Groups,dc=pumbaa,dc=co,dc=th
   Require ldap-group cn=PG,ou=Groups,dc=pumbaa,dc=co,dc=th
   Require ldap-group cn=SA,ou=Groups,dc=pumbaa,dc=co,dc=th

   Require valid-user
   AuthzSVNAccessFile /etc/svn-access-control
</Location>


3. /etc/svn-access-control

[groups]

PM = pm1, pm2pm3
SA = user1, user2, user3, user4
DEV = dev1,dev2,dev3

[/]
* =

[repos:/]
@DEV = rw
@PM = r
@SA = r

[test:/]
pm1 = r
@DEV = rw

สร้าง Repository

# mkdir /var/www/svn

# cd /var/www/svn

# svnadmin create repos
# chown -R apache.apache repos
# chcon -R -t httpd_sys_content_t /var/www/svn/repos
# chcon -R -t httpd_sys_rw_content_t /var/www/svn/repos

สร้างโครง SVN (template)

# mkdir -p /tmp/svn-structure-template/{trunk,branches,releases}

# svn import -m 'Initial import' /tmp/svn-structure-template/ http://localhost/svn/repos/

ตัวอย่าง

repos ---> trunk
repos ---> branches
repos ---> releases

รีสตาทร์ Service กันเลย

# service httpd restart

เปิด browse IE , Firfox , Chrom

Address --- >  http://localhost/svn/repos

username = ใน ldap
password = ใน ldap

อาจจะใช้ client พวก TortoiseSVN หรือ ลง plugin ใน IDE ไปเลยครับ

ตัวอย่าง command

import project
svn import -m 'Initial import' project1 http://localhost/svn/eai/trunk/project1

check out
svn co http://localhost/svn/eai/trunk/project1 project1

export
svn export http://localhost/svn/eai/trunk/project1 project1

5 ความคิดเห็น:

  1. #Option 1 – Backup SVN Repository

    svnadmin dump /var/svn/myrepo > /backup/svn/myrepo.dump

    #Option 2 – Backup SVN with Gzip Compression

    svnadmin dump /var/svn/myrepo | gzip -9 > /backup/svn/myrepo.dump.gz

    #Option 3 = Restore (load) Svn Repository

    svnadmin create /var/svn/mynewrepo
    svnadmin load /var/svn/mynewrepo < /backup/svn/myrepo.dump

    ตอบลบ
  2. gunzip -c /home/userxxx/svn.dump.gz | svnadmin load /var/www/svn/repo

    ตอบลบ
  3. https://help.dreamhost.com/hc/en-us/articles/215465978-How-do-I-load-a-dump-file-into-my-Subversion-repository-

    ตอบลบ

  4. AllowOverride none
    # Allow open access:
    Require all granted


    /etc/httpd/conf/httpd.conf

    ตอบลบ