All Projects → rapid7 → builderator

rapid7 / builderator

Licence: MIT license
Tools to make CI Packer builds awesome

Programming Languages

ruby
36898 projects - #4 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to builderator

packer-FreeBSD
Build a FreeBSD VM for Vagrant using packer
Stars: ✭ 23 (+9.52%)
Mutual labels:  vagrant, packer
ansible-role-cardano-node
Ansible role for the provisioning of Shelly Cardano binaries from source.
Stars: ✭ 20 (-4.76%)
Mutual labels:  vagrant, packer
packer-centos
Create CentOS images for different hypervisors with Packer
Stars: ✭ 18 (-14.29%)
Mutual labels:  vagrant, packer
Packer Centos 7
This build has been moved - see README.md
Stars: ✭ 223 (+961.9%)
Mutual labels:  vagrant, packer
packer-windows
Windows Templates for Packer: Windows 11, Windows 10, Windows Server 2022, 2019, 2016, also with Docker
Stars: ✭ 1,116 (+5214.29%)
Mutual labels:  vagrant, packer
Packer
Packer helpers and templates for Docker, IIS, SQL Server and Visual Studio on Windows and Ubuntu
Stars: ✭ 242 (+1052.38%)
Mutual labels:  vagrant, packer
packer-kali linux
This is a repository that will be used to help create a process of a new kali vagrant box for hashicorp each week.
Stars: ✭ 36 (+71.43%)
Mutual labels:  vagrant, packer
Windows Vagrant
Windows 2012R2/10/2016/2019 Base Vagrant Box (https://app.vagrantup.com/rgl)
Stars: ✭ 169 (+704.76%)
Mutual labels:  vagrant, packer
dockpack
This project uses ansible, packer and vagrant to create an agile lab.
Stars: ✭ 13 (-38.1%)
Mutual labels:  vagrant, packer
proxmox-ve
Proxmox VE Vagrant Base Box
Stars: ✭ 70 (+233.33%)
Mutual labels:  vagrant, packer
Packer Templates
Scripts and Templates used for generating Vagrant images
Stars: ✭ 219 (+942.86%)
Mutual labels:  vagrant, packer
arch-ansible
An Ansible playbook to install Arch Linux
Stars: ✭ 33 (+57.14%)
Mutual labels:  vagrant, packer
Packer Build
Packer Automated VM Image and Vagrant Box Builds
Stars: ✭ 199 (+847.62%)
Mutual labels:  vagrant, packer
Detectionlab
Automate the creation of a lab environment complete with security tooling and logging best practices
Stars: ✭ 3,237 (+15314.29%)
Mutual labels:  vagrant, packer
Nixbox
NixOS Vagrant boxes [[email protected]]
Stars: ✭ 189 (+800%)
Mutual labels:  vagrant, packer
django-angular2-fullstack-devops
All-in-one django/angular2 seed with cli interface for multi-environment devops on aws using ansible/packer/terraform
Stars: ✭ 54 (+157.14%)
Mutual labels:  vagrant, packer
Packer Windoze
Packer templates to create Windows vagrant box images
Stars: ✭ 117 (+457.14%)
Mutual labels:  vagrant, packer
Infrastructure As Code Tutorial
Infrastructure As Code Tutorial. Covers Packer, Terraform, Ansible, Vagrant, Docker, Docker Compose, Kubernetes
Stars: ✭ 1,954 (+9204.76%)
Mutual labels:  vagrant, packer
windows-docker-desktop-box
Vagrant box to test Docker Desktop with Linux/Windows containers
Stars: ✭ 17 (-19.05%)
Mutual labels:  vagrant, packer
packer-vagrant-builder
Build Solaris,CentOS or Ubuntu Vagrant box with puppet rpm's
Stars: ✭ 49 (+133.33%)
Mutual labels:  vagrant, packer

Builderator Build Status

Orchestration and configuration of the code development life-cycle.

Commands

Run build help for a complete enumeration of Builderator's commands.

local [PROFILE = default]

Provision a local VM using Vagrant and, by default, VirtualBox. Uses Berkshelf to fetch cookbooks, and Chef to provision the VM.

ec2 [PROFILE = default]

Provision an EC2 VM using Vagrant. Same workflow as local using the vagrant-aws plugin.

image [PROFILE = default]

Use Packer to build an image(s) for the specified profile.

By 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.

Configuration

Configuration 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:

  • Global defaults defined in the Builderator sources
  • Config.defaults set by plugins, tasks, etc. in code
  • $HOME/.builderator/Buildfile
  • ./Buildfile
  • Config.overrides set by plugins, tasks, etc. in code
  • CLI arguments loaded from Thor

Additional documentation describes the configuration DSL interface.

Integrations

Builderator integrates with other tools, including Berkshelf, Vagrant, and Packer, to orchestrate workflows by generating Berksfiles, Vagrantfiles, and JSON strings for Packer. This means that you can replace all of these files in your project with a single Buildfile.

Berkshelf

The Berkshelf integration generates a Berksfile. The following configuration values are supported.

solver

The generated Berksfile uses the :gecode dependency resolver by default. To use the :ruby solver, add this snippet to your Buildfile.

berkshelf do |berks|
  berks.solver :ruby
end

For help debugging cookbook dependency issues, you can set the DEBUG_RESOLVER environment variable and use the --debug flag when running build berks sucommands.

export DEBUG_RESOLVER=1
build berks vendor --debug

Packer

The Packer integration generates a Packer JSON configuration and passes it to STDIN of packer build -.

Vagrant

Builderator shells out to Vagrant to provision VMs on demand. Run

build vagrant plugins

to install required plugins for Builderator.

Versioning

Builderator 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.

If the SCM has no version tags, Builderator will try to read the version from a VERSION file in the repository.

Additional documentation describes CLI commands, configuration, and detailed behavior.

Generators

Builderator includes a task to generate common project trees from configuration definitions and templates.

Each type of project is configurable via the project collection in the generator namespace:

generator.project :default do |default|
  default.ruby.version '2.1.5'
  default.builderator.version '~> 1.0'

  default.vagrant do |vagrant|
    vagrant.install false
    vagrant.version 'v1.8.0'

    vagrant.plugin 'vagrant-aws'
    vagrant.plugin 'vagrant-omnibus'
  end

  default.resource :berksfile do |berksfile|
    berksfile.path 'Berksfile', 'Berksfile.lock'
    berksfile.action :rm
  end

  default.resource :buildfile do |buildfile|
    buildfile.path 'Buildfile'
    buildfile.action :create
    buildfile.template 'template/Buildfile.erb'
  end

  # ...
end

Valid 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.

By default, the generator subcommand includes a default project which removes Vagrant, Berkshelf, and Packer configurations.

Utilities

Builderator includes two utilities to search for and clean up EC2 resources.

build-clean

The build-clean command prunes old EC2 resources in a region. The cleaner utility has configurable limits. For complete usage, run build-clean help.

build-data

The 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:

build-data image architecture x86_64 virtualization-type hvm ...

Pre-defined filters can also be applied with the -f FILTER flag. These currently include

  • ubuntu-14.04-daily
  • windows-server2012-r2
  • windows-server2012-r2-core

Run build-data help for a complete listing of commands and arguments.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].