{"id":21734819,"url":"https://github.com/ruionwriting/ubuntu-dev-ops-toolkit","last_synced_at":"2026-02-12T15:05:21.449Z","repository":{"id":41491585,"uuid":"509800961","full_name":"ruionwriting/ubuntu-dev-ops-toolkit","owner":"ruionwriting","description":"Highly opinionated Ubuntu all-purpose DevOps environment setup that can run bare-metal or in a virtual machine. ","archived":false,"fork":false,"pushed_at":"2024-09-17T11:14:48.000Z","size":58,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-07T13:40:45.608Z","etag":null,"topics":["development","docker","iac","virtualbox","virtualization","vmware"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruionwriting.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2022-07-02T16:08:05.000Z","updated_at":"2025-10-04T22:48:18.000Z","dependencies_parsed_at":"2025-10-07T13:32:09.242Z","dependency_job_id":null,"html_url":"https://github.com/ruionwriting/ubuntu-dev-ops-toolkit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ruionwriting/ubuntu-dev-ops-toolkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruionwriting%2Fubuntu-dev-ops-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruionwriting%2Fubuntu-dev-ops-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruionwriting%2Fubuntu-dev-ops-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruionwriting%2Fubuntu-dev-ops-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruionwriting","download_url":"https://codeload.github.com/ruionwriting/ubuntu-dev-ops-toolkit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruionwriting%2Fubuntu-dev-ops-toolkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29369433,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: 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":["development","docker","iac","virtualbox","virtualization","vmware"],"created_at":"2024-11-26T05:10:46.036Z","updated_at":"2026-02-12T15:05:21.431Z","avatar_url":"https://github.com/ruionwriting.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ubuntu DevOps Toolkit\n\n---\n\n[Ubuntu DevOps Toolkit](https://github.com/ruionwriting/ubuntu-dev-ops-toolkit) (UDOT) is a highly opinionated Ubuntu all-purpose DevOps environment setup that can run bare-metal or in a virtual machine. From general code development, IaC, containerization, virtualization and testing tools, I've got you covered.\n\nWhy? Read about the [motivation](#motivation) for this project.\n\n**In this document**:\n\n- [Current Status](#current-status)\n- [Minimal setup](#minimal-setup)\n- [Utilities and toolchains](#utilities-and-toolchains)\n  - [Development tools/IDEs](#development-toolsides)\n  - [Testing tools](#testing-tools)\n  - [Language/runtimes](#languageruntimes)\n  - [Containerization and virtualization](#containerization-and-virtualization)\n  - [Infrastructure as Code (IaC)](#infrastructure-as-code-iac)\n- [Motivation](#motivation)\n- [License](#license)\n\n---\n\n## Current Status\n\nUbuntu DevOps Toolkit is **currently tested with bare-metal or virtualized using VMware Workstation Pro and VMware Fusion Pro**, so Linux, macOS and Windows hosts can be used. I do plan to expand to and cover VirtualBox, VWware Workstation Pro and VMware Fusion Player.\n\nFeature|Bare-metal|VMware Workstation Pro|VMware Fusion Pro|VWware Workstation Player|VMware Fusion Player|VirtualBox\n-|:-:|:-:|:-:|:-:|:-:|:-:\nGuest OS|_N/A_|Linux or Windows|macOS|Linux or Windows|macOS|Linux, macOS\\* or Windows\nPerformance|best|very good|very good|_TBC_|_TBC_|good, for most things\nSnapshots|_N/A_|\u0026#10003;|\u0026#10003;|_N/A_|_N/A_|\u0026#10003;\nLimitations\\*\\*|none|none|none|_TBC_|_TBC_|_TBC_\n\n(\\*) Apple M1 chips not supported.\n(\\*\\*) UDOT offers a best-effort when it comes to testing, document and automation installation of the various tools but in some cases licensing or environment constraints may limit some functionality. I'll do my best to capture those here.\n\n## Minimal setup\n\n1. [Create new virtual machine](./docs/create-new-virtual-machine.md). Skip if using bare-metal.\n\n   \u003e **Note**\n   \u003e Refer to [Current Status](#current-status) to see what options currently covered.\n\n1. [Install operating system](./docs/install-operating-system.md)\n1. [Post-install operating system](./docs//post-install-operating-system.md)\n1. [Install Ansible](./docs/install-ansible.md)\n\n\u003e **Note**\n\u003e From this point you have a standard Ubuntu 64-bit VM that is up-to-date and that tou can now install any (if not all) common DevOps utilities and toolchains that can run on Ubuntu. Take a snapshot at every stage (or at any time for that matter) and you have a stable and predictable environment to use.\n\n## Utilities and toolchains\n\n\u003e **Note**\n\u003e All instructed `ansible-playbook` commands in this document assume that the minimal setup is complete and you run the commands inside your VM.\n\n### Development tools/IDEs\n\n- [Visual Studio Code](./docs/install-vscode.md) or simply run `(cd playbooks \u0026\u0026 ansible-playbook -K -i hosts vscode.yml)`\n\n### Testing tools\n\n- MockServer `WIP`\n- Newman `WIP` (CLI runner for Postman collections)\n- newman-reporter-htmlextra (HTML reporter for Newman)\n- [Postman](./docs/install-postman.md) or simply run `(cd playbooks \u0026\u0026 ansible-playbook -K -i hosts postman.yml)`\n\n### Language/runtimes\n\n- .NET (pre-installed)\n- Go `WIP`\n- Java `WIP`\n- [Node.js](./docs/install-node.md) (using [nvm](https://github.com/nvm-sh/nvm))  or simply run `(cd playbooks \u0026\u0026 ansible-playbook -K -i hosts node.yml)`\n- Python `WIP`\n- Ruby (using rbenv) `WIP`\n- [Rust](./docs/install-rust.md) or simply run `(cd playbooks \u0026\u0026 ansible-playbook -K -i hosts rust.yml)`\n\n### Containerization and virtualization\n\n- [Docker and Docker Compose](./docs/install-docker.md) or simply run `(cd playbooks \u0026\u0026 ansible-playbook -K -i hosts docker.yml)`\n- [VirtualBox](.docs/../docs/install-virtualbox.md) or simply run `(cd playbooks \u0026\u0026 ansible-playbook -K -i hosts virtualbox.yml)`\n- [Vagrant](.docs/../docs/install-vagrant.md) or simply run `(cd playbooks \u0026\u0026 ansible-playbook -K -i hosts vagrant.yml)`\n\n### Infrastructure as Code (IaC)\n\n- [Ansible](./docs/install-ansible.md) is part of our minimal setup. Read [Using Ansible](./docs/using-ansible.md) for some crude usage/troubleshooting notes\n- Chef. `WIP`\n- Terraform (bare). `WIP`\n- Terraform (using tfenv). `WIP`\n- Terragrunt (bare). `WIP`\n- Terragrunt (using tgenv). `WIP`\n\n## Motivation\n\n\u003e **Note**\n\u003e **I'm not affiliated with or sponsored by VMware.**\n\nAs an engineer focused on building and maintaining tools that help engineers to be effective on their daily work I found that one of the biggest challenges is the amount of variation that exists across the various platforms. I've found Ubuntu to be a very well-round desktop solution that can replace most of my needs in a consistent manner.\n\nI wanted a repeatable approach to work that can run on any host OS. Key aspects:\n\n- A single thing/process to maintain and evolve\n- Easy to automate using Ansible (or Bash or whatever you fancy)\n- Checkout a single repo and use provided docs, scripts and playbooks and have peace of mind that I can get into a working state quickly\n- Something that works for personal and corporate situations\n- When using virtualization having the ability to snapshot at any moment and to enable to rollback in case I get in trouble - I want to be productive\n\nWhy I use VMware?\n\nI've simply burned too many cycles with VirtualBox and other free solutions. Don't take me wrong there are many good options around there but I favour, for productivity, easy to use and adopt. I've learned over the years to appreciate VMware stability and I don't mind paying for a license of a software that just works and is predictable.\n\n---\n\n## License\n\nThis work is licensed under Apache-2.0. See the [LICENSE.txt](LICENSE.txt) file for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruionwriting%2Fubuntu-dev-ops-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruionwriting%2Fubuntu-dev-ops-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruionwriting%2Fubuntu-dev-ops-toolkit/lists"}