{"id":21857037,"url":"https://github.com/gianluca-mascolo/firecracker-ansible","last_synced_at":"2025-08-27T13:10:40.019Z","repository":{"id":46050011,"uuid":"427651538","full_name":"gianluca-mascolo/firecracker-ansible","owner":"gianluca-mascolo","description":"Manage Firecracker instances with Ansible","archived":false,"fork":false,"pushed_at":"2023-10-15T22:30:03.000Z","size":28,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T06:51:15.111Z","etag":null,"topics":["ansible","firecracker","firecracker-microvms","microvms"],"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/gianluca-mascolo.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}},"created_at":"2021-11-13T11:53:33.000Z","updated_at":"2025-01-25T23:19:01.000Z","dependencies_parsed_at":"2022-09-23T07:11:37.892Z","dependency_job_id":null,"html_url":"https://github.com/gianluca-mascolo/firecracker-ansible","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gianluca-mascolo%2Ffirecracker-ansible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gianluca-mascolo%2Ffirecracker-ansible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gianluca-mascolo%2Ffirecracker-ansible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gianluca-mascolo%2Ffirecracker-ansible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gianluca-mascolo","download_url":"https://codeload.github.com/gianluca-mascolo/firecracker-ansible/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248936578,"owners_count":21186050,"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","firecracker","firecracker-microvms","microvms"],"created_at":"2024-11-28T02:25:10.896Z","updated_at":"2025-04-14T18:31:12.282Z","avatar_url":"https://github.com/gianluca-mascolo.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Firecracker VM management with Ansible\n\n## About\n\nThis project is a personal research about Firecracker and Microvms.  \nIt contains an Ansible playbook used to start one or more virtual machines described by a configuration file.\n\n## Requirements\n\n\n* [Firecracker](https://github.com/firecracker-microvm/firecracker) engine\n* Ansible\n* A Linux host with:\n  -  libvirt and a bridge configured\n  -  systemd\n  -  screen\n  -  sudo rights\n* A [kernel and a root filesystem](https://github.com/firecracker-microvm/firecracker/blob/main/docs/getting-started.md#running-firecracker) for your vm. \n\nAdditionally you will need Ansible galaxy collection `ansible.netcommon` installed locally:\n\n`ansible-galaxy collection install  -p ./collections -r requirements.yml`\n\n## Demo\n\n[![asciicast](https://asciinema.org/a/449532.svg)](https://asciinema.org/a/449532)\n\n## How it works\n\nThe playbook will install systemd user services in your `~/.config/systemd/user/` to start a firecracker process for every vm you need to manage.  \nIt will then create the configured tap interfaces and attach them to a libvirt network bridge.  \nFinally, using firecracker REST api it will start the configured vms and you can attach to the console process using screen.\nThe configuration file for virtual machines is placed in [group_vars/firecracker.yml](group_vars/firecracker.yml)\nTo ask for sudo password (if needed) run the playbook with  \n`ansible-playbook -K playbook`\n\n## Disclaimer\nAt this stage all I can say is: \"it works on my machine(TM)\".\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgianluca-mascolo%2Ffirecracker-ansible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgianluca-mascolo%2Ffirecracker-ansible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgianluca-mascolo%2Ffirecracker-ansible/lists"}