コード例 #1
0
ファイル: postgres.py プロジェクト: mt3/fabtools
def server(version=None):
    """
    Require a PostgreSQL server to be installed and running.

    ::

        from fabtools import require

        require.postgres.server()

    """
    if version:
        pkg_name = 'postgresql-%s' % version
    else:
        pkg_name = 'postgresql'
    package(pkg_name)

    if is_file('/etc/init.d/postgresql'):
        service_name = 'postgresql'
    else:
        if version and is_file('/etc/init.d/postgresql-%s' % version):
            service_name = 'postgresql-%s' % version
        else:
            with cd('/etc/init.d'):
                with settings(hide('running', 'stdout')):
                    service_name = run('ls postgresql-*').splitlines()[0]
    started(service_name)
コード例 #2
0
ファイル: supervisor.py プロジェクト: tasostasos/fabtools
def process(name, template_contents=None, template_source=None, **kwargs):
    """
    Require a supervisor process
    """
    deb.package('supervisor')

    config_filename = '/etc/supervisor/conf.d/%s.conf' % name

    context = {}
    context.update(kwargs)
    context['name'] = name

    if (template_contents is None) and (template_source is None):
        template_contents = DEFAULT_TEMPLATE

    template_file(config_filename,
                  template_contents,
                  template_source,
                  context,
                  use_sudo=True)

    reload_config()

    if process_status(name) == 'STOPPED':
        start_process(name)
コード例 #3
0
ファイル: mysql.py プロジェクト: manojlds/fabtools
def server(version=None, password=None):
    """
    Require a MySQL server to be installed and running.

    Example::

        from fabtools import require

        require.mysql.server(password='******')

    """
    if version:
        pkg_name = 'mysql-server-%s' % version
    else:
        pkg_name = 'mysql-server'

    if not is_installed(pkg_name):
        if password is None:
            password = prompt_password()

        with settings(hide('running')):
            preseed_package('mysql-server', {
                'mysql-server/root_password': ('password', password),
                'mysql-server/root_password_again': ('password', password),
            })

        package(pkg_name)

    started('mysql')
コード例 #4
0
def server(version=None, password=None):
    """
    Require a MySQL server to be installed and running.

    Example::

        from fabtools import require

        require.mysql.server(password='******')

    """
    if version:
        pkg_name = 'mysql-server-%s' % version
    else:
        pkg_name = 'mysql-server'

    if not is_installed(pkg_name):
        if password is None:
            password = prompt('Please enter password for MySQL user "root":' %
                              user)

        with settings(hide('running')):
            preseed_package(
                'mysql-server', {
                    'mysql-server/root_password': ('password', password),
                    'mysql-server/root_password_again': ('password', password),
                })

        package(pkg_name)

    started('mysql')
コード例 #5
0
ファイル: mysql.py プロジェクト: sebastibe/fabtools
def server(version=None, password=None):
    """
    Require a MySQL server to be installed and running.

    Example::

        from fabtools import require

        require.mysql.server(password='******')

    """
    if version:
        pkg_name = "mysql-server-%s" % version
    else:
        pkg_name = "mysql-server"

    if not is_installed(pkg_name):
        if password is None:
            password = prompt_password()

        with settings(hide("running")):
            preseed_package(
                "mysql-server",
                {
                    "mysql-server/root_password": ("password", password),
                    "mysql-server/root_password_again": ("password", password),
                },
            )

        package(pkg_name)

    started("mysql")
コード例 #6
0
ファイル: fabfile.py プロジェクト: mzasada/vagrant-recipes
def mongodb(version='2.6.4'):
    deb.key('7F0CEB10', keyserver='keyserver.ubuntu.com')
    deb.source('mongodb', 'http://downloads-distro.mongodb.org/repo/ubuntu-upstart', 'dist', '10gen')
    deb.package('mongodb-org', version=version, update=False)

    comment("/etc/mongod.conf", "^bind_ip.*", char='#', use_sudo=True)
    run('sudo service mongod restart')
