Enabling WebDav for CDN [Building Coda file system support] using CentOS 5.2 Linux

November 26, 2008 by InnerTechnical.com · Leave a Comment
Filed under: IT, Open Source Projects, Tech 

Many people have asked me about setting up WebDav to directly address a CDN repository as a /local/path directory. This requires Coda file system (Advanced NFS) support. This particular tutorial is directed at people who wish to use WebDav support for a CDN such as BitGravity (as in this example) on a Linux system. The particular flavor of Linux used in this tutorial is CentOS 5.2, so if you are using a different form of Linux the procedure is similar but will vary from distro to distro.

Install the Necessary Packages:

To access the necessary packages in Yum, the RPM repository needs to be up to date. I used the following commands to clean up Yum:

rpm -e yum-plugin-fastestmirror
yum clean all
yum install yum-metadata-parser yum-updatesd

yum install yum-plugin-fastestmirror

Once added, run the following installations:

yum install davfs2
yum install dkms
yum install dkms-fuse
yum install fuse
yum install fuse-davfs2

Verify that the Coda File System is Supported in the kernel:

For the WebDAV share to mount correctly the module for the Coda file system needs to be supported by the kernel. To test if it is supported run the following command command:

dmesg | grep -i coda

If the system returns an output, then everything should be fine, and the configuration of WebDAV can continue. However, if it responds with nothing then the kernel does not support coda. To overcome this obstacle the kernel source tree will need to be built so that the necessary coda files can be extracted.

Build the Kernel Source Tree and Add Coda Support

By building the kernel source tree the necessary files for coda file system support can be manually compiled, and then copied into the current kernel’s library. In this way you don’t have to rebuild your running kernel.

During the most of the build procedure it is critical that it be performed as a non-root user to maintain the necessary permissions.

>> As root user or su -  <<

yum install kernel-devel
yum install kernel-headers
yum install rpm-build
yum install redhat-rpm-config
yum install unifdef

>> Exit su – (or sudo to a non-root user) and continue with the following steps! <<

After installing the packages log into the non-root user and navigate to ~ (the $HOME directory), and create the directory for the source:

mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo ‘%_topdir %(echo $HOME)/rpmbuild’ > .rpmmacros

Type “uname -ar” to display the kernel version and then install the respective kernel source. For example:

rpm -i http://mirror.centos.org/centos/5/updates/SRPMS/kernel-2.6.18-92.1.18.el5.src.rpm 2> /dev/null

Now spec the kernel module version for this build with:

rpmbuild -bp –target=`uname -m` kernel-2.6.spec 2> prep-err.log | tee prep-out.log

After installing the kernel source tree navigate to the install location and start the build process:

cd ~/rpmbuild/BUILD/kernel-2.6.18/2.6.18.x86_64/
make oldconfig

