{"id":42934913,"url":"https://github.com/fwilhe2/system-automation","last_synced_at":"2026-01-30T19:15:02.445Z","repository":{"id":36997494,"uuid":"55866204","full_name":"fwilhe2/system-automation","owner":"fwilhe2","description":"System Automation powered by Ansible™","archived":false,"fork":false,"pushed_at":"2026-01-25T05:53:33.000Z","size":394,"stargazers_count":3,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-25T20:31:50.001Z","etag":null,"topics":["ansible","ansible-playbook","developer-tools","infrastructure-as-code","linux"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fwilhe2.png","metadata":{"files":{"readme":"README.adoc","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-04-09T20:46:02.000Z","updated_at":"2026-01-25T05:53:36.000Z","dependencies_parsed_at":"2023-01-17T12:32:41.428Z","dependency_job_id":"57390b00-d1e1-462c-bcb4-ada06ba1d8da","html_url":"https://github.com/fwilhe2/system-automation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fwilhe2/system-automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fwilhe2%2Fsystem-automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fwilhe2%2Fsystem-automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fwilhe2%2Fsystem-automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fwilhe2%2Fsystem-automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fwilhe2","download_url":"https://codeload.github.com/fwilhe2/system-automation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fwilhe2%2Fsystem-automation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28917608,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T19:10:10.838Z","status":"ssl_error","status_checked_at":"2026-01-30T19:06:40.573Z","response_time":66,"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":["ansible","ansible-playbook","developer-tools","infrastructure-as-code","linux"],"created_at":"2026-01-30T19:15:01.810Z","updated_at":"2026-01-30T19:15:02.437Z","avatar_url":"https://github.com/fwilhe2.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"// SPDX-FileCopyrightText: Florian Wilhelm\n// SPDX-License-Identifier: MIT\n\n= System Automation powered by Ansible™\n:experimental: yes\nifdef::env-github[]\n:status:\n:outfilesuffix: .adoc\n:!toc-title:\n:caution-caption: :fire:\n:important-caption: :exclamation:\n:note-caption: :paperclip:\n:tip-caption: :bulb:\n:warning-caption: :warning:\nendif::[]\n\nimage::https://github.com/fwilhe2/system-automation/workflows/CI/badge.svg[CI Job]\nimage::https://api.reuse.software/badge/github.com/fwilhe2/system-automation[REUSE status]\n\nA set of Ansible playbooks to setup Linux machines.\n\n== Project Layout\n\nThis project contains multiple playbooks:\n\n* `epel.yml`: Helper to add the Extra Packages for Enterprise Linux repos\n* `snap.yml`: Remove/disable snap\n* `common.yml`: Software and setup which does not require a graphical environment\n* `minimal.yml`: Subset of the common playbook to get a nice cli environment without too many packages\n* `desktop.yml`: Setup for desktop computers\n* `vm-host.yml`: Skips development tools, meant for hosts running https://github.com/fwilhe2/dev[dev]\n* `dev-env.yml`: Skips virtualization tools, meant for guests running https://github.com/fwilhe2/dev[dev]\n\n== Preparation\n\n.Preparation for Fedora\n----\nsudo dnf install -y ansible curl bash unzip\n----\n\n.Preparation for *EL-like\n----\nsudo dnf install -y ansible-core curl bash unzip\n----\n\n.Preparation for Ubuntu/Debian\n----\nsudo apt -y install ansible curl bash unzip\n----\n\n.Preparation for opensuse\n----\nsudo zypper --non-interactive install git ansible curl unzip bash\n----\n\n.Preparation for Archlinux\n----\nsudo pacman --sync --refresh --noconfirm ansible curl bash unzip git\n----\n\n== Kickstart (experimental)\n\nIf you don't mind the `curl | bash` thing, you might try running the playbook directly via:\n\n----\n# Common playbook\ncurl https://raw.githubusercontent.com/fwilhe2/system-automation/main/bootstrap.sh | bash\n\n# Minimal playbook\ncurl https://raw.githubusercontent.com/fwilhe2/system-automation/main/bootstrap-minimal.sh | bash\n----\n\nThis requires `ansible`, `curl`, `bash` and `unzip`.\n\n== Setup (traditional)\n\n.Run `common` playbook\n----\nansible-playbook --ask-become-pass --inventory inventory common.yml\n----\n\n.Run `desktop` playbook\n----\nansible-playbook --ask-become-pass --inventory inventory desktop.yml\n----\n\n== Testing\n\n=== Containerfile\n\nContainerfiles are available for testing.\nThey are run automatically via the CI workflow.\n\nFor running them locally, use:\n\n.Test on Debian\n----\ndocker build --build-arg=VERSION=debian:testing -t system-automation-test-debian-latest --file test/container/Containerfile.dpkg .\ndocker run --tty --volume $PWD:/mnt system-automation-test-debian-latest\n----\n\n.Test on Fedora\n----\ndocker build --build-arg=VERSION=latest -t system-automation-test-fedora-latest --file test/container/Containerfile.fedora .\ndocker run --tty --volume $PWD:/mnt system-automation-test-fedora-latest\n----\n\n=== Lima\n\nhttps://github.com/lima-vm/lima[Lima] is a tool written in go for running virtual machines.\n\nFiles in the root of this repo named like `lima_*.yaml` contain vm definitions for testing this repo.\n\n.Running the playbook in a vm using lima\n----\n# pick the one you need\nexport SYSAUTO_LIMA_DISTRO=debian\nexport SYSAUTO_LIMA_DISTRO=fedora\nlimactl create --name=system-automation-$SYSAUTO_LIMA_DISTRO ./lima_$SYSAUTO_LIMA_DISTRO.yaml\nlimactl start system-automation-$SYSAUTO_LIMA_DISTRO\nlimactl shell system-automation-$SYSAUTO_LIMA_DISTRO\n\n# Inside the vm, no password needed for become, just press enter\n./run.sh\n\nlimactl stop system-automation-$SYSAUTO_LIMA_DISTRO\n----\n\n== License\n\nCopyright © 2016-2025 Florian Wilhelm\n\nFree use of this software is granted under the terms of the MIT License.\n\n=== Copyright Notice\n\nThis project ships the following 3rd party software:\n\nhttps://github.com/green-leader/ansible-role-codium[ansible-role-codium] (`roles/greenleader.codium`)::\n  Copyright © Sion Fandrick under the _MIT License_\n\nhttps://github.com/iesplin/ansible-role-vscode[ansible-role-vscode] (`roles/iesplin.vscode`)::\n  Copyright © iesplin under the _MIT License_\n\nhttps://github.com/gantsign/ansible-role-visual-studio-code-extensions[ansible-role-visual-studio-code-extensions] (`library/codium-extensions`)::\n  Copyright © John Freeman GantSign Ltd. Company No. 06109112 (registered in England) under the _MIT License_\n\nhttps://git.sr.ht/~gotmax23/ansible-collection-epel[Ansible collection - gotmax23.epel] (`roles/gotmax23.epel*`)::\n  Copyright © 2022 Maxwell G (@gotmax23) under the _MIT License_\n\nhttps://github.com/lima-vm/lima[lima - linux virtual machines] (`lima_*yaml`)::\n  Based on examples by Akihiro Suda and https://github.com/lima-vm/lima/graphs/contributors[the lima contributors] under the _Apache-2.0 license_\n\nhttps://github.com/bodsch/ansible-snapd[Ansible Role: snapd] (`roles/bodsch.ansible-snapd`)::\n  Copyright © Bodo Schulz under the _BSD-2-Clause License_\n\n== References\n\n* http://www.whitewashing.de/2013/11/19/setting_up_development_machines_ansible_edition.html[Setting up development machines: Ansible edition]\n* https://github.com/geerlingguy/mac-dev-playbook\n* https://github.com/geerlingguy/ansible-role-docker\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffwilhe2%2Fsystem-automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffwilhe2%2Fsystem-automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffwilhe2%2Fsystem-automation/lists"}