コード例 #7
0
ファイル: postgres.py プロジェクト: franckbret/fabtools
def server(version=None):
    """
    Require a PostgreSQL server to be installed and running.

    ::

        from fabtools import require

        require.postgres.server()

    """
    if version:
        pkg_name = 'postgresql-%s' % version
    else:
        pkg_name = 'postgresql'
    package(pkg_name)

    if is_file('/etc/init.d/postgresql'):
        service_name = 'postgresql'
    else:
        if version and is_file('/etc/init.d/postgresql-%s' % version):
            service_name = 'postgresql-%s' % version
        else:
            with cd('/etc/init.d'):
                with settings(hide('running', 'stdout')):
                    service_name = run('ls postgresql-*').splitlines()[0]
    started(service_name)
コード例 #8
0
ファイル: postgres.py プロジェクト: tasostasos/fabtools
def server(version='8.4'):
    """
    Require a PostgreSQL server
    """
    package('postgresql-%s' % version)
    service = 'postgresql-%s' % version
    if not is_file(os.path.join('/etc/init.d', service)):
        service = 'postgresql'
    started(service)
コード例 #9
0
ファイル: test_openvz.py プロジェクト: DaveHewy/fabtools
def test_install_debian_package_in_guest_context_manager(container):
    from fabtools.deb import update_index
    from fabtools.openvz import guest
    from fabtools.require.deb import package

    with guest(container):
        update_index()
        package('htop')
        assert is_file('/usr/bin/htop')
コード例 #10
0
ファイル: test_openvz.py プロジェクト: xlqian/fabtools
def test_install_debian_package_in_guest_context_manager(container):
    from fabtools.deb import update_index
    from fabtools.openvz import guest
    from fabtools.require.deb import package

    with guest(container):
        update_index()
        package('htop')
        assert is_file('/usr/bin/htop')
コード例 #11
0
ファイル: apache.py プロジェクト: franckbret/fabtools
def server():
    """
    Require apache2 server to be installed and running.

    ::

        from fabtools import require
        require.apache2.server()
    """
    package("apache2")
    started("apache2")
コード例 #12
0
ファイル: __init__.py プロジェクト: j0057/fabric
def deb_install_systemd():
    "Install systemd and update grub config"
    if not deb.is_installed('systemd'):
        deb.package('systemd')
        with watch('/etc/default/grub') as etc_default_grub:
            sed('/etc/default/grub', 
                'GRUB_CMDLINE_LINUX_DEFAULT="quiet"', 
                'GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/bin/systemd"')
        if etc_default_grub.changed:
            run('update-grub2')
            reboot()
            run('/bin/true')
コード例 #13
0
ファイル: postgres.py プロジェクト: delatsi/fabtools
def server(version=None):
    """
    Require a PostgreSQL server
    """
    if version:
        pkg_name = service_name = 'postgresql-%s' % version
    else:
        pkg_name = service_name = 'postgresql'
    package(pkg_name)
    if not is_file(os.path.join('/etc/init.d', service_name)):
        service_name = 'postgresql'
    started(service_name)
コード例 #14
0
ファイル: nginx.py プロジェクト: bussiere/fabtools
def server():
    """
    Require nginx server to be installed and running.

    ::

        from fabtools import require

        require.nginx.server()
    """
    package('nginx')
    started('nginx')
コード例 #15
0
ファイル: apache.py プロジェクト: johnykov/fabtools
def server():
    """
    Require apache2 server to be installed and running.

    ::

        from fabtools import require

        require.apache.server()
    """
    package('apache2')
    require_started('apache2')
コード例 #16
0
ファイル: nginx.py プロジェクト: shiumachi/fabtools
def server():
    """
    Require nginx server to be installed and running.

    ::

        from fabtools import require

        require.nginx.server()
    """
    package('nginx')
    require_started('nginx')
