GNU/Linux >> Belajar Linux >  >> Cent OS

Cara mengatur server SVN di CentOS

Tutorial ini menjelaskan cara mengatur dan menggunakan server repositori SVN di CentOS. Sebelum saya mulai, izinkan saya menjelaskan apa yang sebenarnya diwakili oleh SVN dan untuk apa SVN digunakan. SVN sebenarnya adalah singkatan dari SubVersion yang telah dibuat oleh pengembang perangkat lunak Apache. Ini memungkinkan Anda untuk membuat dan memelihara repositori Anda sendiri dan memberikan hak akses yang terperinci kepada pengguna khusus.

Ini sangat efektif untuk mengontrol versi file, dokumen, atau folder. Ini sangat berguna untuk setiap grup atau tim yang ingin memulai proyek perangkat lunak mereka sendiri.

1. Catatan Awal

Untuk tutorial ini, saya menggunakan CentOS 6.4 dalam versi 32bit. Hasil akhirnya akan menunjukkan kepada Anda bagaimana klien khusus dapat mengelola untuk mengakses repositori SVN menggunakan platform sistem operasi apa pun.


2. Instalasi SVN

Untuk memulai dengan server SVN baru, kita perlu menginstal paket-paket tertentu. Paket-paket yang terkait adalah Apache httpd, mod_dav_svn dan Subversion. Paket HTTPD diperlukan sebagai layanan server web untuk proses ini.

Karena tutorial ini menggunakan sistem operasi CentOS, kami akan mengambil paket dari repositori yum. Anda dapat menggunakan paket lain seperti nginx, lighttpd, atau layanan server web yang sudah dikenal untuk menggantikan httpd jika Anda mau. Berikut langkah-langkahnya:

