{"id":15021999,"url":"https://github.com/imartzen/bootstrap-swarm-project","last_synced_at":"2026-01-26T11:34:22.853Z","repository":{"id":256804018,"uuid":"841029842","full_name":"iMartzen/bootstrap-swarm-project","owner":"iMartzen","description":"This Ansible playbook initializes a Docker Swarm cluster on a group of Raspberry Pi devices. It includes roles for system updates, Docker installation, Keepalived configuration system configuration, and Swarm cluster initialization.","archived":false,"fork":false,"pushed_at":"2024-09-17T06:58:41.000Z","size":194,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-04T10:36:53.403Z","etag":null,"topics":["ansible","ansible-playbook","ansible-role","docker","raspberry-pi","raspbian","swarm"],"latest_commit_sha":null,"homepage":"","language":"Jinja","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/iMartzen.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":"2024-08-11T12:39:40.000Z","updated_at":"2025-02-03T09:17:35.000Z","dependencies_parsed_at":"2024-09-24T21:18:18.685Z","dependency_job_id":null,"html_url":"https://github.com/iMartzen/bootstrap-swarm-project","commit_stats":{"total_commits":6,"total_committers":1,"mean_commits":6.0,"dds":0.0,"last_synced_commit":"1890732b882200acddb1c3797589aabb3717de51"},"previous_names":["imartzen/bootstrap-swarm-project"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMartzen%2Fbootstrap-swarm-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMartzen%2Fbootstrap-swarm-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMartzen%2Fbootstrap-swarm-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMartzen%2Fbootstrap-swarm-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iMartzen","download_url":"https://codeload.github.com/iMartzen/bootstrap-swarm-project/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239792076,"owners_count":19697884,"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","ansible-playbook","ansible-role","docker","raspberry-pi","raspbian","swarm"],"created_at":"2024-09-24T19:57:18.897Z","updated_at":"2026-01-26T11:34:22.785Z","avatar_url":"https://github.com/iMartzen.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"Bootstrap Swarm Project \n=============================\n\n\u003cimg src=\"./bootstrap-swarm-project.webp\" alt=\"Bootstrap Swarm Project\" width=\"200\" height=\"200\"\u003e\n\n# Description\n\nThis Ansible playbook initializes a Docker Swarm cluster on a group of Raspberry Pi devices. It includes roles for system updates, Docker installation, Keepalived configuration system configuration, and Swarm cluster initialization. \n\nPlease read through the project to get a better understanding of what it does and what you need in order to be successful. \n\n# Requirements \n\n- Ansible 2.9 or higher\n- Raspberry Pi with Raspbian \n- SSH access to the nodes\n\n# Installation\n\nTo use this playbook, ensure Ansible is installed on your machine. For macOS, you can install Ansible using Homebrew:\n```\nbrew install ansible\n```\nAlternatively, for other platforms, install via `pip`:\n```\npip install ansible\n```\n\nOnce Ansible is installed, clone this repository and run the playbook with the following command:\n```\nansible-playbook -i \u003cinventory_file\u003e playbooks/main.yml\n```\nReplace `\u003cinventory_file\u003e` with the path to your Ansible inventory file, which should contain the list of hosts for your Swarm cluster.\n\n# Basic Usage\n\nSimply run the playbook using the command above, specifying the hosts you want to include in your Swarm cluster. The playbook will handle updating the system, installing Docker, configuring the system, and initializing the Swarm cluster.\n\nExample:\n```\nansible-playbook -i inventory playbooks/main.yml\n```\nThis will execute the playbook on all hosts listed in the `inventory` file.\n\n## Advanced Usage\n\n### Customizing Message Of The Day (MOTD)\n\nYou can create a custom message of the day (MOTD), which appears when logging into your system. Update the this [MOTD](playbooks/roles/ansible-role-system-configuration/files/motd) role's variables to define your MOTD message.\n\n### Using Docker Visualizer\n\nThe `swarm-initialization` role includes a step to create a Docker service running Docker Visualizer, which is published on port 8081.\n\n# Ansible roles\n\n## [ansible-role-python-raspbian-bootstrap](playbooks/roles/ansible-role-python-raspbian-bootstrap/)\n\nBootstraps a Raspbian system with Python and essential packages.\n\nFeatures:\n\n- Updates the package list.\n- Installs Python and pip.\n- Installs essential Python packages.\n\n## [ansible-role-system-upgrade](playbooks/roles/ansible-role-system-upgrade/)\n\nUpgrades system packages to their latest versions.\n\nFeatures:\n\nFeatures:\n- Updates the package list.\n- Upgrades all installed packages.\n- Optionally reboots the system if required.\n\n## [ansible-role-install-docker](playbooks/roles/ansible-role-install-docker/)\n\nInstalls and configures Docker on a target system.\n\nFeatures:\n- Downloads and runs the Docker installation script.\n- Adds the current user to the Docker group.\n- Configures Docker to start with systemd.\n- Sets up Docker daemon configuration.\n\n## [ansible-role-system-configuration](playbooks/roles/ansible-role-system-configuration/)\n\nConfigures various system settings on a target host.\n\nFeatures:\n- Configures system timezone.\n- Sets up hostname and hosts file.\n- Manages user accounts and groups.\n- Configures SSH settings.\n\n## [ansible-role-swarm-initialization](playbooks/roles/ansible-role-swarm-initialization/)\n\nInitializes a Docker Swarm on a target host.\n\nFeatures:\n- Initializes a Docker Swarm on the nodes.\n- Manages invitations for managers and workers to join the Swarm.\n- Configures Docker Swarm settings.\n- Creates a Docker Visualizer service.\n\n## [ansible-role-install-keepalived](playbooks/roles/ansible-role-install-keepalived/)\n\nInstalls and configures Keepalived for high availability using VRRP on target nodes.\n\nFeatures:\n- Installs Keepalived via the apt package manager.\n- Configures VRRP to ensure high availability of network services.\n- Dynamically assigns priorities to nodes to define the master and backup roles.\n- Manages Keepalived services, ensuring they are properly restarted and running.\n- Automatically handles failover between nodes in case of failure.\n\n# License\nGPLv3","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimartzen%2Fbootstrap-swarm-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimartzen%2Fbootstrap-swarm-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimartzen%2Fbootstrap-swarm-project/lists"}