Add support for Debian, merge Debian/Ubuntu platforms

This commit is contained in:
Roberto Rosario
2012-06-03 02:46:41 -04:00
parent cf88bf759e
commit 4b4dc9d96f
6 changed files with 84 additions and 70 deletions

View File

@@ -4,10 +4,12 @@ OS_CENTOS = 'centos'
OS_FEDORA = 'fedora'
OS_WINDOWS = 'windows'
OS_FREEBSD = 'freebds'
OS_DEBIAN = 'debian'
OS_CHOICES = {
OS_UBUNTU: 'Ubuntu',
OS_FEDORA: 'Fedora',
OS_DEBIAN: 'Debian',
#OS_REDHAT: 'RedHat',
#OS_CENTOS: 'CentOS',
#OS_WINDOWS: 'MS Windows',
@@ -16,17 +18,20 @@ OS_CHOICES = {
DEFAULT_INSTALL_PATH = {
OS_UBUNTU: '/usr/share',
OS_FEDORA: '/usr/share'
OS_FEDORA: '/usr/share',
OS_DEBIAN: '/usr/share',
}
DEFAULT_VIRTUALENV_NAME = {
OS_UBUNTU: 'mayan',
OS_FEDORA: 'mayan'
OS_FEDORA: 'mayan',
OS_DEBIAN: 'mayan',
}
DEFAULT_REPOSITORY_NAME = {
OS_UBUNTU: 'mayan',
OS_FEDORA: 'mayan'
OS_FEDORA: 'mayan',
OS_DEBIAN: 'mayan',
}
DB_MYSQL = 'mysql'

View File

@@ -1,8 +1,8 @@
from fabric.api import run, sudo, cd, env, task
from fabric.colors import green
from ..literals import OS_UBUNTU, OS_FEDORA
import linux, ubuntu, fedora
from ..literals import OS_UBUNTU, OS_FEDORA, OS_DEBIAN
import linux, ubuntu, fedora, debian
@task
@@ -10,10 +10,11 @@ def install_dependencies():
"""
Install OS dependencies
"""
print(green('Installing dependencies for %s' % env.os_name, bold=True))
if env.os == OS_UBUNTU:
ubuntu.install_dependencies()
if env.os in [OS_UBUNTU, OS_DEBIAN]:
debian.install_dependencies()
elif env.os == OS_FEDORA:
fedora.install_dependencies()
@@ -26,7 +27,7 @@ def install_mayan():
print(green('Installing Mayan EDMS from git repository', bold=True))
if env.os in [OS_UBUNTU, OS_FEDORA]:
if env.os in [OS_UBUNTU, OS_FEDORA, OS_DEBIAN]:
linux.install_mayan()
@@ -38,8 +39,8 @@ def install_database_manager():
print(green('Installing database manager: %s' % env.database_manager_name, bold=True))
if env.os == OS_UBUNTU:
ubuntu.install_database_manager()
if env.os in [OS_UBUNTU, OS_DEBIAN]:
debian.install_database_manager()
elif env.os == OS_FEDORA:
fedora.install_database_manager()
@@ -52,8 +53,8 @@ def fix_permissions():
print(green('Fixing installation files\' permissions', bold=True))
if env.os == OS_UBUNTU:
ubuntu.fix_permissions()
if env.os in [OS_UBUNTU, OS_DEBIAN]:
debian.fix_permissions()
elif env.os == OS_FEDORA:
fedora.fix_permissions()
@@ -66,8 +67,8 @@ def install_webserver():
print(green('Installing webserver: %s' % env.webserver_name, bold=True))
if env.os == OS_UBUNTU:
ubuntu.install_webserver()
if env.os in [OS_UBUNTU, OS_DEBIAN]:
debian.install_webserver()
elif env.os == OS_FEDORA:
fedora.install_webserver()
@@ -80,7 +81,7 @@ def delete_mayan():
print(green('Deleting Mayan EDMS files', bold=True))
if env.os in [OS_UBUNTU, OS_FEDORA]:
if env.os in [OS_UBUNTU, OS_FEDORA, OS_DEBIAN]:
linux.delete_mayan()
@@ -93,3 +94,5 @@ def post_install():
ubuntu.post_install()
elif env.os == OS_FEDORA:
fedora.post_install()
elif env.os == OS_DEBIAN:
debian.post_install()

View File

@@ -0,0 +1,50 @@
from fabric.api import run, sudo, cd, env, task, settings
from ..literals import DB_MYSQL, WEB_APACHE
def install_dependencies():
"""
Install Debian dependencies
"""
sudo('apt-get install -y git-core gcc tesseract-ocr unpaper python-virtualenv ghostscript libjpeg-dev libpng-dev poppler-utils')
def install_database_manager():
"""
Install the database manager on an Ubuntu system
"""
if env.database_manager == DB_MYSQL:
sudo('apt-get install -y mysql-server libmysqlclient-dev')
with cd(env.virtualenv_path):
sudo('source bin/activate; pip install MySQL-python')
def install_webserver():
"""
Installing the Debian packages for the webserver
"""
if env.webserver == WEB_APACHE:
sudo('apt-get install -y apache2 libapache2-mod-wsgi')
with settings(warn_only=True):
# Get rid of Apache's default site
sudo('a2dissite default')
def fix_permissions():
"""
Fix installation files' permissions on a Debian system
"""
sudo('chmod 770 %s -R' % env.virtualenv_path)
sudo('chgrp www-data %s -R' % env.virtualenv_path)
def post_install():
"""
Post install operations on a Debian system
"""
pass

View File

@@ -5,7 +5,7 @@ def delete_mayan():
"""
Delete Mayan EDMS files from an Ubuntu system
"""
sudo('rm %s -Rf' % env.virtualenv_path)
sudo('rm %(virtualenv_path)s -Rf' % env)
def install_mayan():
@@ -13,8 +13,8 @@ def install_mayan():
Install Mayan EDMS on an Ubuntu system
"""
with cd(env.install_path):
sudo('virtualenv --no-site-packages %s' % env.virtualenv_name)
sudo('virtualenv --no-site-packages %(virtualenv_name)s' % env)
with cd(env.virtualenv_path):
sudo('git clone http://www.github.com/rosarior/mayan %s' % env.repository_name)
sudo('source bin/activate; pip install -r %s/requirements/production.txt' % env.repository_name)
sudo('git clone http://www.github.com/rosarior/mayan %(repository_name)s' % env)
sudo('source bin/activate; pip install -r %(repository_name)s/requirements/production.txt' % env)

View File

@@ -1,48 +1,3 @@
from fabric.api import run, sudo, cd, env, task, settings
from ..literals import DB_MYSQL, WEB_APACHE
def install_dependencies():
"""
Install Ubuntu dependencies
"""
sudo('apt-get install -y git-core gcc tesseract-ocr unpaper python-virtualenv ghostscript libjpeg-dev libpng-dev poppler-utils')
def install_database_manager():
"""
Install the database manager on an Ubuntu system
"""
if env.database_manager == DB_MYSQL:
sudo('apt-get install -y mysql-server libmysqlclient-dev')
with cd(env.virtualenv_path):
sudo('source bin/activate; pip install MySQL-python')
def install_webserver():
"""
Installing the Ubuntu packages for the webserver
"""
if env.webserver == WEB_APACHE:
sudo('apt-get install -y apache2 libapache2-mod-wsgi')
with settings(warn_only=True):
# Get rid of Apache's default site
sudo('a2dissite default')
def fix_permissions():
"""
Fix installation files' permissions on an Ubuntu system
"""
sudo('chmod 770 %s -R' % env.virtualenv_path)
sudo('chgrp www-data %s -R' % env.virtualenv_path)
def post_install():
"""
Post install operations on an Ubuntu system

View File

@@ -3,7 +3,7 @@ import os
from fabric.api import run, sudo, cd, env, task, settings
from fabric.contrib.files import upload_template
from ..literals import OS_UBUNTU, OS_FEDORA
from ..literals import OS_UBUNTU, OS_FEDORA, OS_DEBIAN
def install_site():
@@ -11,7 +11,7 @@ def install_site():
Install Mayan EDMS's site file in Apache configuration
"""
# TODO: configurable site name
if env.os == OS_UBUNTU:
if env.os in [OS_UBUNTU, OS_DEBIAN]:
upload_template(filename=os.path.join('fabfile', 'templates', 'apache_site'), destination='/etc/apache2/sites-available/mayan', context=env, use_sudo=True)
sudo('a2ensite mayan')
elif env.os == OS_FEDORA:
@@ -22,8 +22,9 @@ def remove_site():
"""
Install Mayan EDMS's site file from Apache's configuration
"""
if env.os == OS_UBUNTU:
sudo('a2dissite mayan')
if env.os in [OS_UBUNTU, OS_DEBIAN]:
with settings(warn_only=True):
sudo('a2dissite mayan')
elif env.os == OS_FEDORA:
with settings(warn_only=True):
sudo('rm /etc/httpd/conf.d/mayan.conf')
@@ -33,7 +34,7 @@ def restart():
"""
Restart Apache
"""
if env.os == OS_UBUNTU:
if env.os in [OS_UBUNTU, OS_DEBIAN]:
sudo('/etc/init.d/apache2 restart')
elif env.os == OS_FEDORA:
sudo('systemctl restart httpd.service')
@@ -43,7 +44,7 @@ def reload():
"""
Reload Apache configuration files
"""
if env.os == OS_UBUNTU:
if env.os in [OS_UBUNTU, OS_DEBIAN]:
sudo('/etc/init.d/apache2 reload')
elif env.os == OS_FEDORA:
sudo('systemctl reload httpd.service')