Add support for Debian, merge Debian/Ubuntu platforms
This commit is contained in:
@@ -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'
|
||||
|
||||
@@ -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()
|
||||
|
||||
50
fabfile/platforms/debian.py
Normal file
50
fabfile/platforms/debian.py
Normal 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
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user