Linux server scripting

We need a set of scripts for automating the installation and configuration of Linux servers for the hosting of Subversion ([url removed, login to view]) and Trac ([url removed, login to view]) services and WebDAV file storage. In addition, we require a set of scripts for managing user accounts on these servers (e.g. create, suspend, reactivate, delete).

Each user account will have their own Apache virtual-host which hosts their set of Subversion repositories, associated Trac projects and WebDAV files. End-user administration of these accounts will be via a Ruby-on-Rails web-application, which we will provide (the scripts just need to setup hosting and access to the application)

It is expected that this task should not be difficult for someone who is familiar with setting up and scripting Linux servers and Apache.

## Deliverables


* The target platform will be Xen VPS linux servers most likely running CentOS 4.4 or CentOS 5 (unless you can suggest a more appropriate target platform?).

* The scripts should be developed using a suitable standard Linux scripting language such as bash or perl (please recommend the language you would like to use) and be well-commented for readability and ease of maintenance.

* You will be provided with access to a Wiki where you will document how to use the scripts (e.g. how to setup a new server from a fresh OS install, how to create a new account, etc).

**We need the following 5 scripts developed:**

**1. Server initial setup script**

This script will take a vanilla CentOS installation and configure support for the required services. The expectation is that in order for us to create a fully working server from scratch, all we need to do is create a fresh CentOS server install and run the one setup script. The script will take care of the necessary software installations and configuration file changes accordingly.

The script needs to install and setup support for the following software and services:

* PHP 5.2.2 (or newer if available)

* Subversion 1.4.3 (or newer if available), consisting of

* Command line tools (svn, svnadmin, etc)

* Web-access using the Apache 'mod_dav_svn' module

* Ruby-on-Rails 1.2 web-application support, consisting of

* Ruby 1.8.5, RubyGems, Rails, etc

* Mongrel_cluster hosting of the Rails application. The mongrel cluster should automatically start at system boot and be accessible via an Apache proxy (using mod_proxy_balancer). See the links in the References section below for more details on how to set this up.

* Trac project and issue tracking system (latest stable version) and software required for it to run (e.g. python). We need to be able to support multiple Trac projects hosted via Apache.

* Disk quotas must be enabled on user accounts, with per-account limits specifyable.

* Apache 2.2 (the latest point version available). As mentioned, the server must be configured to support hosting of multiple domains (e.g. Apache virtual hosts). Each user account will have a corresponding virtual domain for web access to their services, and must support the following features:

* Multiple Subversion repositories (using mod_dav_svn)

* Multiple Trac projects (normally one for each subversion repository)

* WebDAV virtual disk space (using mod_dav?)

* Total bandwidth limited to specified maximum total megabytes per month

* Virtual domains should be accessible via SSL only

* Attempts to access the domain via a non-SSL link should automatically redirect to the SSL equivalent

* Apache authentication to control access to various functions ( e.g. svn, trac, webdav, etc) with a htpasswd file for each user account.

* mod_rewrite - To rewrite URL paths

* mod_deflate - To reduce network traffic

* The "admin/" URL of each virtual domain should proxy through to the mongrel_cluster to allow user access to the rails administration application ( e.g. mod_proxy_balancer).

**2. Create account script**

This script should create a new user account for a given username and virtual domain name, and also create the apache configuration files necessary to support the functionality described in script 1 above (Note: the user accounts should NOT support shell access).

The initial files for the account should come from a skeleton directory, in a format necessary to support the services described above. The directory layout should be in a format that makes it easy to create a .[url removed, login to view] backup of all the svn, trac, user-authentication and configuration data required to restore the account should corruption occur.

We are open to suggestions on how to best structure the user-account directories, however am thinking of something along the following lines:

/home/myuser/data/ - a top level directory that can be easily backed up

/home/myuser/data/svn/ - containing subversion repository directories, for example:



/home/myuser/data/svn/repos3/ etc


/home/myuser/data/trac/ - directory containing trac project directories, for example:



/home/myuser/data/trac/project3/ etc


/home/myuser/www/ - a separate directory for the web-root.

This example account setup should map through to the following URLs:

[url removed, login to view] - the subversion repositories...

[url removed, login to view]

[url removed, login to view]


[url removed, login to view] - the trac projects...

[url removed, login to view]

[url removed, login to view]


[url removed, login to view] - the Rails administration application (i.e. the mongrel_cluster proxy)

**3. Suspend account script**

Disable a specified user account. When disabled, attempts to access any web URL belonging to the accounts virtual host should redirect to a standard "service disabled, contact administrator" HTML page that we will supply.

**4. Re-activate account script**

Re-activates a previously disabled user account. Removes web redirection and restores full functionality.

**5. Terminate account script**

Delete a specified user account and all its corresponding data and configuration files.

**Useful References:**

Subversion - [url removed, login to view]

Trac - [url removed, login to view]

Ruby on Rails - [url removed, login to view]

Mongrel - [url removed, login to view]

[url removed, login to view]

[url removed, login to view]

**Conditions on deliverables:** 1) Complete and fully-functional working scripts in executable form as well as complete source code of all work done.

2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):

a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.

b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.

3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).

## Platform

Linux CentOS 5 servers.

Habilidades: Perl, PHP

Veja mais: working from home python, work from home for disabled, work from home disabled, work from home desktop support, work from home de, work from home administrator, work at home disabled, wiki services, wiki module, where is the best place to have a blog, web proxy directory, virtual legal service, us ruby on rails projects, url rewrite software, top ruby, standard services agreement, standard service agreement form, standard agreement for services, standard agreement format, sites using ruby on rails, side scripting language, service order agreement, service agreement format, service agreement document, server side scripts

Acerca do Empregador:
( 0 comentários ) Maida Vale, Indonesia

ID do Projeto: #2966602

3 freelancers are bidding on average $1762 for this job


See private message.

$4250 USD in 7 dias
(409 Comentários)

See private message.

$357 USD in 7 dias
(61 Comentários)

See private message.

$680 USD in 7 dias
(0 Comentários)