{"id":18004560,"url":"https://github.com/erikzenker/arch-linux-cluster","last_synced_at":"2026-02-13T17:04:21.037Z","repository":{"id":151276404,"uuid":"71725492","full_name":"erikzenker/arch-linux-cluster","owner":"erikzenker","description":"Using arch linux distro to build a full cluster system","archived":false,"fork":false,"pushed_at":"2018-10-22T18:49:02.000Z","size":32,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-30T04:24:35.917Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/erikzenker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-10-23T19:41:56.000Z","updated_at":"2024-05-01T22:13:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"09257032-22bb-4f7e-800d-ab84059070d8","html_url":"https://github.com/erikzenker/arch-linux-cluster","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/erikzenker/arch-linux-cluster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikzenker%2Farch-linux-cluster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikzenker%2Farch-linux-cluster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikzenker%2Farch-linux-cluster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikzenker%2Farch-linux-cluster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erikzenker","download_url":"https://codeload.github.com/erikzenker/arch-linux-cluster/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikzenker%2Farch-linux-cluster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29412670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-30T00:14:49.645Z","updated_at":"2026-02-13T17:04:21.022Z","avatar_url":"https://github.com/erikzenker.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# Arch Linux Cluster\n\nUsing arch linux distro to build a full cluster system.\n\n## Installing the Base System\n\n* Use antergos minimal image with base setup\n\n* Install base software packages\n  - base\n  - base-devel\n  - emacs-nox\n  - git\n  - pacaur\n\n\n* Basic setup\n  - Set hostname in `/etc/hostname`\n\n\n## Installing SSH Server\n\n* Install `openssh` package: `# pacman -S openssh`\n* Start ssh daemon: `# systemctl enable sshd.service`\n* Login: `ssh -p 22 User@HOSTNAME`\n\n* Login node reachable from outside\n* Compute nodes only reachable from login node\n\n## Installing Network Filesystem\n\n## Installing Batch System\n\n## Installing Module System / Adding Further Software\n### Using Nix\n* Install nix `yaourt -S nix-multiuser`\n  - `# mkdir -p /etc/nix`\n  - `# touch /etc/nix/nix.conf`\n  - `# echo \"build-users-group = nixbld\" \u003e /etc/nix/nix.conf`\n  - `# systemctl enable --now nix-daemon.socket` (restart shell necessary)\n  - `# nix-channel --add https://nixos.org/channels/nixpkgs-unstable`\n  - `# nix-channel --update`\n  - `export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt`\n  - Add `~/.nix-profile/bin` to `$PATH`\n\n* Usage nix\n  - Install packages: `nix-env -i PACKAGE_NAME`\n  - Uninstall packages: `nix-env -e PACKAGE_NAME`\n  - Search packages: `nix-env -qaP | grep PACKAGE_NAME`\n  - Switch profile: `nix-env --switch-profile /nix/var/nix/profiles/my-profile`\n  - create new profile: `cp -r OLD_PROFILE_PATH NEW_PROFILE_PATH`\n  - List profiles: `ls /nix/var/nix/profiles/per-user/$USER`\n  - List generations: `nix-env --list-generations`\n  - Remove generations: `nix-env --delete-generations`\n  - Switch generation: `nix-env -G GENERATION`\n  - Switch to previous generaion: `nix-env --rollback`\n  - List packages of current generation: `nix-env -q`\n\n* Q\u0026A:\n  - Install nix-packets as non-root user?\n    - Remove: `~/.nix-profile`\n    - Run: `https://gist.github.com/erikzenker/807e9a39706e2ca1312ee052eaeaae22`\n  - How to provide some kind of profile per user?\n    - Provide a profiles folder: `~/profiles/`\n    - Use nix file `my_profile.nix` and `nix-shell`\n    - Set packages `nix-env --set PACKAGES`\n  - Why takes cmake the gcc compiler from the overall default profile?\n  - Cmake: the c compiler is not able to compile a simple test program\n    - clang works / gcc currently not\n### Using Spack\n* Install spack: `git clone https://github.com/llnl/spack.git`\n* Use bash: `bash`\n\n* Usage spack\n  - Install packages: `spack install PACKAGE_NAME@VERSION_NUMBER`\n  - Use a particular compiler: `spack install PACKAGE_NAME@VERSION_NUMBER %COMPILER_NAME@COMPILER_VERSION`\n    - to install with root `export FORCE_UNSAFE_CONFIGURE=1`\n  - Show compilers: `spack compilers`  \n  - Uninstall packages: `spack uninstall PACKAGE_NAME`\n  - List installed packages: `spack find`\n  - Search packages: `spack list PACKAGE_NAME`\n  - List package versions: `spack versions PACKAGE_NAME`\n  - Print package info: `spack info PACKAGE_NAME`\n  - Switch prefix: `spack bootstrap NEW_PREFIX`\n  \n* Usage with environmental modules\n  - Install the env-modules package: `pacaur -S env-modules`\n  - Source init script for the particular shell: `source /etc/modules/init/bash`\n  - Setup spack env for bash: `./share/spack/setup-env.sh`\n  - List avail modules: `module avail`\n  - Load module: `module load MODULE_NAME`\n  - Unload module: `module unload MODULE_NAME`\n  - List loaded modules: `module list`\n  \n* Known issues:\n  - gcc 7.3.0/6.4.0 etc. might not be compilable by clang, or gcc 8.2.0\n  \n### Using Conda\n\n### Using Linuxbrew\n* Install linuxbrew: `pacaur -S linuxbrew`\n* Set directory permissions\n\n* Usage linuxbrew\n  - Install packages: `brew install PACKAGE_NAME@VERSION_NUMBER`\n  - Search packages: `brew search PACKAGE_NAME`\n  \n  \n## Maintainance\n\n* Refresh keys: `# pacman-key --refresh-keys`\n* Update packets: `# pacman -Syu`\n\n## Automatation of Node Installation\n\n### Using Ansible\n* Install ansible on control host: `# pacman -S ansible`\n* Add public key of control host to ansible slaves in `authorized_keys`\n* Add login and compute nodes to ansible hosts in `/etc/ansible/hosts`\n  ```\n  [login]\n  IP:PORT\n  \n  [compute]\n  IP:PORT\n  ```\n* Run playbook: `ansible-playbook -b --become-method=sudo --ask-become-pass PLAYBOOK.yml`\n  * [Login node playbook yml](login_base_system.yml)\n\n### Using Docker\n\n## Useful Links\n\n* [Gentoo HPC Guide](https://wiki.gentoo.org/wiki/High_Performance_Computing_on_Gentoo)\n* [Slurm](https://wiki.archlinux.org/index.php/Slurm)\n* [Nix Package Manager Howto](https://nixos.org/nixos/manual/index.html#sec-ad-hoc-packages)\n* [Environmental Modules](http://www.admin-magazine.com/HPC/Articles/Environment-Modules)\n* [Lmod: Environmental Modules Alternative](http://www.admin-magazine.com/HPC/Articles/Lmod-Alternative-Environment-Modules)\n* [Ansible Documetation](https://docs.ansible.com/ansible/latest/index.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferikzenker%2Farch-linux-cluster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferikzenker%2Farch-linux-cluster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferikzenker%2Farch-linux-cluster/lists"}