Coder Social home page Coder Social logo

iq-scm / vagrant-omnibus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chef-boneyard/vagrant-omnibus

0.0 0.0 0.0 201 KB

A Vagrant plugin that ensures the desired version of Chef is installed via the platform-specific Omnibus packages.

License: Apache License 2.0

Ruby 100.00%

vagrant-omnibus's Introduction

vagrant-omnibus

Deprecation Warning

This is no longer an actively maintained Chef project. We believe that Test Kitchen offers a far superior development and testing experience as it allows fine grained control of versions, better platform support, and and overall better experience. If this project works for you that's great, but we'd highly suggest using https://kitchen.ci/ instead.


Gem Version Build Status Code Climate

A Vagrant plugin that ensures the desired version of Chef is installed via the platform-specific Omnibus packages. This proves very useful when using Vagrant with provisioner-less baseboxes OR cloud images.

The plugin should work correctly with most all providers that hook into Vagrant::Action::Builtin::Provision for provisioning and is known to work with the following Vagrant providers:

Installation

Ensure you have downloaded and installed Vagrant 1.1 or newer from the Vagrant downloads page. If you require Windows support then Vagrant 1.6.1 or newer is needed.

Installation is performed in the prescribed manner for Vagrant 1.1 plugins.

$ vagrant plugin install vagrant-omnibus

Usage

The Omnibus Vagrant plugin automatically hooks into the Vagrant provisioning middleware. You specify the version of the Chef Omnibus package you want installed using the omnibus.chef_version config key. The version string should be a valid Chef release version or :latest.

Install the latest version of Chef:

Vagrant.configure("2") do |config|

  config.omnibus.chef_version = :latest

  ...

end

Install a specific version of Chef:

Vagrant.configure("2") do |config|

  config.omnibus.chef_version = "14.2.0"

  ...

end

Specify a custom install script:

Vagrant.configure("2") do |config|

  config.omnibus.install_url = 'http://acme.com/install.sh'
  # config.omnibus.install_url = 'http://acme.com/install.msi'
  # config.omnibus.install_url = '/some/path/on/the/host'

  ...

end

If vagrant-cachier is present and config.cache.auto_detect enabled the downloaded omnibus packages will be cached by vagrant-cachier. In case you want to turn caching off:

Vagrant.configure("2") do |config|

  config.omnibus.cache_packages = false

  ...

end

This plugin is also multi-vm aware so it would possible to say install a different version of Chef on each VM:

Vagrant.configure("2") do |config|

  config.vm.define :new_chef do |new_chef_config|

    ...

    new_chef_config.omnibus.chef_version = :latest

    ...

  end

  config.vm.define :old_chef do |old_chef_config|

    ...

    old_chef_config.omnibus.chef_version = "13.9.1"

    ...

  end
end

Tests

Unit

The unit tests can be run with:

rake test:unit

The test are also executed by Travis CI every time code is pushed to GitHub.

Acceptance

Currently this repo ships with a set of basic acceptance tests that will:

  • Provision a Vagrant instance.
  • Attempt to install Chef using this plugin.
  • Perform a very basic chef-solo run to ensure Chef is in fact installed.

The acceptance tests can be run against a subset of the Vagrant providers listed above. The acceptance tests can be run with:

rake test:acceptance:PROVIDER_NAME

And as expected, all acceptance tests only uses provisioner-less baseboxes and cloud images!

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Authors

Seth Chisamore ([email protected])

vagrant-omnibus's People

Contributors

ampedandwired avatar aogail avatar comuttun avatar displague avatar docwhat avatar fgrehm avatar lamont-granquist avatar matsu911 avatar mbrukman avatar michfield avatar mwrock avatar petecheslock avatar petems avatar rjocoleman avatar scalp42 avatar schisamo avatar skv-headless avatar smdahlen avatar srenatus avatar tas50 avatar tknerr avatar tmatilai avatar wizonesolutions avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.