コード例 #17
0
ファイル: nginx.py プロジェクト: mr-bo-jangles/fabtools
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')
コード例 #18
0
ファイル: apache.py プロジェクト: Friz-zy/fabtools
def server():
    """
    Require the Apache HTTP server to be installed and running.

    ::

        from fabtools import require

        require.apache.server()

    """
    package('apache2')
    require_started('apache2')
コード例 #19
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')
コード例 #20
0
ファイル: nginx.py プロジェクト: 3quarterstack/fabtools
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')
コード例 #21
0
ファイル: nginx.py プロジェクト: Friz-zy/fabtools
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')
コード例 #22
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')
コード例 #23
0
ファイル: mysql.py プロジェクト: 24Media/fabtools
def server(version='5.1', password=None):
    """
    Require a MySQL server
    """
    if not is_installed("mysql-server-%s" % version):
        if password is None:
            password = prompt_password()

        with settings(hide('running')):
            preseed_package('mysql-server', {
                'mysql-server/root_password': ('password', password),
                'mysql-server/root_password_again': ('password', password),
            })

        package('mysql-server-%s' % version)

    started('mysql')
コード例 #24
0
ファイル: postgres.py プロジェクト: sociateru/fabtools
def server(version=None):
    """
    Require a PostgreSQL server to be installed and running.

    ::

        from fabtools import require

        require.postgres.server()

    """
    if version:
        pkg_name = 'postgresql-%s' % version
    else:
        pkg_name = 'postgresql'
    package(pkg_name)

    started(_service_name(version))
コード例 #25
0
ファイル: postgres.py プロジェクト: bussiere/fabtools
def server(version=None):
    """
    Require a PostgreSQL server to be installed and running.

    ::

        from fabtools import require

        require.postgres.server()

    """
    if version:
        pkg_name = 'postgresql-%s' % version
    else:
        pkg_name = 'postgresql'
    package(pkg_name)

    started(_service_name(version))
コード例 #26
0
def server(version='5.1', password=None):
    """
    Require a MySQL server
    """
    if not is_installed("mysql-server-%s" % version):
        if password is None:
            password = prompt_password()

        with settings(hide('running')):
            preseed_package(
                'mysql-server', {
                    'mysql-server/root_password': ('password', password),
                    'mysql-server/root_password_again': ('password', password),
                })

        package('mysql-server-%s' % version)

    started('mysql')
コード例 #27
0
ファイル: shorewall.py プロジェクト: xlqian/fabtools
def firewall(zones=None,
             interfaces=None,
             policy=None,
             rules=None,
             routestopped=None,
             masq=None):
    """
    Ensure that a firewall is configured.

    Example::

        from fabtools.shorewall import *
        from fabtools import require

        # We need a firewall with some custom rules
        require.shorewall.firewall(
            rules=[
                Ping(),
                SSH(),
                HTTP(),
                HTTPS(),
                SMTP(),
                rule(port=1234, source=hosts(['example.com'])),
            ]
        )

    """
    package('shorewall')

    with watch(CONFIG_FILES) as config:
        _zone_config(zones)
        _interfaces_config(interfaces)
        _policy_config(policy)
        _rules_config(rules)
        _routestopped_config(routestopped)
        _masq_config(masq)

    if config.changed:
        puts("Shorewall configuration changed")
        if is_started():
            restart('shorewall')

    with settings(hide('running'), shell_env()):
        sed('/etc/default/shorewall', 'startup=0', 'startup=1', use_sudo=True)
