Пример #1
0
def createService(username, base='/srv', groups=['service']):
    """
    Create a service user.
    """
    if fails('/usr/bin/id {}'.format(username)):
        if distroFamily() in ['debian', 'fedora']:
            if groups:
                groupOpt = '--group ' + ','.join(groups)
            else:
                groupOpt = ''
            if base is not None:
                baseOpt = '--base-dir {}'.format(base)
            else:
                baseOpt = ''
            sudo('/usr/sbin/useradd {} {} --user-group '
                 '--create-home --system --shell /bin/bash '
                 '{}'.format(baseOpt, groupOpt, username))
        elif distroFamily() == 'freebsd':
            if groups:
                abort("Groups not supported")
            if base:
                abort("Basedir not supported")
            return sudo(
                '/usr/sbin/pw useradd -m -s /usr/local/bin/bash -h - -n {}'.
                format(username))
        else:
            abort('Unknown distro')
Пример #2
0
def createService(username, base='/srv', groups=['service']):
    """
    Create a service user.
    """
    if fails('/usr/bin/id {}'.format(username)):
        if distroFamily() in ['debian', 'fedora']:
            if groups:
                groupOpt = '--group ' + ','.join(groups)
            else:
                groupOpt = ''
            if base is not None:
                baseOpt = '--base-dir {}'.format(base)
            else:
                baseOpt = ''
            sudo('/usr/sbin/useradd {} {} --user-group '
                 '--create-home --system --shell /bin/bash '
                 '{}'.format(baseOpt, groupOpt, username))
        elif distroFamily() == 'freebsd':
            if groups:
                abort("Groups not supported")
            if base:
                abort("Basedir not supported")
            return sudo('/usr/sbin/pw useradd -m -s /usr/local/bin/bash -h - -n {}'.format(username))
        else:
            abort('Unknown distro')
Пример #3
0
def install(packages):
    """
    Install a list of packages.
    """
    if distroFamily() == 'debian':
        sudo('/usr/bin/apt-get --yes --quiet install {}'.format(" ".join(packages)))
    elif distroFamily() == 'fedora':
        sudo('/usr/bin/yum install -y {}'.format(" ".join(packages)))
    else:
        abort('Unknown distro.')
Пример #4
0
def update():
    """
    Update package list.
    """
    if distroFamily() == 'debian':
        sudo('/usr/bin/apt-get update')
    elif distroFamily() == 'fedora':
        # Automatic
        pass
    else:
        abort('Unknown distro.')
Пример #5
0
def update():
    """
    Update package list.
    """
    if distroFamily() == 'debian':
        sudo('/usr/bin/apt-get update')
    elif distroFamily() == 'fedora':
        # Automatic
        pass
    elif distroFamily() == 'freebsd':
        sudo('/usr/sbin/pkg update')
    else:
        abort('Unknown distro.')
Пример #6
0
def install(packages):
    """
    Install a list of packages.
    """
    if distroFamily() == 'debian':
        sudo('/usr/bin/apt-get --yes --quiet install {}'.format(
            " ".join(packages)))
    elif distroFamily() == 'fedora':
        sudo('/usr/bin/yum install -y {}'.format(" ".join(packages)))
    elif distroFamily() == 'freebsd':
        sudo('/usr/sbin/pkg install -y {}'.format(" ".join(packages)))
    else:
        abort('Unknown distro.')
Пример #7
0
    def task_install(self,
                slavename=None,
                hostInfo=None,
                buildmaster='buildbot.twistedmatrix.com',
                port=9987,
                adminInfo='Tom Prince <*****@*****.**>',
                password=None):
        """
        Install buildslave
        """

        if slavename is None:
            slavename = env.slaves[env.host]

        if password is None:
            password = passwordFromPrivateData(slavename)

        # Twisted's dependencies
        # (ubuntu/debian version)
        package.update()
        package.install([
            packageEquivs[info.distroFamily()].get(pkg, pkg)
            for pkg in
            'python-pyasn1',
            'python-crypto',
            'python-gmpy',
            'python-gobject',
            'python-soappy',
            'python-subunit',
            'python-openssl',
            'python-dev',
            'bzr',
            'git',
            'gcc',
            'subversion',
            'python-subvertpy',
            'python-pip',
            # cpython translator
            'make',
            'gmp-devel',
            # subunit
            'cppunit-devel',
            'check-devel',
            'g++',
            'perl-devel',
            # Docs
            'texlive',
            'netpbm-progs',
            'bzip2',
            'python-sphinx',
            # For pypy translator
            'hg',
            'libffi-devel',
            'openssl-devel',
            'ncurses-devel',
            'expat-devel',
            'sqlite-devel',
            'zlib-devel',
            'bzip2-devel',
            ])
Пример #8
0
def install(package, python='pypy'):
    pip = '/usr/bin/pip'
    if python == 'pypy':
        pip = '~pypy/bin/pip'
    elif python == 'system':
        #FIXME https://github.com/twisted-infra/braid/issue/5
        if info.distroFamily() == 'fedora':
            pip = '/usr/bin/pip-python'
        else:
            pip = '/usr/bin/pip'
    run('{} install --user {}'.format(pip, package))