Discussion:
[rancid] svn, apache probably a config question?
Thomison, Lee
2010-04-13 00:34:13 UTC
Permalink
I am having trouble using subversion with rancid to look at configurations using apache. I have the pertinent config info posted at the bottom of this note. Thanks in Advance!

I can check a repository out as a file:///

$ > svn co file:///home/rancid/CVS q
A q/mlpems
A q/mlpems/router.db
A q/mlpems/configs
A q/mlpems/configs/fepts01
A q/mlpems/configs/fepts11
A q/mlpems/configs/fepts02
A q/mlpems/configs/fepts12
A q/mlpems/configs/mlpcomm1c
A q/mlpems/configs/mlpcomm2c
A q/mlpems/configs/mlpcomm1d
A q/mlpems/configs/mlpcomm2d
A q/mlpems/configs/sec-ts01
A q/mlpems/configs/sec-ts02
A q/mlpems/configs/sec-ts11
A q/mlpems/configs/sec-ts12
A q/mlpems/configs/mlpscada1a
A q/mlpems/configs/mlpfw1
A q/mlpems/configs/mlpscada2a
A q/mlpems/configs/mlpscada1b
A q/mlpems/configs/mlpfw2
A q/mlpems/configs/mlpscada2b
Checked out revision 21.
$ >

but if I try to use http:

$ > svn co http://localhost/rancid q
svn: PROPFIND request failed on '/rancid'
svn: Could not open the requested SVN filesystem
$ >

I'm sure it's something silly, but at a loss. Any suggestions?


/etc/rancid/rancid.conf:

<code>
BASEDIR=/home/rancid; export BASEDIR
PATH=/usr/libexec/rancid:/usr/bin:/usr/sbin:/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin; export PATH
# Location of the CVS/SVN repository. Be careful changing this.
CVSROOT=$BASEDIR/CVS; export CVSROOT
# Location of log files produced by rancid-run(1).
LOGDIR=$BASEDIR/logs; export LOGDIR
#
# Select which RCS system to use, "cvs" (default) or "svn". Do not change
# this after CVSROOT has been created with rancid-cvs. Changing between these
# requires manual conversions.
RCSSYS=svn; export RCSSYS
</code>

/etc/httpd/conf.d/subversion.conf:

<code>
$ cat subversion.conf

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

<Location /rancid>

DAV svn
SVNPath /home/rancid/CVS

</Location>

</code>


<code>
$ > getfacl /home/rancid
getfacl: Removing leading '/' from absolute path names
# file: home/rancid
# owner: rancid
# group: netadm
user::rwx
group::rwx
other::---
default:user::rwx
default:user:apache:rwx
default:group::rwx
default:group:apache:rwx
default:mask::rwx
default:other::---

$ > getfacl /home/rancid/CVS
getfacl: Removing leading '/' from absolute path names
# file: home/rancid/CVS
# owner: rancid
# group: netadm
user::rwx
group::r-x
other::---
default:user::rwx
default:user:apache:rwx
default:group::r-x
default:group:apache:rwx
default:mask::rwx
default:other::---

</code>

<code>

$ > httpd -t -D DUMP_MODULES
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
auth_digest_module (shared)
authn_file_module (shared)
authn_alias_module (shared)
authn_anon_module (shared)
authn_dbm_module (shared)
authn_default_module (shared)
authz_host_module (shared)
authz_user_module (shared)
authz_owner_module (shared)
authz_groupfile_module (shared)
authz_dbm_module (shared)
authz_default_module (shared)
ldap_module (shared)
authnz_ldap_module (shared)
include_module (shared)
log_config_module (shared)
logio_module (shared)
env_module (shared)
ext_filter_module (shared)
mime_magic_module (shared)
expires_module (shared)
deflate_module (shared)
headers_module (shared)
usertrack_module (shared)
setenvif_module (shared)
mime_module (shared)
dav_module (shared)
status_module (shared)
autoindex_module (shared)
info_module (shared)
dav_fs_module (shared)
vhost_alias_module (shared)
negotiation_module (shared)
dir_module (shared)
actions_module (shared)
speling_module (shared)
userdir_module (shared)
alias_module (shared)
rewrite_module (shared)
proxy_module (shared)
proxy_balancer_module (shared)
proxy_ftp_module (shared)
proxy_http_module (shared)
proxy_connect_module (shared)
cache_module (shared)
disk_cache_module (shared)
file_cache_module (shared)
mem_cache_module (shared)
cgi_module (shared)
version_module (shared)
mysql_auth_module (shared)
authz_ldap_module (shared)
perl_module (shared)
php5_module (shared)
proxy_ajp_module (shared)
python_module (shared)
ssl_module (shared)
dav_svn_module (shared)
authz_svn_module (shared)
Syntax OK
$ >

</code>
Alex DEKKER
2010-04-13 17:21:55 UTC
Permalink
Post by Thomison, Lee
<code>
$ cat subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /rancid>
DAV svn
SVNPath /home/rancid/CVS
Does the CVS/ directory exist? Does an SVN repo really use 'CVS/' to keep
itself in?
Post by Thomison, Lee
</Location>
alexd
john heasley
2010-04-13 18:06:47 UTC
Permalink
Post by Alex DEKKER
Post by Thomison, Lee
<code>
$ cat subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /rancid>
DAV svn
SVNPath /home/rancid/CVS
Does the CVS/ directory exist? Does an SVN repo really use 'CVS/' to keep
itself in?
it doesnt, but the user could have placed the svn repository anywhere.

i have no experience accessing svn through apache, but as alex suggests,
check the permissions on the repository for the apache process owner,
that svn ls file:///home/rancid/CVS works, that apache isn't chroot'ed
or similarly have a modified path, etc. you might check the svn "redbook"
for configuration hints.
Thomison, Lee
2010-04-13 18:16:57 UTC
Permalink
Turns out that explicitly setting the group ownership of /home/rancid to 'apache' makes everything work as expected. Apparently just setting an acl for apache isn't good enough.

I'm not sure this is the right solution; in fact it's probably not. ACL's should be good enough. But I'd guess this is more an apache/svn_dav issue than a rancid issue. And I need to move on to other things.
Loading...