Platformers are public desktops on the platform in the Lag. All the machines (at this moment 5) are running Archlinux with quite of a set of applications and graphical enviroments so people can test customize and play with different software.

LDAP user accounts

We have LDAP server running patat container on Kapsalon. If you have ldap account you can login with your credentials on every machine in Lag and have your home dir mounted. For account ask dreamer or tg.

Setup

  • LVM partitioning
  • Group: vg0
  • Logical Volumes: arch (30GB arch installation), other (30GB for other distros), swap (8GB)
  • filesystem: etx4
  • add lvm2 hook to /etc/mkinitcpio.conf before creating initramfs.
  • note! in case of installing arch on lvm check this when you run into trouble installing grub in chroot [http://unix.stackexchange.com/questions/105389/arch-grub-asking-for-run-lvm-lvmetad-socket-on-a-non-lvm-disk]
  • for automount install thunar-volman and gvfs (with optional pkg such as gvfs-smb, gvfs, mtp etc)

Extra information

Default guest homes

Everytime guest logs out, script removes everything in home dir. Everytime the guest account logsin the default predefined settings are loaded form /etc/skel.

Currently predefined:

  • firefox - bunch of useful extensions
  • xfce - some small customization

If you are interested in customizing installed software and share it with others, upload your changes to kapsalon:/sambal/platform/skel/

Syncing procedure

To keep all the platform desktops in sync we made some lame script. You can find it at kapsalon:/sambal/platform/scripts/update. The script is mounted on each platform and can be found at /usr/local/sbin

USAGE:

echo "Update and remove script for Platforms"
       echo " "
       echo " -h or --help     :       Print this help"
       echo " -n or --net      :       Update system from repository"
       echo " -l or --local    :       Update system using local cache" 
       echo " -r or --remove   :       Remove package"

--net Uninstalls packages scheduled for removal, and updates the system to the latest software

--local Uninstalls packages scheduled for removal, and updates system using shared pacman cache.

--remove Removes selected package and adds it to removed packages list. Additionally adds the hostname. If all hostnames are present, meaning all the machines removed package, the package is then removed from the list and cache.

pacman.conf keeps only installed and current packages in cache. If you want to install packages from AUR use yaourt! yaourt then puts the package and all dependencies in the same cache repository so that all the other machines can get the software, and stay in sync.

Configuration

NFS

/etc/fstab

# UUID=fab62823-69f9-4fd8-9e80-7d6cfd7aa84e
/dev/mapper/vg0-arch    /               ext4            rw,relatime,data=ordered        0 1

# UUID=7489369f-d8f2-41d2-80f7-738141fd1fc4
/dev/mapper/vg0-swap    none            swap            defaults        0 0

kapsalon:/sambal/media/upload           /media/upload           nfs     rsize=8192,wsize=8192,timeo=14,intr,auto,x-systemd.automount
kapsalon:/sambal/media/                 /media/share            nfs     rsize=8192,timeo=14,intr,ro,auto,x-systemd.automount
kapsalon:/sambal/platform/skel          /mnt/skel               nfs     rsize=8192,timeo=14,intr,ro,auto,x-systemd.automount
kapsalon:/sambal/platform/pacman/       /var/cache/pacman       nfs     rsize=8192,wsize=8192,timeo=14,intr,auto,x-systemd.automount
kapsalon:/sambal/platform/scripts/      /mnt/platform-scripts   nfs     rsize=8192,wsize=8192,timeo=14,intr,ro,auto,x-systemd.automount

LDAP

..

PAM

/etc/security/pam_mount.conf.xml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>
    <debug enable="0" />

    <volume uid="5000-5999" fstype="fuse" ssh="0" path="sshfs#%(USER)@kaas:" mountpoint="~/home/" options="reconnect,nonempty,password_stdin" />
    <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty" />
    <mntoptions require="nosuid,nodev" />
    <logout wait="0" hup="0" term="0" kill="0" />

    <mkmountpoint enable="1" remove="true" />

    <fusemount>`/usr/bin/mount.fuse %(VOLUME) %(MNTPT) -o %(OPTIONS)`</fusemount>
    <fuseumount>`/usr/bin/fusermount -u %(MNTPT)`</fuseumount>
</pam_mount>

Scripts

..

ToDo

  • check update scripts
  • add smart-monitoring to the desktops
  • test different sshfs-configuration (concurrent with shells on kaas)
  • re-image and re-deploy to get all platformers 'aligned'
  • better documentation (howto, configs, etc.)
  • ..