{"id":14986186,"url":"https://github.com/rapid7/builderator","last_synced_at":"2026-02-06T17:30:19.480Z","repository":{"id":34200132,"uuid":"38055832","full_name":"rapid7/builderator","owner":"rapid7","description":"Tools to make CI Packer builds awesome","archived":false,"fork":false,"pushed_at":"2024-06-19T12:08:29.000Z","size":441,"stargazers_count":23,"open_issues_count":13,"forks_count":9,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-09-30T23:43:20.056Z","etag":null,"topics":["build-pipeline","packer","ruby","vagrant"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/rapid7.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}},"created_at":"2015-06-25T14:56:11.000Z","updated_at":"2024-09-15T13:11:20.000Z","dependencies_parsed_at":"2023-10-02T21:31:55.032Z","dependency_job_id":"e71f41ab-a5a2-4081-b27e-ed4367bc99f1","html_url":"https://github.com/rapid7/builderator","commit_stats":{"total_commits":363,"total_committers":13,"mean_commits":"27.923076923076923","dds":"0.35812672176308535","last_synced_commit":"d9af1e211f13c8aec3146937799f03a65ee48b0e"},"previous_names":[],"tags_count":62,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapid7%2Fbuilderator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapid7%2Fbuilderator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapid7%2Fbuilderator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapid7%2Fbuilderator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rapid7","download_url":"https://codeload.github.com/rapid7/builderator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219850524,"owners_count":16556317,"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":["build-pipeline","packer","ruby","vagrant"],"created_at":"2024-09-24T14:12:29.934Z","updated_at":"2026-02-06T17:30:19.396Z","avatar_url":"https://github.com/rapid7.png","language":"Ruby","readme":"# Builderator [![Build Status](https://api.travis-ci.org/rapid7/builderator.svg?branch=master)](https://travis-ci.org/rapid7/builderator)\n\nOrchestration and configuration of the code development life-cycle.\n\n## Commands\n\nRun `build help` for a complete enumeration of Builderator's commands.\n\n### `local [PROFILE = default]`\n\nProvision a local VM using Vagrant and, by default, VirtualBox. Uses Berkshelf to fetch cookbooks, and Chef to provision the VM.\n\n### `ec2 [PROFILE = default]`\n\nProvision an EC2 VM using Vagrant. Same workflow as `local` using the `vagrant-aws` plugin.\n\n### `image [PROFILE = default]`\n\nUse [Packer](https://www.packer.io) to build an image(s) for the specified profile.\n\nBy default, the generated images are copied to their respective `ami_regions` and tagged.  Supply the `--no-copy` flag to keep the new image from being automatically copied to its configured regions.\n\n## Configuration\n\nConfiguration can be loaded from DSL files as well as JSON and command line arguments. By default, Builderator searches in your home directory (`$HOME/.builderator/Buildfile`) and the working directory (`./Builderator`) for DSL files. Configuration sources are layered and flattened into a single DSL in the following order:\n\n* Global defaults defined in the Builderator sources\n* `Config.defaults` set by plugins, tasks, etc. in code\n* `$HOME/.builderator/Buildfile`\n* `./Buildfile`\n* `Config.overrides` set by plugins, tasks, etc. in code\n* CLI arguments loaded from Thor\n\n[Additional documentation](docs/configuration.md) describes the configuration DSL interface.\n\n## Integrations\n\nBuilderator integrates with other tools, including [Berkshelf](http://berkshelf.com), [Vagrant](https://www.vagrantup.com/), and [Packer](https://www.packer.io/), to orchestrate workflows by generating `Berksfile`s, `Vagrantfile`s, and JSON strings for Packer. This means that you can replace all of these files in your project with a single `Buildfile`.\n\n### Berkshelf\n\nThe Berkshelf integration generates a Berksfile. The following configuration\nvalues are supported.\n\n#### solver\n\nThe generated Berksfile uses the `:gecode` dependency resolver by default. To\nuse the `:ruby` solver, add this snippet to your Buildfile.\n\n```ruby\nberkshelf do |berks|\n  berks.solver :ruby\nend\n```\n\nFor help debugging cookbook dependency issues, you can set the `DEBUG_RESOLVER`\nenvironment variable and use the `--debug` flag when running `build berks`\nsucommands.\n\n```bash\nexport DEBUG_RESOLVER=1\nbuild berks vendor --debug\n```\n\n### Packer\n\nThe Packer integration generates a Packer JSON configuration and passes it to STDIN of `packer build -`.\n\n### Vagrant\n\nBuilderator shells out to Vagrant to provision VMs on demand. Run\n\n```sh\nbuild vagrant plugins\n```\n\nto install required plugins for Builderator.\n\n## Versioning\n\nBuilderator can automatically detect versions from SCM tags, increment the latest version of an SCM branch by a variety of steps, and create new SCM tags for new versions.\n\nIf the SCM has no version tags, Builderator will try to read the version from a VERSION file in the repository.\n\n[Additional documentation](docs/versioning.md) describes CLI commands, configuration, and detailed behavior.\n\n## Generators\n\nBuilderator includes a task to generate common project trees from configuration definitions  and templates.\n\nEach type of project is configurable via the project collection in the `generator` namespace:\n\n```ruby\ngenerator.project :default do |default|\n  default.ruby.version '2.1.5'\n  default.builderator.version '~\u003e 1.0'\n\n  default.vagrant do |vagrant|\n    vagrant.install false\n    vagrant.version 'v1.8.0'\n\n    vagrant.plugin 'vagrant-aws'\n    vagrant.plugin 'vagrant-omnibus'\n  end\n\n  default.resource :berksfile do |berksfile|\n    berksfile.path 'Berksfile', 'Berksfile.lock'\n    berksfile.action :rm\n  end\n\n  default.resource :buildfile do |buildfile|\n    buildfile.path 'Buildfile'\n    buildfile.action :create\n    buildfile.template 'template/Buildfile.erb'\n  end\n\n  # ...\nend\n```\n\nValid actions for resources include `:ignore`, `:create` (update only if missing), `:sync` (create or update with prompt), and `:rm`. `:create` and `:sync` actions require a valid template source.\n\nBy default, the `generator` subcommand includes a `default` project which removes Vagrant, Berkshelf, and Packer configurations.\n\n## Utilities\n\nBuilderator includes two utilities to search for and clean up EC2 resources.\n\n### `build-clean`\n\nThe `build-clean` command prunes old EC2 resources in a region. The cleaner utility has [configurable](docs/configuration.md#namespace-cleaner) limits. For complete usage, run `build-clean help`.\n\n### `build-data`\n\nThe `build-data` utility is a command line interface for Builderator's internal resource lookup API. It has a limited query interface that allows filters to be constructed from a trailing list of argument:\n\n```sh\nbuild-data image architecture x86_64 virtualization-type hvm ...\n```\n\nPre-defined filters can also be applied with the `-f FILTER` flag. These currently include\n\n* `ubuntu-14.04-daily`\n* `windows-server2012-r2`\n* `windows-server2012-r2-core`\n\nRun `build-data help` for a complete listing of commands and arguments.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapid7%2Fbuilderator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frapid7%2Fbuilderator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapid7%2Fbuilderator/lists"}