Esempio n. 1
0
def server():
    """
    Require nginx server to be installed and running.

    ::

        from fabtools import require

        require.nginx.server()
    """
    package('nginx')
    require_started('nginx')
Esempio n. 2
0
def server():
    """
    Require nginx server to be installed and running.

    ::

        from fabtools import require

        require.nginx.server()
    """
    package('nginx')
    require_started('nginx')
Esempio n. 3
0
def server():
    """
    Require apache2 server to be installed and running.

    ::

        from fabtools import require

        require.apache.server()
    """
    package('apache2')
    require_started('apache2')
Esempio n. 4
0
def server():
    """
    Require apache2 server to be installed and running.

    ::

        from fabtools import require

        require.apache.server()
    """
    package('apache2')
    require_started('apache2')
Esempio n. 5
0
def server(package='nginx'):
    """
    Require nginx server to be installed and running.
    Allows override of package name to allow install of nginx-extras instead

    ::

        from fabtools import require

        require.nginx.server()
    """
    package(package)
    require_started('nginx')
Esempio n. 6
0
def server(package_name='nginx'):
    """
    Require nginx server to be installed and running.
    Allows override of package name, this allow to install other packages like
    `nginx-extras` or `nginx-light`.

    ::

        from fabtools import require

        require.nginx.server()
    """
    package(package_name)
    require_started('nginx')
Esempio n. 7
0
def server(package_name='nginx'):
    """
    Require nginx server to be installed and running.
    Allows override of package name, this allow to install other packages like
    `nginx-extras` or `nginx-light`.

    ::

        from fabtools import require

        require.nginx.server()
    """
    package(package_name)
    require_started('nginx')
Esempio n. 8
0
def server(package_name='nginx'):
    """
    Require the nginx web server to be installed and running.

    You can override the system package name, if you need to install
    a specific variant such as `nginx-extras` or `nginx-light`.

    ::

        from fabtools import require

        require.nginx.server()

    """
    package(package_name)
    require_started('nginx')
Esempio n. 9
0
def server(package_name='nginx'):
    """
    Require the nginx web server to be installed and running.

    You can override the system package name, if you need to install
    a specific variant such as `nginx-extras` or `nginx-light`.

    ::

        from fabtools import require

        require.nginx.server()

    """
    package(package_name)
    require_started('nginx')
Esempio n. 10
0
def server(package_name='nginx'):
    """
    Require the nginx web server to be installed and running.

    You can override the system package name, if you need to install
    a specific variant such as `nginx-extras` or `nginx-light`.

    ::

        from fabtools import require

        require.nginx.server()

    """
    family = distrib_family()

    if family == 'debian':
        require_deb_package(package_name)
    elif family == 'redhat':
        require_rpm_package(package_name)
    elif distrib_id() is 'Archlinux':
        require_arch_package(package_name)

    require_started('nginx')
Esempio n. 11
0
def process(name, **kwargs):
    """
    Require a supervisor process to be running.

    Keyword arguments will be used to build the program configuration
    file. Some useful arguments are:

    - ``command``: complete command including arguments (**required**)
    - ``directory``: absolute path to the working directory
    - ``user``: run the process as this user
    - ``stdout_logfile``: absolute path to the log file

    You should refer to the `supervisor documentation`_ for the
    complete list of allowed arguments.

    .. note:: the default values for the following arguments differs from
              the ``supervisor`` defaults:

              - ``autorestart``: defaults to ``true``
              - ``redirect_stderr``: defaults to ``true``

    Example::

        from fabtools import require

        require.supervisor.process('myapp',
            command='/path/to/venv/bin/myapp --config production.ini --someflag',
            directory='/path/to/working/dir',
            user='******',
            stdout_logfile='/path/to/logs/myapp.log',
            )

    .. _supervisor documentation: http://supervisord.org/configuration.html#program-x-section-values
    """

    from fabtools.require import file as require_file
    from fabtools.require.deb import package as require_deb_package
    from fabtools.require.rpm import package as require_rpm_package
    from fabtools.require.arch import package as require_arch_package
    from fabtools.require.service import started as require_started

    family = distrib_family()

    if family == 'debian':
        require_deb_package('supervisor')
        require_started('supervisor')
    elif family == 'redhat':
        require_rpm_package('supervisor')
        require_started('supervisord')
    elif family == 'arch':
        require_arch_package('supervisor')
        require_started('supervisord')
    else:
        raise UnsupportedFamily(supported=['debian', 'redhat', 'arch'])

    # Set default parameters
    params = {}
    params.update(kwargs)
    params.setdefault('autorestart', 'true')
    params.setdefault('redirect_stderr', 'true')

    # Build config file from parameters
    lines = []
    lines.append('[program:%(name)s]' % locals())
    for key, value in sorted(params.items()):
        lines.append("%s=%s" % (key, value))

    # Upload config file
    if family == 'debian':
        filename = '/etc/supervisor/conf.d/%(name)s.conf' % locals()
    elif family == 'redhat':
        filename = '/etc/supervisord.d/%(name)s.ini' % locals()
    elif family == 'arch':
        filename = '/etc/supervisor.d/%(name)s.ini' % locals()

    with watch(filename, callback=update_config, use_sudo=True):
        require_file(filename, contents='\n'.join(lines), use_sudo=True)

    # Start the process if needed
    if process_status(name) == 'STOPPED':
        start_process(name)
Esempio n. 12
0
def _server_debian(package_name):

    from fabtools.require.deb import package as require_deb_package

    require_deb_package(package_name)
    require_started('nginx')
Esempio n. 13
0
def _server_debian():

    from fabtools.require.deb import package as require_deb_package

    require_deb_package('apache2')
    require_started('apache2')
Esempio n. 14
0
def _server_debian(package_name):

    from fabtools.require.deb import package as require_deb_package

    require_deb_package(package_name)
    require_started('nginx')
Esempio n. 15
0
def _server_debian():

    from fabtools.require.deb import package as require_deb_package

    require_deb_package('apache2')
    require_started('apache2')