def group(name, gid=None): """ Require a group. :: from fabtools import require require.group('mygroup') .. note:: This function can be accessed directly from the ``fabtools.require`` module for convenience. """ # Make sure the group exists if not exists(name): create(name, gid=gid)
def test_gid_str(self, mock_run_as_root): from fabtools.group import create create('some_group', gid='421')
def install(): """ Installs Nix""" # Install the Nix package if not deb.is_installed('nix'): execute('nix.install_deps') # obtain the LSB codename codename = utils.deb.get_release_info().codename url = NIX_BUILDS_URL.format(**NIX_BUILDS[codename]) tmp_dir = mkdtemp() with cd(tmp_dir): print(green('Downloading Nix 1.11.2')) run("wget '{}'".format(url)) print(green('Installing Nix')) sudo('dpkg --unpack *.deb') deb.install('nix') rmtree(tmp_dir) # Create Nix build user accounts grp = 'nixbld' if not group.exists(grp): group.create(grp) for n in range(10): usr = "******".format(n) if not user.exists(usr): user.create(usr, comment="Nix build user {}".format(n), group=grp, extra_groups=[grp], system=True, shell='/bin/false') sudo('mkdir -p /etc/nix') sudo('mkdir -p /nix/store') sudo('chown root.nixbld /nix/store') sudo('chmod 1775 /nix/store') sudo('mkdir -p -m 1777 /nix/var/nix/gcroots/per-user') sudo('mkdir -p -m 1777 /nix/var/nix/profiles/per-user') # Configure nix-daemon init_path = '/etc/init.d/' upload_template(os.path.join(TEMPLATES_FOLDER, 'nix-daemon'), init_path, backup=False, mode=0o755, use_sudo=True) sudo('update-rc.d nix-daemon defaults') green('Starting nix-daemon') sudo('/etc/init.d/nix-daemon start') # Setup profile nix_profile = '/etc/profile.d/nix.sh' append(nix_profile, PROFILE_SUFFIX, use_sudo=True) sudo('service nix-daemon restart') # Setup Nix for current user execute('nix.user_setup') green('Done. Remember to log out and back in before using Nix.')
def add_grp_to_user(): print_title('Adding {} to {}'.format(Settings.DEPLOY_GRP, env.user)) if not group.exists(Settings.DEPLOY_GRP): group.create(Settings.DEPLOY_GRP) sudo('adduser {username} {group}'.format(username=env.user, group=Settings.DEPLOY_GRP))