{"id":15151558,"url":"https://github.com/ctreffos/ansible-fleet-infrastructure","last_synced_at":"2025-07-07T05:33:43.103Z","repository":{"id":256021753,"uuid":"852934057","full_name":"CTreffOS/ansible-fleet-infrastructure","owner":"CTreffOS","description":"Our Ansible playbooks to administrate our Thinkpad laptop fleet","archived":false,"fork":false,"pushed_at":"2024-12-12T22:14:09.000Z","size":3151,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-12-20T22:13:21.413Z","etag":null,"topics":["ansible","thinkpad"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CTreffOS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-09-05T17:23:19.000Z","updated_at":"2024-12-12T22:14:13.000Z","dependencies_parsed_at":"2024-09-08T15:25:26.197Z","dependency_job_id":"73b85611-f226-41a5-a7b2-99aa97283904","html_url":"https://github.com/CTreffOS/ansible-fleet-infrastructure","commit_stats":{"total_commits":27,"total_committers":1,"mean_commits":27.0,"dds":0.0,"last_synced_commit":"9787e0c9d93e1acc0334e5154757fe76685f4003"},"previous_names":["ctreffos/ansible-fleet-infrastructure"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CTreffOS%2Fansible-fleet-infrastructure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CTreffOS%2Fansible-fleet-infrastructure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CTreffOS%2Fansible-fleet-infrastructure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CTreffOS%2Fansible-fleet-infrastructure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CTreffOS","download_url":"https://codeload.github.com/CTreffOS/ansible-fleet-infrastructure/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230650620,"owners_count":18259292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","thinkpad"],"created_at":"2024-09-26T15:04:21.875Z","updated_at":"2024-12-20T22:13:34.864Z","avatar_url":"https://github.com/CTreffOS.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What is this?\nThis is a repository containing the Ansible configuration for the laptop-fleet of the [Chaostreff Osnabrück](https://chaostreff-osnabrueck.de).\n\n# Adoption\nAs the very first step, you have to install your own key onto the machines (hopefully also part of the `authenticated_keys` for the playbook). Do that via:\n```bash\nssh-copy-id user@ctreffosXX\n```\nThen take a look into the `hosts` file, which details the specific group membership of the machines. It is strongly recommended to add the `secondary_address` property to the new device, as we have seen mDNS failures way too often. If you use this, you have to assign your own machine a static address inside the `10.13.37.0/24` subnet.\n\n## Preperation\nCreate a file `secrets.source` and fill it with the following content:\n```bash\nexport WIFI_SSID=\u003cset-your-value-here\u003e\nexport WIFI_PASSWORD=\u003cset-your-value-here\u003e\n```\n...then source it:\n```bash\n. envsetup.source # to configure which inventory to use\nansible -m ping all # just to make you can reach them all\n```\n\n# Usage\n```bash\nansible-playbook site.yml --ask-become-pass\n```\n\n## Block standby (during rollouts)\n```bash\nansible-playbook power-block.yml --ask-become-pass\n```\n\n## Troubleshooting\nThe inventory is using the mDNS advertised hostnames of the machines. While this saves us from configureing the inventovry with fixed IPv4 addresses, it may lead to problems, if the mDNS/WiFi-connection is not working properly. I would recommend you to start with the `power-block.yml`-playbook and rerun it until all machines are reachable.\n\n# Contribution guidelines\n* Never use `run_once: true`, because due to the strategy `free`, the task may be completed multiple times on different hosts, as they may start at different point of time.\n* Never use reboot or other power actions during a run - as `power-block.yml` will retrict them and may cause the playbook to get stuck.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctreffos%2Fansible-fleet-infrastructure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fctreffos%2Fansible-fleet-infrastructure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctreffos%2Fansible-fleet-infrastructure/lists"}