ifconfig
[[email protected] ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:61:E4:88
inet addr:192.168.43.101 Bcast:192.168.43.255 Mask:255.255.255.0
inet6 addr:fe80::a00:27ff:fe61:e488/64 Cakupan:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4640 error:0 dijatuhkan:0 kelebihan:0 bingkai:0
Paket TX:6845 kesalahan:0 dijatuhkan:0 kelebihan:0 pembawa:0
tabrakan:0 txqueuelen:1000
RX byte:444461 (434.0 KiB ) TX byte:549473 (536,5 KiB)
lo Link encap:Loopback Lokal
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr:::1/128 Cakupan:Host
UP LOOPBACK MENJALANKAN MTU:16436 Metrik :1
Paket RX:2125 kesalahan:0 dijatuhkan:0 kelebihan:0 frame:0
Paket TX:2125 kesalahan:0 dijatuhkan:0 kelebihan:0 pembawa:0
tabrakan:0 txqueuelen :0
RX byte:186888 (182,5 KiB) TX byte:186888 (182,5 KiB)
yum install -y httpd
[[email protected] ~]# yum install -y httpd
Plugin yang dimuat:refresh-packagekit, keamanan
Repositori 'OEL64' tidak memiliki nama dalam konfigurasi, menggunakan id
Menyiapkan Proses Instal
Menyelesaikan Dependensi
--> Menjalankan pemeriksaan transaksi
---> Paket httpd.i686 0:2.2.15-26.0.1.el6 akan diinstal
--> Penyelesaian Ketergantungan Selesai
Ketergantungan Terselesaikan
=============================================================================================================
Ukuran Repositori Versi Paket Arch
==============================================================================================================
Instalasi:
httpd i686 2.2. 15-26.0.1.el6 OEL64 825rb
Ringkasan Transaksi
===============================================================================================================
Instal 1 Paket
Total ukuran unduhan:825 k
Ukuran terpasang:2,8 M
Paket Pengunduhan:
Menjalankan rpm_check_debug
Menjalankan Uji Transaksi
Uji Transaksi Berhasil
Berjalan Transaksi
Pemasangan :httpd-2.2.15-26.0.1.el6.i686 1/1
Memverifikasi :httpd-2.2.15-26.0.1.el6.i686 1/1
Terpasang:
httpd.i686 0:2.2.15-26.0.1.el6
Selesai!
yum install -y subversion
[[email protected] ~]# yum install -y subversion
Plugin yang dimuat:refresh-packagekit, keamanan
Repositori 'OEL64' tidak memiliki nama dalam konfigurasi, menggunakan id
Menyiapkan Proses Instal
Menyelesaikan Dependensi
--> Menjalankan pemeriksaan transaksi
---> Paket subversion.i686 0:1.6.11-7.el6 akan diinstal
--> Selesai Resolusi Ketergantungan
Ketergantungan Terselesaikan
=============================================================================================================
Ukuran Repositori Versi Paket Arch
==============================================================================================================
Instalasi:
Subversion i686 1.6. 11-7.el6 OEL64 2.2 J
Ringkasan Transaksi
===============================================================================================================
Instal 1 Paket
Total ukuran unduhan:2,2 M
Ukuran terpasang:11 M
Paket Pengunduhan:
Menjalankan rpm_check_debug
Menjalankan Uji Transaksi
Uji Transaksi Berhasil
Berjalan Transaksi
Pemasangan :subversion-1.6.11-7.el6.i686 1/1
Memverifikasi :subversion-1.6.11-7.el6.i686 1/1
Terpasang:
subversion.i686 0:1.6.11-7.el6
Selesai!
yum install -y mod_dav_svn
[[email protected] ~]# yum install -y mod_dav_svn
Plugin yang dimuat:refresh-packagekit, keamanan
Repositori 'OEL64' tidak memiliki nama dalam konfigurasi, menggunakan id
Menyiapkan Proses Instal
Menyelesaikan Dependensi
--> Menjalankan pemeriksaan transaksi
---> Paket mod_dav_svn.i686 0:1.6.11-7.el6 akan diinstal
--> Selesai Resolusi Ketergantungan
Ketergantungan Terselesaikan
=============================================================================================================
Ukuran Repositori Versi Paket Arch
==============================================================================================================
Instalasi:
mod_dav_svn i686 1.6. 11-7.el6 OEL64 79 k
Ringkasan Transaksi
===============================================================================================================
Instal 1 Paket
Total ukuran unduhan:79 k
Ukuran terpasang:161 k
Paket Pengunduhan:
Menjalankan rpm_check_debug
Menjalankan Uji Transaksi
Uji Transaksi Berhasil
Berjalan Transaksi
Pemasangan :mod_dav_svn-1.6.11-7.el6.i686 1/1
Memverifikasi :mod_dav_svn-1.6.11-7.el6.i686 1/1
Terpasang:
mod_dav_svn.i686 0:1.6.11-7.el6
Selesai!


3. Konfigurasi SVN

Hebat, sekarang bagian instalasi sudah selesai. Selanjutnya, kita akan bergerak maju pada bagian konfigurasi. Pertama, mari buat direktori khusus untuk penggunaan repositori SVN. Ini adalah proses opsional tetapi ini adalah praktik yang baik ketika menerapkan untuk kelompok skala yang lebih besar. Berikut langkah-langkahnya:

mkdir /data/svn

Sekarang kita akan membuat direktori repositori pertama kita, saya beri nama repo1 . Karena klien akan dapat mengakses repositori melalui browser atau alat klien SVN nanti, kami akan memberikan kepemilikan direktori ke Apache karena itu adalah pemilik layanan server web. Berikut langkah-langkahnya:

svnadmin create /data/svn/repo1
chown -R apache:apache /data/svn/repo1

Setelah selesai, Anda akan melihat bahwa beberapa folder dan file terkait akan dibuat secara default di bawah direktori repositori baru kami.

cd /data/svn/repo1
ls
[[email protected] repo1]# ls
conf db format hooks locks README.txt


Sekarang kita mengedit file konfigurasi untuk memenuhi kebutuhan kita. Pertama, kita akan mengedit file konfigurasi svnserver.conf untuk menerima hak istimewa terkait yang akan kita tetapkan pada pengguna yang diberikan. Berikut langkah-langkahnya:

cd conf/
ls
[[email protected] conf]# ls
authz passwd svnserve.conf
vi svnserve.conf
[umum]
anon-access =none
auth-access =tulis
password-db =passwd
authz-db =authz

Kemudian buat file baru bernama passwd yang akan berisi daftar pengguna untuk repositori SVN. Berikut langkah-langkahnya:

htpasswd -c /data/svn/repo1/conf/passwd jay
[[email protected] conf]# htpasswd -c /data/svn/repo1/conf/passwd jay
Kata sandi baru:
Ketik ulang kata sandi baru:
Menambahkan kata sandi untuk pengguna jay
[[email protected] conf]# cat passwd
jay:14hCNCmBZY/qA

Selesai, kami telah berhasil membuat pengguna untuk penggunaan repositori SVN. Mari buat 2 pengguna lagi untuk mengakses repositori SVN. Berikut langkah-langkahnya:

htpasswd /data/svn/repo1/conf/passwd fikri
[[email protected] conf]# htpasswd /data/svn/repo1/conf/passwd fikri
Kata sandi baru:
Ketik ulang kata sandi baru:
Menambahkan kata sandi untuk pengguna fikri
htpasswd /data/svn/repo1/conf/passwd farid
[[email protected] conf]# htpasswd /data/svn/repo1/conf/passwd farid
Sandi baru:
Ketik ulang sandi baru:
Menambahkan sandi untuk pengguna farid
[[email protected] conf]# cat passwd
jay:14hCNCmBZY/qA
fikri:/hlooqJMfYLkw
farid:P7Zvu6B3HyFGo


Selesai, sekarang ada 3 pengguna yang terdaftar untuk menggunakan repositori SVN. Untuk praktik ini, saya ingin menunjukkan bagaimana kita dapat membatasi hak istimewa pengguna. Mari kita tetapkan hak istimewa untuk mengakses repositori repo1. Untuk melakukan ini, kita perlu mengedit file konfigurasi authz. Berikut langkah-langkahnya:

vi authz
[repo1:/]
farid =r
fikri =rw
* =

Berdasarkan konfigurasi di atas, kami telah menetapkan hak istimewa yang berbeda untuk 3 pengguna yang kami buat sebelumnya. Kami menugaskan pengguna FARID untuk memiliki hak istimewa BACA HANYA, FIKRI untuk memiliki hak istimewa BACA TULIS dan JAY atau orang lain untuk tidak memiliki hak istimewa apa pun. Berarti nanti dalam pengujian saya akan menunjukkan kepada Anda bahwa pengguna JAY tidak akan dapat melihat file apa pun di repositori repo1.

Sekarang mari kita edit file konfigurasi layanan HTTPD.

vi /etc/httpd/conf/httpd.conf

Periksa apakah baris berikut ada untuk menyertakan file konfigurasi eksternal ke dalam file httpd.conf. Jika tidak ada, tambahkan di akhir file.

[.....]
Sertakan conf.d/*.conf
[.....]

Selanjutnya kita pergi ke direktori conf.d untuk melakukan beberapa perubahan pada file konfigurasi terkait. Anda akan melihat bahwa sudah ada file Subversion.conf. Edit file agar repositori tersedia untuk dilihat di browser Berikut langkah-langkahnya :-

cd /etc/httpd/conf.d/
ls
[[email protected] conf.d]# ls
mod_dnssd.conf README subversion.conf welcome.conf
vi subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so


DAV svn
Svnath /data/svnath/ repo1
Authtype Basic
AuthName "My Repository"
AuthzSVNAccessFile /data/svn/repo1/conf/authz
AuthUserFile /data/svn/repo1/conf/passwd
Memerlukan pengguna yang valid

Dua baris pertama memuat modul apache SVN, baris berikutnya mendefinisikan bahwa URL /repo1 menunjuk ke repositori yang kita buat.

Kami juga menetapkan bahwa pengguna tertentu memiliki hak baca/tulis pada item tertentu dalam repositori menggunakan AuthzSVNAccessFile. Daftar pengguna akan diambil dari file /data/svn/repo1/conf/passwd.

Sekarang restart server HTTPD untuk memuat perubahan konfigurasi yang dibuat.

layanan httpd restart
[[email protected] conf.d]# layanan httpd restart
Menghentikan httpd:[ OK ]
Memulai httpd:[ OK ]


4. Tahap Pengujian SVN

Mari kita periksa apakah konfigurasi yang kita buat sudah sesuai dengan tujuan atau tidak. Untuk tahap pengujian, saya akan menggunakan 2 mesin klien yang berbeda. Saya akan menggunakan Microsoft Windows dan Desktop Linux CentOS 6.4.

Pertama, saya akan membuka mesin Linux CentOS 6.4 dan memeriksa repositori ke sistem lokal. Sebagai klien Linux, kita perlu menginstal paket Subversion untuk terhubung ke repositori SVN.

yum install -y subversion 
[[email protected] ~]# yum install -y subversion 
Plugin yang dimuat:refresh-packagekit, keamanan
Repositori 'OEL64' tidak memiliki nama dalam konfigurasi, menggunakan id
Menyiapkan Proses Instal
Menyelesaikan Dependensi
--> Menjalankan pemeriksaan transaksi
---> Paket subversion.i686 0:1.6.11-7.el6 akan diinstal
--> Selesai Resolusi Ketergantungan
Ketergantungan Terselesaikan
=============================================================================================================
Ukuran Repositori Versi Paket Arch
==============================================================================================================
Instalasi:
Subversion i686 1.6. 11-7.el6 OEL64 2.2 J
Ringkasan Transaksi
===============================================================================================================
Instal 1 Paket
Total ukuran unduhan:2,2 M
Ukuran terpasang:11 M
Paket Pengunduhan:
--------------------- -------------------------------------------------- ---------------------------------------
Total 70 MB/s | 2.2 MB 00:00
Menjalankan rpm_check_debug
Menjalankan Uji Transaksi
Uji Transaksi Berhasil
Menjalankan Transaksi
Menginstal :subversion-1.6.11-7.el6.i686 1/ 2
Memverifikasi :Subversion-1.6.11-7.el6.i686 2/2
Terpasang:
subversion.i686 0:1.6.11-7.el6
Selesai!

mkdir repo_client
svn co http://192.168.43.101/repo1 repo_client
[[email protected] ~]# mkdir repo_client
[[email protected] ~]# svn co http://192.168.43.101/repo1 repo_client
Autentikasi ranah: Repositori Saya
Kata Sandi untuk 'fikri':
------------------------------------------------ ------------------------
PERHATIAN! Kata sandi Anda untuk ranah autentikasi:
 Gudang Saya
hanya dapat disimpan ke disk yang tidak terenkripsi! Anda disarankan untuk mengonfigurasi
sistem Anda sehingga Subversion dapat menyimpan sandi terenkripsi, jika
memungkinkan. Lihat dokumentasi untuk detailnya.
Anda dapat menghindari munculnya peringatan ini di masa mendatang dengan menyetel nilai
opsi 'store-plaintext-passwords' ke 'yes' atau 'no' di
'/root/.subversion/ server'.
-------------------------------------------- ----------------------------
Simpan sandi tidak terenkripsi (ya/tidak)? ya
Memeriksa revisi 0.
[[email protected] ~]# cd repo_client/
[[email protected] repo_client]# ls -a
. .. .svn

Bagus sekali! Kami telah berhasil melakukan checkout repositori dari server SVN kami menggunakan pengguna fikri. Sekarang, untuk memeriksa apakah pengguna ini memiliki hak istimewa BACA dan TULIS, kita akan membuat folder di dalam direktori repositori.

cd repo_client/
svn mkdir first_dir

Dan kemudian komit perubahan kembali ke repositori:

svn commit -m "Folder pertama saya"

Anda akan melihat ini:

Revisi berkomitmen 1.

Yang berarti komit kami berhasil.


Kerja bagus! Kami telah berhasil membuat folder di dalam direktori repositori dan mengkomitnya.

Sekarang mari kita uji ini pada mesin Microsoft Windows. Jelajahi URL repositori melalui browser firefox. Anda dapat menggunakan salah satu browser favorit Anda untuk mengujinya. Setelah URL http://192.168.43.101/repo1 telah dimasukkan di bidang browser, maka akan muncul jendela otorisasi seperti di bawah ini:

Login dengan pengguna JAY. Saya akan berasumsi bahwa pengguna ini tidak akan dapat mengakses halaman karena dia bukan anggota grup istimewa.

Bagus, sekarang mari kita buat tes akhir untuk tutorial ini. Mari gunakan mesin Microsoft Windows sebagai klien SVN. Untuk melakukan ini, kita harus menginstal perangkat lunak klien SVN, untuk kasus ini, saya akan menggunakan TortoiseSVN . Anda dapat mendownloadnya di sini atau menggunakan salah satu klien SVN yang Anda kenal.

Setelah terinstal, buat folder baru di mesin Windows Anda dan beri nama sebagai testSVN.


Kemudian klik kanan pada folder tersebut, Anda akan melihat bahwa ada link untuk SVN CheckOut sekarang (jika Anda tidak melihat link, restart Windows). Klik "SVN Checkout" untuk melanjutkan.

Setelah diklik, akan muncul kotak popup seperti di bawah ini. Masukkan repositori server SVN di bawah bidang URL lalu klik OK.

Kotak munculan akan ditampilkan yang meminta Anda memasukkan nama pengguna dan sandi untuk autentikasi. Untuk kasus ini, kami akan menggunakan pengguna FARID untuk melanjutkan.

Setelah selesai, kotak pop-up akan menunjukkan bahwa pembayaran repositori SVN telah selesai. Dari sini, kita dapat menyimpulkan bahwa pengguna FARID memiliki hak istimewa untuk MEMBACA dari repositori.

Anda akan melihat bahwa folder yang dibuat sebelumnya dari pengguna FIKRI ada di direktori testSVN Anda.

Untuk menyelesaikan tes. Mari kita uji bahwa pengguna FARID harus memiliki akses HANYA BACA. Untuk melakukan itu, mari kita masuk ke dalam folder FIRST_DIR dan membuat folder lain, saya menyebutnya SECOND_DIR

Setelah dibuat, klik kanan pada folder dan arahkan kursor ke TortoiseSVN, Anda akan melihat ada beberapa pilihan yang terdaftar di sana. Untuk melanjutkan, klik Tambah tombol. Tombol ini akan menambahkan folder yang kita buat ke repositori svn lokal.

Akan muncul kotak popup seperti di bawah ini, klik OK untuk melanjutkan.

Setelah selesai, akan muncul pesan popup seperti di bawah ini. Sekarang Anda telah berhasil membuat folder di repositori klien Anda.

Meskipun folder telah berhasil dibuat dan ditambahkan secara lokal, folder tersebut belum disinkronkan ke server SVN, Oleh karena itu, pengguna lain dari mesin lain tidak akan dapat melihat folder yang baru saja kita buat. Simpan dan komit folder sekarang. Untuk melakukannya, klik kanan pada folder dan klik SVN Commit sesuai tangkapan layar di bawah ini.


Kotak pop-up seperti di bawah ini akan ditampilkan untuk meminta Anda mengonfirmasi beberapa detail. Ketik komentar opsional apa pun, lalu klik OK untuk melanjutkan.

Kotak otorisasi akan muncul untuk meminta nama pengguna login. Ketik sebagai pengguna FARID dan lanjutkan.

Setelah selesai, Anda akan ditampilkan kesalahan yang menyatakan bahwa Anda dilarang melakukan perubahan. Yang kami harapkan sebagai pengguna farid hanya memiliki hak istimewa Read-Only.

Selamat! Sekarang kami telah menyiapkan server SVN pertama kami dan berhasil mengonfigurasi hak istimewa yang tepat pada batasan pengguna tertentu.


Cent OS
  1. Cara Setup SysLog Server di CentOS 7 / RHEL 7

  2. Cara Setup Server NFS di CentOS 7 / RHEL 7

  3. Cara mengatur replikasi MySQL di CentOS

  1. Cara mengatur server SFTP di CentOS

  2. Cara Mengatur Server SVN di CentOS, RHEL &Fedora

  3. Bagaimana cara Setup Server NTP di CentOS?

  1. Cara Memasang &Mengatur Server Mumble {Murmur} di Linux CentOS 7

  2. Cara Setup Server FTP dengan VSFTPD di CentOS 7

  3. Cara Setup server proxy squid di CentOS/RHEL 7