コード例 #28
0
ファイル: shorewall.py プロジェクト: evandavey/osx_fabtools
def firewall(zones=None, interfaces=None, policy=None, rules=None, routestopped=None):
    """
    Require a firewall
    """
    package('shorewall')

    def on_change():
        puts("Shorewall configuration changed")
        if is_started():
            restart('shorewall')

    with watch(CONFIG_FILES, False, on_change):
        _zone_config(zones)
        _interfaces_config(interfaces)
        _policy_config(policy)
        _rules_config(rules)
        _routestopped_config(routestopped)

    with settings(hide('running')):
        sed('/etc/default/shorewall', 'startup=0', 'startup=1', use_sudo=True)
コード例 #29
0
ファイル: supervisor.py プロジェクト: 24Media/fabtools
def process(name, template_contents=None, template_source=None, **kwargs):
    """
    Require a supervisor process
    """
    deb.package('supervisor')

    config_filename = '/etc/supervisor/conf.d/%s.conf' % name

    context = {}
    context.update(kwargs)
    context['name'] = name

    if (template_contents is None) and (template_source is None):
        template_contents = DEFAULT_TEMPLATE

    template_file(config_filename, template_contents, template_source, context, use_sudo=True)

    reload_config()

    if process_status(name) == 'STOPPED':
        start_process(name)
コード例 #30
0
ファイル: shorewall.py プロジェクト: scalp42/fabtools
def firewall(zones=None, interfaces=None, policy=None, rules=None,
    routestopped=None, masq=None):
    """
    Ensure that a firewall is configured.

    Example::

        from fabtools.shorewall import *
        from fabtools import require

        # We need a firewall with some custom rules
        require.shorewall.firewall(
            rules=[
                Ping(),
                SSH(),
                HTTP(),
                HTTPS(),
                SMTP(),
                rule(port=1234, source=hosts(['example.com'])),
            ]
        )

    """
    package('shorewall')

    with watch(CONFIG_FILES) as config:
        _zone_config(zones)
        _interfaces_config(interfaces)
        _policy_config(policy)
        _rules_config(rules)
        _routestopped_config(routestopped)
        _masq_config(masq)

    if config.changed:
        puts("Shorewall configuration changed")
        if is_started():
            restart('shorewall')

    with settings(hide('running')):
        sed('/etc/default/shorewall', 'startup=0', 'startup=1', use_sudo=True)
コード例 #31
0
ファイル: postgres.py プロジェクト: heyimmowee/fabtools
def server(version=None):
    """
    Require a PostgreSQL server to be installed and running.

    ::

        from fabtools import require

        require.postgres.server()

    """
    if distrib_family() == "arch":
        pkg_name = 'postgresql'
        arch.package(pkg_name)
        init_postgres()
    else:
        if version:
            pkg_name = 'postgresql-%s' % version
        else:
            pkg_name = 'postgresql'
        package(pkg_name)

    started(_service_name(version))
コード例 #32
0
ファイル: nginx.py プロジェクト: j0057/fabric
def nginx_install():
    'Install nginx'
    deb.package('nginx-full')
    if exists('/etc/nginx/sites-enabled/default'):
        run('rm /etc/nginx/sites-enabled/default')
コード例 #33
0
ファイル: nginx.py プロジェクト: tasostasos/fabtools
def server():
    """
    Require an nginx server
    """
    package('nginx')
    started('nginx')
コード例 #34
0
ファイル: apache.py プロジェクト: MorphiX00/fabtools
def server():
    package('apache2')
    started('apache2')
コード例 #35
0
ファイル: uwsgi.py プロジェクト: j0057/fabric
def uwsgi_install():
    'Install uWSGI from unstable'
    for pkg in ['uwsgi', 'uwsgi-plugin-python', 'uwsgi-plugin-python3']:
        if not deb.is_installed(pkg):
            deb.package(pkg + '/unstable')
コード例 #36
0
ファイル: nginx.py プロジェクト: 24Media/fabtools
def server():
    """
    Require an nginx server
    """
    package('nginx')
    started('nginx')
コード例 #37
0
ファイル: mysql.py プロジェクト: j0057/fabric
def mysql_install():
    deb.package('mariadb-server')