示例#1
0
def installed_from_source(version=VERSION):
    """
    Require Redis to be installed from source.

    The compiled binaries will be installed in ``/opt/redis-{version}/``.
    """
    from fabtools.require import directory as require_directory
    from fabtools.require import file as require_file
    from fabtools.require import user as require_user
    from fabtools.require.deb import packages as require_deb_packages
    from fabtools.require.rpm import packages as require_rpm_packages

    family = distrib_family()

    if family == 'debian':
        require_deb_packages([
            'build-essential',
        ])

    elif family == 'redhat':
        require_rpm_packages([
            'gcc',
            'make',
        ])

    require_user('redis', home='/var/lib/redis', system=True)
    require_directory('/var/lib/redis', owner='redis', use_sudo=True)

    dest_dir = '/opt/redis-%(version)s' % locals()
    require_directory(dest_dir, use_sudo=True, owner='redis')

    if not is_file('%(dest_dir)s/redis-server' % locals()):

        with cd('/tmp'):

            # Download and unpack the tarball
            tarball = 'redis-%(version)s.tar.gz' % locals()
            url = _download_url(version) + tarball
            require_file(tarball, url=url)
            run('tar xzf %(tarball)s' % locals())

            # Compile and install binaries
            with cd('redis-%(version)s' % locals()):
                run('make')

                for filename in BINARIES:
                    run_as_root(
                        'cp -pf src/%(filename)s %(dest_dir)s/' % locals())
                    run_as_root(
                        'chown redis: %(dest_dir)s/%(filename)s' % locals())
示例#2
0
def users():

    from fabtools.require import user as require_user
    from fabtools.user import exists

    test_users = ['testuser', 'testuser2']

    for username in test_users:
        require_user(username, create_home=False)

    yield

    for username in test_users:
        if exists(username):
            run_as_root('userdel %s' % username)
示例#3
0
def users():

    from fabtools.require import user as require_user
    from fabtools.user import exists

    test_users = ['testuser', 'testuser2']

    for username in test_users:
        require_user(username, create_home=False)

    yield

    for username in test_users:
        if exists(username):
            run_as_root('userdel %s' % username)
示例#4
0
def users(request):

    from fabtools.require import user as require_user

    TEST_USERS = ['testuser', 'testuser2']

    for name in TEST_USERS:
        require_user(name, create_home=False)

    def remove_users():
        from fabtools.user import exists
        for user in TEST_USERS:
            if exists(user):
                run_as_root('userdel %s' % user)

    request.addfinalizer(remove_users)
示例#5
0
def users(request):

    from fabtools.require import user as require_user

    TEST_USERS = ['testuser', 'testuser2']

    for name in TEST_USERS:
        require_user(name, create_home=False)

    def remove_users():
        from fabtools.user import exists
        for user in TEST_USERS:
            if exists(user):
                run_as_root('userdel %s' % user)

    request.addfinalizer(remove_users)
示例#6
0
文件: redis.py 项目: rybakit/fabtools
def installed_from_source(version=VERSION):
    """
    Require Redis to be installed from source.

    The compiled binaries will be installed in ``/opt/redis-{version}/``.
    """
    from fabtools.require import directory as require_directory
    from fabtools.require import file as require_file
    from fabtools.require import user as require_user
    from fabtools.require.deb import packages as require_deb_packages
    from fabtools.require.rpm import packages as require_rpm_packages

    family = distrib_family()

    if family == "debian":
        require_deb_packages(["build-essential"])

    elif family == "redhat":
        require_rpm_packages(["gcc", "make"])

    require_user("redis", home="/var/lib/redis", system=True)
    require_directory("/var/lib/redis", owner="redis", use_sudo=True)

    dest_dir = "/opt/redis-%(version)s" % locals()
    require_directory(dest_dir, use_sudo=True, owner="redis")

    if not is_file("%(dest_dir)s/redis-server" % locals()):

        with cd("/tmp"):

            # Download and unpack the tarball
            tarball = "redis-%(version)s.tar.gz" % locals()
            url = _download_url(version) + tarball
            require_file(tarball, url=url)
            run("tar xzf %(tarball)s" % locals())

            # Compile and install binaries
            with cd("redis-%(version)s" % locals()):
                run("make")

                for filename in BINARIES:
                    run_as_root("cp -pf src/%(filename)s %(dest_dir)s/" % locals())
                    run_as_root("chown redis: %(dest_dir)s/%(filename)s" % locals())