Accept the default values [especially if you aren't sure].

make menuconfig

Browse the source tree menus to ‘File Systems’ –> ‘Network File Systems’ –> ‘Coda File System’. Type “m” for the value, which specifies modular support for coda.

Continue the build process with these commands:

make prepare
make modules_prepare
make M=fs/coda

With the build steps completed the fruits of labor can be plucked from the kernel source tree:
>> As the root user, or su – <<

cp ~/rpmbuild/BUILD/kernel-2.6.18/2.6.18.x86_64/fs/coda/coda.ko /lib/modules/2.6.18-53.1.6.el5/updates/

And at last, coda module installation can be initiated:

depmod -a

modprobe coda

Check that the module started correctly with :

lsmod | grep coda

Now we want to be sure the Coda module starts at boot time so add this line to /etc/modules.conf

probe coda

Configure WebDAV

Once all packages are installed navigate to /etc/davfs2 and edit two configuration files. The configuration for BitGravity’s WebDAV will be used as an example.

By default all the options are commented out on /etc/davfs2/davfs2.conf. For WebDAV to work properly for Deca’s setup the following lines need to be un-commented, and edited as such:

# General Options

# —————

dav_user        davfs2            # system wide config file only
dav_group     users             # system wide config file only

kernel_fs     coda

# WebDAV Related Options # ———————-

use_locks 0

# Debugging Options # —————–

debug most           # possible values: config, kernel, cache, http, xml,
#      httpauth, locks, ssl, httpbody, secrets, most

And add the following line to the Credential Line section of the secrets file:
[Adjust as per your own particular CDN. This line was for BitGravity but check with your CDN provider to be sure what your credentials are before proceeding.]

http://webdav.bitgravity.com/   userid@yourdomain.com  password

Next, make a directory for the WebDAV share to mount:

mkdir /davtest

Create dav2fs user:

useradd dav2fs [make sure you choose nologin, and no shell]

Check /etc/passwd to be sure the user dav2fs has no permissions on the system [/sbin/nologin should be the shell interpreter]:

davfs2:x:101:102:davfs2:/var/cache/davfs2:/sbin/nologin

Give the new user ownership of the WebDAV mount

chown -R dav2fs.users /davtest

The final file to edit is /etc/fstab, in which you will add a line like this:

http://webdav.bitgravity.com/       /davtest     davfs   uid=dav2fs,gid=users,dir_mode=755    0 0

To initiate the mount run:

mount -a

Test that you have everything correct with:

touch /davtest/test.txt
ls -l /davtest/test.txt

You can manually mount the share for troubleshooting purposes with:

mount.davfs -o dir_mode=755,uid=dav2fs,gid=users http://webdav.bitgravity.com/ /davtest

If there is a problem check /var/log/messages!

Network Installations

install021 300x225 Network Installations

Welcome to GENESYS NETWORKS

Genesys Networks is a Structured Cabling and Network Integration Corporation that specializes in the service, support, and design of “True Performance” networks.

Genesys Networks is one of the leading providers of data communications products and services, providing solutions for our customer’s Local Area Networks (LANs), Wide Area Networks end-to-end networking solutions with the technical expertise to design, implement, and maintain today’s networks.

Genesys provides complete management services including design, fulfillment, installation and maintenance. In addition,

Genesys offers a full line of premises wiring systems for single source procurement of both networking products and building infrastructure data cabling.

Genesys proudly offers the following services:

Certified Installations (WANs), and Premises Wiring Systems.

Certified Installers – Tremendous combined experience on the install crews.

Data Centers – Engineering, blueprint specifications, riser installations, rack and cable management.

Design & Installation

Network Integration

IP Telephony and other telecommunications services. Line terminations, cross connects and extensions. PBX, Digital PBX

Security Systems – Digital Smart Homes

Wireless Solutions – High speed point to point RF links, troposphere projection links, captive LAN, WAN


Please contact us using the form below, and an engineer will get back to you (usually within 48 hours) to discuss your needs! Please remember to double check your information before submitting it to ensure a rapid response!

  1. (required)
  2. (valid email required)
  3. (required)
  4. (required)
  5. (required)
  6. (required)
  7. (required)
  8. (required)
  9. cforms captcha.php?ts=3&c1=4&c2=5&ac=abcdefghijkmnpqrstuvwxyz23456789&i=i&w=115&h=25&c=000066&l=000066&f=font4.ttf&a1= 12&a2=12&f1=17&f2=19&b=1 Network InstallationsCaptcha
 

Services

We offer engineering, troubleshooting, design, private instruction, and consultation in the following areas:

* Linux Systems and Networks Administration
* Microsoft Networks Administration
* High Availability – Load Balancing and Cluster Nodes
* Network Engineering
* Network Security – Firewalls, Global ASA, Penetration Testing
* RF Engineering – Performance Reporting Only
* Electronics Engineering – Including prototyping
* Programming – Such as Perl, PhP, C, and many other types…
* eCommerce – Solutions and Integration
* Database Administration
* Server Administration – WWW, httpd, Apache, Proxies, HA, CAN, IIS, SQL
* CMS – Web Content Management Systems – Design and Integration
* Open Source Projects
* Data Mining – Data Object Orientation and Programming, Database Integration
* Business Process
* Cable Management
* Structured Cabling
* Fiber Optic Networks
* Ether Networks
* Microwave IP Networks, and P2P Microwave Links, Link Projections
* Project Management

Please contact us using the form below, and someone will get back to you (usually within 48 hours). Please include as much detail as possible, and make sure you leave accurate contact information so that we may get back to you promptly!

  1. (required)
  2. (valid email required)
  3. (required)
  4. (required)
  5. cforms captcha.php?ts=2&c1=4&c2=5&ac=abcdefghijkmnpqrstuvwxyz23456789&i=i&w=115&h=25&c=000066&l=000066&f=font4.ttf&a1= 12&a2=12&f1=17&f2=19&b=1 ServicesCaptcha