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')
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')
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.')
def update(): """ Update package list. """ if distroFamily() == 'debian': sudo('/usr/bin/apt-get update') elif distroFamily() == 'fedora': # Automatic pass else: abort('Unknown distro.')
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.')
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.')
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', ])
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))