Giter Club home page Giter Club logo

our-boxen's Introduction

Our Boxen

This is a template Boxen project designed for your organization to fork and modify appropriately. The Boxen rubygem and the Boxen puppet modules are only a framework for getting things done. This repository template is just a basic example of how to do things with them.

Getting Started

To give you a brief overview, we're going to:

  • Install dependencies (basically Xcode)
  • Bootstrap a boxen for your self/team/org/company
  • Then convert your local copy of that boxen to the post-bootstrapped version

There are a few potential conflicts to keep in mind. Boxen does its best not to get in the way of a dirty system, but you should check into the following before attempting to install your boxen on any machine (we do some checks before every Boxen run to try and detect most of these and tell you anyway):

  • Boxen requires at least the Xcode Command Line Tools installed.
  • Boxen will not work with an existing rvm install.
  • Boxen may not play nice with a GitHub username that includes dash(-)
  • Boxen may not play nice with an existing rbenv install.
  • Boxen may not play nice with an existing chruby install.
  • Boxen may not play nice with an existing homebrew install.
  • Boxen may not play nice with an existing nvm install.
  • Boxen recommends installing the full Xcode.

Dependencies

Install the Xcode Command Line Tools and/or full Xcode. This will grant you the most predictable behavior in building apps like MacVim.

How do you do it?

OS X 10.9 (Mavericks)

If you are using b26abd0 of boxen-web or newer, it will be automatically installed as part of Boxen. Otherwise, follow instructions below.

OS X < 10.9

  1. Install Xcode from the Mac App Store.
  2. Open Xcode.
  3. Open the Preferences window (Cmd-,).
  4. Go to the Downloads tab.
  5. Install the Command Line Tools.

Bootstrapping

Create a new git repository somewhere on the internet. It can be private or public -- it really doesn't matter. If you're making a repository on GitHub, you may not want to fork this repo to get started. The reason for that is that you can't really make private forks of public repositories easily.

Once you've done that, you can run the following to bootstrap your boxen:

sudo mkdir -p /opt/boxen
sudo chown ${USER}:staff /opt/boxen
git clone https://github.com/boxen/our-boxen /opt/boxen/repo
cd /opt/boxen/repo
git remote rm origin
git remote add origin <the location of my new git repository>
git push -u origin master

Now that your boxen is bootstrapped, you can run the following to install the default configuration from this repo:

cd /opt/boxen/repo
./script/boxen

Distributing

That's enough to get your boxen into a usable state on other machines, usually. From there, we recommend setting up boxen-web as an easy way to automate letting other folks install your boxen.

If you don't want to use boxen-web, folks can get using your boxen like so:

sudo mkdir -p /opt/boxen
sudo chown ${USER}:staff /opt/boxen
git clone <location of my new git repository> /opt/boxen/repo
cd /opt/boxen/repo
./script/boxen

Keep in mind this requires you to encrypt your hard drive by default. If you do not want to do encrypt your hard drive, you can use the --no-fde.

./script/boxen --no-fde

It should run successfully, and should tell you to source a shell script in your environment. For users without a bash or zsh config or a ~/.profile file, Boxen will create a shim for you that will work correctly. If you do have a ~/.bashrc or ~/.zshrc, your shell will not use ~/.profile so you'll need to add a line like so at the end of your config:

[ -f /opt/boxen/env.sh ] && source /opt/boxen/env.sh

Once your shell is ready, open a new tab/window in your Terminal and you should be able to successfully run boxen --env. If that runs cleanly, you're in good shape.

What You Get

This template project provides the following by default:

  • Homebrew
  • Homebrew-Cask
  • Git
  • Hub
  • dnsmasq w/ .dev resolver for localhost
  • rbenv
  • Full Disk Encryption requirement
  • Node.js 0.8
  • Node.js 0.10
  • Node.js 0.12
  • Ruby 1.9.3
  • Ruby 2.0.0
  • Ruby 2.1.8
  • Ruby 2.2.4
  • ack
  • Findutils
  • GNU tar

Customizing

You can always check out the number of existing modules we already provide as optional installs under the boxen organization. These modules are all tested to be compatible with Boxen. Use the Puppetfile to pull them in dependencies automatically whenever boxen is run.

Including boxen modules from github (boxen/puppet-)

You must add the github information for your added Puppet module into your Puppetfile at the root of your boxen repo (ex. /path/to/your-boxen/Puppetfile):

# Core modules for a basic development environment. You can replace
# some/most of these if you want, but it's not recommended.

github "repository", "2.0.2"
github "dnsmasq",    "1.0.0"
github "gcc",        "1.0.0"
github "git",        "1.2.2"
github "homebrew",   "1.1.2"
github "hub",        "1.0.0"
github "inifile",    "0.9.0", :repo => "cprice404/puppetlabs-inifile"
github "nginx",      "1.4.0"
github "nodejs",     "2.2.0"
github "ruby",       "4.1.0"
github "stdlib",     "4.0.2", :repo => "puppetlabs/puppetlabs-stdlib"
github "sudo",       "1.0.0"

# Optional/custom modules. There are tons available at
# https://github.com/boxen.

github "java",     "1.6.0"

In the above snippet of a customized Puppetfile, the bottom line includes the Java module from Github using the tag "1.6.0" from the github repository "boxen/puppet-java/releases". The function "github" is defined at the top of the Puppetfile and takes the name of the module, the version, and optional repo location:

def github(name, version, options = nil)
  options ||= {}
  options[:repo] ||= "boxen/puppet-#{name}"
  mod name, version, :github_tarball => options[:repo]
end

Now Puppet knows where to download the module from when you include it in your site.pp or mypersonal.pp file:

# include the java module referenced in my Puppetfile with the line
# github "java",     "1.6.0"
include java

Hiera

Hiera is preferred mechanism to make changes to module defaults (e.g. default global ruby version, service ports, etc). This repository supplies a starting point for your Hiera configuration at config/hiera.yml, and an example data file at hiera/common.yaml. See those files for more details.

The default config/hiera.yml is configured with a hierarchy that allows individuals to have their own hiera data file in hiera/users/{github_login}.yaml which augments and overrides site-wide values in hiera/common.yaml. This default is, as with most of the configuration in the example repo, a great starting point for many organisations, but is totally up to you. You might want to, for example, have a set of values that can't be overridden by adding a file to the top of the hierarchy, or to have values set on specific OS versions:

# ...
:hierarchy:
  - "global-overrides.yaml"
  - "users/%{::github_login}"
  - "osx-%{::macosx_productversion_major}"
  - common

Node definitions

Puppet has the concept of a 'node', which is essentially the machine on which Puppet is running. Puppet looks for node definitions in the manifests/site.pp file in the Boxen repo. You'll see a default node declaration that looks like the following:

node default {
  # core modules, needed for most things
  include dnsmasq

  # more...
}

How Boxen interacts with Puppet

Boxen runs everything declared in manifests/site.pp by default. But just like any other source code, throwing all your work into one massive file is going to be difficult to work with. Instead, we recommend you use modules in the Puppetfile when you can and make new modules in the modules/ directory when you can't. Then add include $modulename for each new module in manifests/site.pp to include them. One pattern that's very common is to create a module for your organization (e.g., modules/github) and put an environment class in that module to include all of the modules your organization wants to install for everyone by default. An example of this might look like so:

# modules/github/manifests/environment.pp

 class github::environment {
   include github::apps::mac

   include ruby::1-8-7

   include projects::super-top-secret-project
 }

If you'd like to read more about how Puppet works, we recommend checking out the official documentation for:

Creating a personal module

See the documentation in the modules/people directory for creating per-user modules that don't need to be applied globally to everyone.

Creating a project module

See the documentation in the modules/projects directory for creating organization projects (i.e., repositories that people will be working in).

Binary packages

We support binary packaging for everything in Homebrew, rbenv, and nvm. See config/boxen.rb for the environment variables to define.

Sharing Boxen Modules

If you've got a Boxen module you'd like to be grouped under the Boxen org, (so it can easily be found by others), please file an issue on this repository with a link to your module. We'll review the code briefly, and if things look pretty all right, we'll fork it under the Boxen org and give you read+write access to our fork. You'll still be the maintainer, you'll still own the issues and PRs. It'll just be listed under the boxen org so folks can find it more easily.

upgrading boxen

See FAQ-Upgrading.

Integrating with Github Enterprise

If you're using a Github Enterprise instance rather than github.com, you will need to set the BOXEN_GITHUB_ENTERPRISE_URL and BOXEN_REPO_URL_TEMPLATE variables in your Boxen config.

Halp!

See FAQ.

Use Issues or #boxen on irc.freenode.net.

our-boxen's People

Contributors

annetheagile avatar createdbypete avatar dgoodlad avatar fromonesrc avatar indirect avatar jacobbednarz avatar jbarnette avatar jhaals avatar johnsyweb avatar jroes avatar logicminds avatar mattr- avatar mikemcquaid avatar mroth avatar n0ts avatar nbmorgan avatar ocxo avatar orien avatar owenthereal avatar paxan avatar petems avatar radeksimko avatar rafaelfranca avatar sankage avatar seanknox avatar stepanstipl avatar tarebyte avatar technicalpickles avatar wfarr avatar ymendel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

our-boxen's Issues

Gearing up for release

The time to ๐Ÿšข is approaching. @jbarnette and I are going to be finishing up the transition inside GitHub next week, and shortly thereafter looking to open this up.

Now is the time where we want all the feedback you've built up over the past while using it. TELL US HOW YOU REALLY FEEL.

/cc @boxen/early-testers-non-hubbers

Errors showing up twice. Errors showing up twice.

I only ran it once. Perhaps the error checking is being doubled up somewhere.

โ˜ฐ  script/boxen
Boxen Keychain Helper: Encountered error code: -25300
Boxen Keychain Helper: Encountered error code: -25300
--> You have an existing rbenv installed in ~/.rbenv.
    Boxen provides its own rbenv, so consider deleting yours.

--> Hey, I need your current GitHub credentials to continue.

GitHub login: |kevinsuttle| kevinsuttle
GitHub password: ************************************************
--> You have an existing Homebrew install in /usr/local
    The Boxen provides its own Homebrew, so consider deleting yours.
    Keeping both will confuse many projects.

Boxen Keychain Helper: Encountered error code: -25300
Boxen Keychain Helper: Encountered error code: -25300
Error: Please enable full disk encryption and try again at /Users/kevinsuttle/Github/my-boxen/manifests/site.pp:62 on node kevins-macbook-pro.local
Error: Please enable full disk encryption and try again at /Users/kevinsuttle/Github/my-boxen/manifests/site.pp:62 on node kevins-macbook-pro.local

Also, asking the user to delete their Homebrew and Rbenv installs sounds pretty drastic to me. Anyone else think so, or wonder if there is a way to work with existing installs?

enable full disk encryption

I just encountered the below issue and i can't figure out how to fix this:

my-boxen git:(master) script/boxen
Password for sudo:
Error: Please enable full disk encryption and try again at /Users/$user/src/my-boxen/manifests/site.pp:62 on node mac-pro.local
Error: Please enable full disk encryption and try again at /Users/$user/src/my-boxen/manifests/site.pp:62 on node mac-pro.local

Not reading/evaluating Puppetfile?

I'm trying to install postgresql with a project, so I added the following to my Puppetfile:

github "sysctl", "1.0.0"
github "postgresql", "1.0.0"

And in my project.pp:

class projects::myproj {
  include postgresql

  boxen::project { 'myproj':
    postgresql    => true,
    nginx         => true,
    ruby          => '1.9.3',
    source        => 'myorg/myproj'
  }
}

But I received:

Error: Could not find class postgresql for jroes.local on node jroes.local
Error: Could not find class postgresql for jroes.local on node jroes.local

I tried adding trash (syntactically invalid strings) to my Puppetfile to see if it was reading it, and never saw any new errors. I removed my Puppetfile.lock, and it wasn't regenerated.

What is supposed to parse the Puppetfile, and when?

no such file to load -- bundler/setup

Started out with manual install, and got this when running script/boxen

/Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `gem_original_require': no such file to load -- bundler/setup (LoadError)
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
    from ./config/basic.rb:23
    from script/boxen:66:in `load'
    from script/boxen:66

Fix the credential cacher

The symlink is expecting /opt/boxen/repo/script/boxen-credential-helper IIRC. We need to make it able to symlink so we can utilize the credentials for git clones for private repos.

Failed for jhaals

Running on jhaalss-MacBook-Pro.local (OS X 10.8) under /bin/bash, version 807e012 (compare to master).

Puppet Command

/Users/jhaals/our-boxen/bin/puppet apply --group admin --confdir /tmp/boxen/puppet/conf --vardir /tmp/boxen/puppet/var --libdir /Users/jhaals/our-boxen/lib --libdir /Users/jhaals/our-boxen/.bundle/ruby/1.8/gems/boxen-0.4.0/lib --manifestdir /Users/jhaals/our-boxen/manifests --modulepath /Users/jhaals/our-boxen/modules:/Users/jhaals/our-boxen/shared --logdest /Users/jhaals/our-boxen/log/boxen.log --logdest console --no-report --detailed-exitcodes /Users/jhaals/our-boxen/manifests/site.pp

Output (from /Users/jhaals/our-boxen/log/boxen.log)

Wed Oct 10 12:02:25 +0200 2012 Puppet (err): Unable to set ownership of log file
Wed Oct 10 12:02:29 +0200 2012 /Stage[main]/Boxen::Config/File[/Users/jhaals/src]/ensure (notice): created
Wed Oct 10 12:02:53 +0200 2012 /Stage[main]/Git/Package[boxen/brews/git] (err): Could not evaluate: Puppet::Util::Log requires a message

API Limit

I've been playing with boxes for an afternoon, and got into some issues fairly soon. Just found out why: API Rate Limit Exceeded in librarian. If i can hit it this fast by myself and one VM, it will go down quickly when i start rolling this out at work with 20 developers on one external ip address.

Is there a way to circumvent this limit in boxen? Seems like librarian itself has support for api keys https://github.com/rodjek/librarian-puppet/blob/master/lib/librarian/puppet/source/githubtarball.rb#L115 but is there a way to integrate this into boxen?

`boxen-my-config` should not run editor without terminal

boxen-my-config needs to only output the path in sensible places so it can be used as part of a pipeline. Running it on its own can start an editor if it must, but that cannot be the general case because vim gets unhappy about being run in a non-terminal.

@rodjek saw the same behavior.

tty -s doesn't seem to be the way to go, and the same with the replacement of test -t 0.

There was debate about this before, and it was apparently settled by the addition of the tty -s command. That doesn't work, and I don't know what does.

cc @wfarr @jbarnette

Multiple issues

Running into this:

0;RalfR@imac-ralfr /Users/RalfR/src/boxen~/src/boxen(master) > script/boxen Boxen Keychain Helper: Encountered error code: -25300 Boxen Keychain Helper: Encountered error code: -25300 --> Hey, I need your current GitHub credentials to continue. GitHub login: |24z| GitHub password: *************** --> You have an existing Homebrew install in /usr/local The Boxen provides its own Homebrew, so consider deleting yours. Keeping both will confuse many projects. Boxen Keychain Helper: Encountered error code: -25300 Boxen Keychain Helper: Encountered error code: -25308 /Users/RalfR/src/boxen/.bundle/ruby/1.8/gems/boxen-1.0.1/lib/boxen/keychain.rb:54:in set': Can't save GitHub Password in the keychain. (Boxen::Error) from /Users/RalfR/src/boxen/.bundle/ruby/1.8/gems/boxen-1.0.1/lib/boxen/keychain.rb:28:inpassword=' from /Users/RalfR/src/boxen/.bundle/ruby/1.8/gems/boxen-1.0.1/lib/boxen/config.rb:62:in save' from /Users/RalfR/src/boxen/.bundle/ruby/1.8/gems/boxen-1.0.1/lib/boxen/cli.rb:48:inrun' from script/boxen:71 ~/src/boxen(master) >

Failed for jhaals

Running on jhaalss-MacBook-Pro.local (OS X 10.8) under /bin/bash, version 807e012 (compare to master).

Puppet Command

/Users/jhaals/our-boxen/bin/puppet apply --group admin --confdir /tmp/boxen/puppet/conf --vardir /tmp/boxen/puppet/var --libdir /Users/jhaals/our-boxen/lib --libdir /Users/jhaals/our-boxen/.bundle/ruby/1.8/gems/boxen-0.4.0/lib --manifestdir /Users/jhaals/our-boxen/manifests --modulepath /Users/jhaals/our-boxen/modules:/Users/jhaals/our-boxen/shared --logdest /Users/jhaals/our-boxen/log/boxen.log --logdest console --no-report --detailed-exitcodes /Users/jhaals/our-boxen/manifests/site.pp

Output (from /Users/jhaals/our-boxen/log/boxen.log)

Wed Oct 10 10:36:11 +0200 2012 Puppet (err): Unable to set ownership of log file
Wed Oct 10 10:36:15 +0200 2012 /Stage[main]/Boxen::Config/File[/Users/jhaals/src]/ensure (notice): created
Wed Oct 10 10:36:15 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/bin]/ensure (notice): created
Wed Oct 10 10:36:15 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/data]/ensure (notice): created
Wed Oct 10 10:36:15 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/data/project-sockets]/ensure (notice): created
Wed Oct 10 10:36:15 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/data/puppet]/ensure (notice): created
Wed Oct 10 10:36:15 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/log]/ensure (notice): created
Wed Oct 10 10:36:16 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/env.d]/ensure (notice): created
Wed Oct 10 10:36:16 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/env.d/config.sh]/ensure (notice): defined content as '{md5}22fa2009a01ef8a1a31808e6db85105a'
Wed Oct 10 10:36:16 +0200 2012 /Stage[main]/Boxen::Sudoers/Sudoers[launchctl]/ensure (notice): created
Wed Oct 10 10:36:17 +0200 2012 /Stage[main]/Boxen::Sudoers/Sudoers[boxen]/ensure (notice): created
Wed Oct 10 10:36:18 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/README.md]/ensure (notice): defined content as '{md5}36be20bef1e05e4d42bf2243c0ff4368'
Wed Oct 10 10:36:18 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/env.sh]/ensure (notice): defined content as '{md5}3ba28940d2c1d47310e788b8d3ff0e23'
Wed Oct 10 10:36:18 +0200 2012 /Stage[main]/Boxen::Sudoers/Sudoers[fdesetup]/ensure (notice): created
Wed Oct 10 10:36:19 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/env.d/gh_creds.sh]/ensure (notice): defined content as '{md5}d56c9383879b46199f2e22d42cd2b30c'
Wed Oct 10 10:36:19 +0200 2012 /Stage[main]/Boxen::Config/Group[puppet]/ensure (notice): created
Wed Oct 10 10:36:20 +0200 2012 /Stage[main]/Boxen::Security/Boxen::Osx_defaults[short delay for password dialog on screensaver]/Exec[osx_defaults write com.apple.screensaver:askForPasswordDelay=>5]/returns (notice): executed successfully
Wed Oct 10 10:36:20 +0200 2012 /Stage[main]/Git/File[/opt/boxen/bin/boxen-git-credential]/ensure (notice): created
Wed Oct 10 10:36:20 +0200 2012 /Stage[main]/Git/File[/opt/boxen/config/git]/ensure (notice): created
Wed Oct 10 10:36:20 +0200 2012 /Stage[main]/Git/File[/opt/boxen/config/git/gitignore]/ensure (notice): defined content as '{md5}365285db792b0fc07cb61edc73b3452d'
Wed Oct 10 10:36:20 +0200 2012 /Stage[main]/Git/Git::Config::Global[credential.helper]/Ini_setting[set credential.helper to /opt/boxen/bin/boxen-git-credential in /Users/jhaals/.gitconfig]/ensure (notice): created
Wed Oct 10 10:36:20 +0200 2012 /Stage[main]/Git/Git::Config::Global[core.excludesfile]/Ini_setting[set core.excludesfile to /opt/boxen/config/git/gitignore in /Users/jhaals/.gitconfig]/ensure (notice): created
Wed Oct 10 10:36:20 +0200 2012 /Stage[main]/Boxen::Config/File[/opt/boxen/data/puppet/graphs]/ensure (notice): created
Wed Oct 10 10:36:20 +0200 2012 /Stage[main]/Homebrew/File[/opt/boxen/homebrew]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Homebrew/Exec[install-homebrew]/returns (notice): executed successfully
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Homebrew/File[/opt/boxen/env.d/cflags.sh]/ensure (notice): defined content as '{md5}ea9e5db4aa3bdef3a5d539765dfce761'
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Homebrew/File[/opt/boxen/homebrew/Library/Taps]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Homebrew/File[/opt/boxen/homebrew/Library/Taps/boxen-brews]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/emacs.rb]/ensure (notice): defined content as '{md5}4a0397dc0358a82a1991390f09373b21'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/elasticsearch.rb]/ensure (notice): defined content as '{md5}d8a243685657a100f31806dbe0465818'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/riak.rb]/ensure (notice): defined content as '{md5}006de665c87f1390068594c4335d111d'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/dnsmasq.rb]/ensure (notice): defined content as '{md5}4441a29afb16ca9c19aaeac8fefa4861'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/xpdf.rb]/ensure (notice): defined content as '{md5}bf7e67ba0d3e51e0ecd380a73084f1ed'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/nginx.rb]/ensure (notice): defined content as '{md5}4e1617abd90a041d79feb5e84983c092'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/wkhtmltopdf.rb]/ensure (notice): defined content as '{md5}ca26f2926015cca9638cf7e01b5f0b7d'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/qt.rb]/ensure (notice): defined content as '{md5}c5c9ef57609bde50e6c47cdfb5516ec8'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/postgresql.rb]/ensure (notice): defined content as '{md5}14761f4c52641eea55b7fdb31216c5d1'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/dpkg.rb]/ensure (notice): defined content as '{md5}1faf5d1038385da632d703d566de23f5'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/git.rb]/ensure (notice): defined content as '{md5}4da5b53761c112247f3f6048ff732a01'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/augeas.rb]/ensure (notice): defined content as '{md5}8072011ff1c00c837c2cfb5d068e5270'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/memcached.rb]/ensure (notice): defined content as '{md5}492d1e7cccf641301f4b27e813a4868e'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/mysql.rb]/ensure (notice): defined content as '{md5}73925bde6a515723447c0b59655d2b30'
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Nginx::Config/File[/opt/boxen/config/nginx]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Nginx::Config/File[/opt/boxen/config/nginx/sites]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Nginx::Config/File[/opt/boxen/config/nginx/public]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/config/nginx/public/fonts]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/config/nginx/public/index.html]/ensure (notice): defined content as '{md5}3b180c2f17c11e78f97c5505a491a078'
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Nginx::Config/File[/opt/boxen/data/nginx]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/config/nginx/public/fonts/pictos-web.svg]/ensure (notice): defined content as '{md5}f3490566888c762c5fc8136e88ab241b'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/config/nginx/public/images]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/config/nginx/public/images/puppet.png]/ensure (notice): defined content as '{md5}1eb16ae4e0a8293e6eec9a498e71bfa2'
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Nginx::Config/File[/opt/boxen/config/nginx/mime.types]/ensure (notice): defined content as '{md5}530e1a47497cea31c5199ecffef93c29'
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Rbenv/File[/opt/boxen/env.d/rbenv.sh]/ensure (notice): defined content as '{md5}7a96c7c162434c0ce283ac6a2585d68f'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/solr.rb]/ensure (notice): defined content as '{md5}21b0c8d097bb0fbab2999b6d0ddeb1b9'
Wed Oct 10 10:36:24 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/redis.rb]/ensure (notice): defined content as '{md5}f717eceac43e45d9c194b2c62c22bc69'
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Nvm/File[/opt/boxen/env.d/nvm.sh]/ensure (notice): defined content as '{md5}dea5a4eb299d3852172d6cbb361a4ebe'
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Nvm/File[/opt/boxen/bin/boxen-nvm-exec]/ensure (notice): defined content as '{md5}1385f88601a68d2490d56f704a0762cd'
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Nvm/File[/opt/boxen/bin/node-waf]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Nvm/File[/opt/boxen/bin/npm]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Dnsmasq::Config/File[/opt/boxen/log/dnsmasq]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Dnsmasq::Config/File[/etc/resolver]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Dnsmasq::Config/File[/etc/resolver/dev]/ensure (notice): defined content as '{md5}5d32be72cf6aac6410325aecda6d5859'
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Dnsmasq::Config/File[/opt/boxen/config/dnsmasq]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Dnsmasq::Config/File[/Library/LaunchDaemons/com.boxen.dnsmasq.plist]/ensure (notice): defined content as '{md5}7c144c733ad40e5bd03754ef34c8190b'
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Nginx::Config/File[/opt/boxen/log/nginx]/ensure (notice): created
Wed Oct 10 10:36:24 +0200 2012 /Stage[main]/Homebrew/Exec[fix-homebrew-permissions]/returns (notice): executed successfully
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Boxen::Profile/Exec[create a minimal profile]/returns (notice): executed successfully
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Dnsmasq::Config/File[/opt/boxen/config/dnsmasq/dnsmasq.conf]/ensure (notice): defined content as '{md5}8e35a05788e08a08d3ba77fc5d271ca8'
Wed Oct 10 10:36:25 +0200 2012 /File[/opt/boxen/config/nginx/public/images/background-tile.png]/ensure (notice): defined content as '{md5}8b19bace6904e62c9e8117b14b006fe3'
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Boxen::Gemrc/File[/Users/jhaals/.gemrc]/ensure (notice): defined content as '{md5}6c8a669695800aa1b602af00bb43e9d6'
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Homebrew/File[/opt/boxen/homebrew/Library/Homebrew/boxen-monkeypatches.rb]/ensure (notice): defined content as '{md5}08c9e470e4215e99dbc0e944200fe508'
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Homebrew/File[/opt/boxen/homebrew/Library/Homebrew/cmd/boxen-upgrade.rb]/ensure (notice): defined content as '{md5}214fd2083aba837296d580f979d914a6'
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Homebrew/File[/opt/boxen/homebrew/Library/Homebrew/cmd/boxen-latest.rb]/ensure (notice): defined content as '{md5}f3d578a229fa171d050642ff1beb4d33'
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Hub/File[/opt/boxen/env.d/hub.sh]/ensure (notice): defined content as '{md5}7059a8ff6cc1aa39ab6ec047e51ae3b9'
Wed Oct 10 10:36:25 +0200 2012 /File[/opt/boxen/config/nginx/public/fonts/pictos-web.woff]/ensure (notice): defined content as '{md5}44a0247f7400f26597fbed1483422a24'
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Nginx::Config/File[/Library/LaunchDaemons/com.boxen.nginx.plist]/ensure (notice): defined content as '{md5}1eeddcf28ff0aafa0b7d2e7468ad2ef3'
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Rbenv/File[/opt/boxen/rbenv]/ensure (notice): created
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Rbenv/File[/opt/boxen/rbenv/versions]/ensure (notice): created
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Homebrew/File[/opt/boxen/homebrew/Library/Homebrew/cmd/boxen-install.rb]/ensure (notice): defined content as '{md5}14f23c053c54b8e514658bc4bc5b3b88'
Wed Oct 10 10:36:25 +0200 2012 /File[/opt/boxen/config/nginx/public/fonts/pictos-web.eot]/ensure (notice): defined content as '{md5}7a594c02942913cdb33f266f60015855'
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Hub/Git::Config::Global[hub.protocol]/Ini_setting[set hub.protocol to https in /Users/jhaals/.gitconfig]/ensure (notice): created
Wed Oct 10 10:36:25 +0200 2012 /File[/opt/boxen/config/nginx/public/css]/ensure (notice): created
Wed Oct 10 10:36:25 +0200 2012 /File[/opt/boxen/config/nginx/public/css/bass.css]/ensure (notice): defined content as '{md5}961b4b88d3b19b58b34447f87ae58c8e'
Wed Oct 10 10:36:25 +0200 2012 /File[/opt/boxen/config/nginx/public/fonts/pictos-web.ttf]/ensure (notice): defined content as '{md5}f705625d9690d8a3d6d6111412fde810'
Wed Oct 10 10:36:25 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/README.md]/ensure (notice): defined content as '{md5}3a621e724bfdd5363235fd3ddf315ea5'
Wed Oct 10 10:36:25 +0200 2012 /Stage[main]/Homebrew/File[/opt/boxen/env.d/ldflags.sh]/ensure (notice): defined content as '{md5}baf9d685b70cecf8dd5da44ee45f8023'
Wed Oct 10 10:36:25 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/apple-gcc42.rb]/ensure (notice): defined content as '{md5}56f7bf85a326e8575f2939c67fbccc94'
Wed Oct 10 10:36:25 +0200 2012 /File[/opt/boxen/homebrew/Library/Taps/boxen-brews/mongodb.rb]/ensure (notice): defined content as '{md5}ce70fdeafc72375e0f89c1313fdfd40a'
Wed Oct 10 10:37:10 +0200 2012 /Stage[main]/Homebrew/Package[boxen/brews/apple-gcc42]/ensure (notice): created
Wed Oct 10 10:37:16 +0200 2012 /Stage[main]/Rbenv/Package[ruby-build]/ensure (notice): created
Wed Oct 10 10:38:01 +0200 2012 Puppet (err): Could not update: Failed running sudo -E -u jhaals /opt/boxen/homebrew/bin/brew boxen-install boxen/brews/git
Wed Oct 10 10:38:01 +0200 2012 /Stage[main]/Git/Package[boxen/brews/git]/ensure (err): change from absent to 1.7.10.4-boxen1 failed: Could not update: Failed running sudo -E -u jhaals /opt/boxen/homebrew/bin/brew boxen-install boxen/brews/git
Wed Oct 10 10:38:05 +0200 2012 /Stage[main]/Rbenv/Package[rbenv]/ensure (notice): created
Wed Oct 10 10:38:09 +0200 2012 /Stage[main]/Hub/Package[hub]/ensure (notice): created
Wed Oct 10 10:40:14 +0200 2012 /Stage[main]/Ruby::1-8-7-p358/Ruby[1.8.7-p358]/Exec[ruby-install-1.8.7-p358]/returns (notice): executed successfully
Wed Oct 10 10:40:18 +0200 2012 /Stage[main]/Ruby::1-8-7-p358/Ruby[1.8.7-p358]/Ruby::Gem[rbenv-autohash for 1.8.7-p358]/Rbenv_gem[rbenv-autohash for 1.8.7-p358]/ensure (notice): created
Wed Oct 10 10:45:59 +0200 2012 /Stage[main]/Ruby::1-9-3-p194/Ruby[1.9.3-p194]/Exec[ruby-install-1.9.3-p194]/returns (notice): executed successfully
Wed Oct 10 10:45:59 +0200 2012 /Stage[main]/Ruby::1-9-3-p194/Ruby[1.9.3-p194]/File[/opt/boxen/rbenv/version]/ensure (notice): created
Wed Oct 10 10:46:02 +0200 2012 /Stage[main]/Ruby::1-9-3-p194/Ruby[1.9.3-p194]/Ruby::Gem[rbenv-autohash for 1.9.3-p194]/Rbenv_gem[rbenv-autohash for 1.9.3-p194]/ensure (notice): created
Wed Oct 10 10:51:35 +0200 2012 /Stage[main]/Ruby::1-9-2-p320/Ruby[1.9.2-p320]/Exec[ruby-install-1.9.2-p320]/returns (notice): executed successfully
Wed Oct 10 10:51:38 +0200 2012 /Stage[main]/Ruby::1-9-2-p320/Ruby[1.9.2-p320]/Ruby::Gem[rbenv-autohash for 1.9.2-p320]/Rbenv_gem[rbenv-autohash for 1.9.2-p320]/ensure (notice): created
Wed Oct 10 10:51:50 +0200 2012 /Stage[main]/Dnsmasq/Package[boxen/brews/dnsmasq]/ensure (notice): created
Wed Oct 10 10:51:52 +0200 2012 /Stage[main]/Dnsmasq/Service[com.boxen.dnsmasq]/ensure (notice): ensure changed 'stopped' to 'running'
Wed Oct 10 10:51:54 +0200 2012 /Stage[main]/Dnsmasq/Service[com.boxen.dnsmasq] (notice): Triggered 'refresh' from 3 events
Wed Oct 10 10:51:58 +0200 2012 /Stage[main]/Ruby::1-9-3-p194/Ruby[1.9.3-p194]/Ruby::Gem[bundler for 1.9.3-p194]/Rbenv_gem[bundler for 1.9.3-p194]/ensure (notice): created
Wed Oct 10 10:51:58 +0200 2012 /Stage[main]/Ruby::1-9-3/File[/opt/boxen/rbenv/versions/1.9.3]/ensure (notice): created
Wed Oct 10 10:52:01 +0200 2012 /Stage[main]/Ruby::1-8-7-p358/Ruby[1.8.7-p358]/Ruby::Gem[bundler for 1.8.7-p358]/Rbenv_gem[bundler for 1.8.7-p358]/ensure (notice): created
Wed Oct 10 10:52:01 +0200 2012 /Stage[main]/Ruby::1-8-7/File[/opt/boxen/rbenv/versions/1.8.7]/ensure (notice): created
Wed Oct 10 10:52:01 +0200 2012 /Stage[main]/Nvm/File[/opt/boxen/bin/node]/ensure (notice): created
Wed Oct 10 10:52:03 +0200 2012 /Stage[main]/Ruby::1-9-2-p320/Ruby[1.9.2-p320]/Ruby::Gem[bundler for 1.9.2-p320]/Rbenv_gem[bundler for 1.9.2-p320]/ensure (notice): created
Wed Oct 10 10:52:03 +0200 2012 /Stage[main]/Homebrew::Repo/Exec[brew update] (notice): Dependency Package[boxen/brews/git] has failures: true
Wed Oct 10 10:52:03 +0200 2012 /Stage[main]/Homebrew::Repo/Exec[brew update] (warning): Skipping because of failed dependencies
Wed Oct 10 10:52:03 +0200 2012 /Stage[main]//Node[default]/Package[findutils] (notice): Dependency Package[boxen/brews/git] has failures: true
Wed Oct 10 10:52:03 +0200 2012 /Stage[main]//Node[default]/Package[findutils] (warning): Skipping because of failed dependencies
Wed Oct 10 10:52:03 +0200 2012 /Stage[main]//Node[default]/Package[ack] (notice): Dependency Package[boxen/brews/git] has failures: true
Wed Oct 10 10:52:03 +0200 2012 /Stage[main]//Node[default]/Package[ack] (warning): Skipping because of failed dependencies
Wed Oct 10 10:52:03 +0200 2012 /Stage[main]//Node[default]/Package[gnu-tar] (notice): Dependency Package[boxen/brews/git] has failures: true
Wed Oct 10 10:52:03 +0200 2012 /Stage[main]//Node[default]/Package[gnu-tar] (warning): Skipping because of failed dependencies
Wed Oct 10 10:52:03 +0200 2012 /Stage[main]/Nginx::Config/File[/opt/boxen/config/nginx/nginx.conf]/ensure (notice): defined content as '{md5}bb0e31a5cd16f9fa623db892c268e65d'
Wed Oct 10 10:53:07 +0200 2012 /Stage[main]/Nginx/Package[boxen/brews/nginx]/ensure (notice): created
Wed Oct 10 10:53:07 +0200 2012 /Stage[main]/Nginx/Service[com.boxen.nginx]/ensure (notice): ensure changed 'stopped' to 'running'
Wed Oct 10 10:53:07 +0200 2012 /Stage[main]/Nginx/Service[com.boxen.nginx] (notice): Triggered 'refresh' from 4 events
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Ruby::1-9-2/File[/opt/boxen/rbenv/versions/1.9.2]/ensure (notice): created
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Boxen::Repo/Repository[/opt/boxen/repo] (err): Provider git is not functional on this host
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nvm/Repository[/opt/boxen/nvm] (err): Provider git is not functional on this host
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Boxen::Bin/File[/opt/boxen/bin/boxen] (notice): Dependency Package[boxen/brews/git] has failures: true
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Boxen::Bin/File[/opt/boxen/bin/boxen] (notice): Dependency Repository[/opt/boxen/repo] has failures: true
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Boxen::Bin/File[/opt/boxen/bin/boxen] (warning): Skipping because of failed dependencies
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nvm/File[/opt/boxen/nvm/alias] (notice): Dependency Repository[/opt/boxen/nvm] has failures: true
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nvm/File[/opt/boxen/nvm/alias] (warning): Skipping because of failed dependencies
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-6/Nodejs[0.6.20]/Exec[nvm-install-0.6.20] (notice): Dependency Repository[/opt/boxen/nvm] has failures: true
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-6/Nodejs[0.6.20]/Exec[nvm-install-0.6.20] (warning): Skipping because of failed dependencies
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-6/File[/opt/boxen/nvm/alias/v0.6] (notice): Dependency Repository[/opt/boxen/nvm] has failures: true
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-6/File[/opt/boxen/nvm/alias/v0.6] (warning): Skipping because of failed dependencies
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-8/Nodejs[0.8.8]/Exec[nvm-install-0.8.8] (notice): Dependency Repository[/opt/boxen/nvm] has failures: true
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-8/Nodejs[0.8.8]/Exec[nvm-install-0.8.8] (warning): Skipping because of failed dependencies
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-8/File[/opt/boxen/nvm/alias/v0.8] (notice): Dependency Repository[/opt/boxen/nvm] has failures: true
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-8/File[/opt/boxen/nvm/alias/v0.8] (warning): Skipping because of failed dependencies
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-4/Nodejs[0.4.10]/Exec[nvm-install-0.4.10] (notice): Dependency Repository[/opt/boxen/nvm] has failures: true
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-4/Nodejs[0.4.10]/Exec[nvm-install-0.4.10] (warning): Skipping because of failed dependencies
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-4/File[/opt/boxen/nvm/alias/v0.4] (notice): Dependency Repository[/opt/boxen/nvm] has failures: true
Wed Oct 10 10:53:08 +0200 2012 /Stage[main]/Nodejs::0-4/File[/opt/boxen/nvm/alias/v0.4] (warning): Skipping because of failed dependencies

including other modules not working

I have successfully forked "our-boxen" and installed it on my Macbook. Now I want to add Cassandra, which has a few requirements. When I tried to include cassandra and it's requirements (java, etc.) in my "site.pp" file it didn't work. I then tried a module with no dependencies, VLC, which I included like so:

node default {
  # core modules, needed for most things
  include dnsmasq
  include git
  include hub
  include nginx
  include nvm
  include ruby

  # modules I've added
  include vlc

But I keep getting the following error when I run "script/boxen" after including vlc in my "sites.pp" file:

Error: Could not find class vlc for kyles-macbook-pro.local on node kyles-macbook-pro.local

So my procedure is:

  1. Edit "sites.pp" to include vlc
  2. Run "scripts/boxen"
  3. I get the above error

Am I not following the proper procedure for adding modules? If you have any advice that would be awesome!

Highlight required modules or move them up under github "boxen"

I just tried to setup boxen. As I wanted to start small, I disabled most of the "Core modules for a basic development environment":

github "boxen", "1.0.2"

# Core modules for a basic development environment. You can replace
# some/most of these if you want, but it's not recommended.

# github "dnsmasq",  "1.0.0"
github "gcc",      "1.0.0"
github "git",      "1.0.0"
github "homebrew", "1.0.0"
# github "hub",      "1.0.0"
# github "inifile",  "0.9.0", :repo => "cprice-puppet/puppetlabs-inifile"
# github "nginx",    "1.0.0"
# github "nodejs",   "1.0.0"
# github "nvm",      "1.0.0"
# github "ruby",     "1.0.0"
# github "stdlib",   "3.0.0", :repo => "puppetlabs/puppetlabs-stdlib"
# github "sudo",     "1.0.0"

However, I then encountered the following exception:

Boxen Keychain Helper: Encountered error code: -25300
Boxen Keychain Helper: Encountered error code: -25300
Password for sudo: 
Error: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type anchor at /Users/robin/Code/my-boxen/shared/homebrew/manifests/config.pp:18 on node robins-macbook-air-2.local
Error: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type anchor at /Users/robin/Code/my-boxen/shared/homebrew/manifests/config.pp:18 on node robins-macbook-air-2.local
FAILED WITH CODE: 1

Enabling all modules fixed it in a way that I cannot reproduce it now. Once run, I can disable all modules above and boxen still works. I post it here mainly for documentary purpose, so feel free to close if you have no clue why this error could have occurred.

undefined method `each' for nil:NilClass

Running the following gives me an error.

$ bundle
$ ruby script/boxen
Boxen has a dirty tree, won't auto-update!
--> You have an existing Homebrew install in /usr/local
    The Boxen provides its own Homebrew, so consider deleting yours.
    Keeping both will confuse many projects.

--> You have an existing rbenv installed in ~/.rbenv.
    Boxen provides its own rbenv, so consider deleting yours.

Error: Could not run: Could not retrieve facts for sam.local: undefined method `each' for nil:NilClass

~/src dir

question, why do i need that directory? what purpose it serves? I have my repo in another folder, how do I disable the creation of that folder? also, how do I point it somewhere else?

repodir in /opt/boxen/config/boxen/defaults.json doesn't update to /opt/boxen/repo

Steps to reproduce

  • Clone boxen repo to /var/tmp/boxen
  • Do a first-run of boxen out of/var/tmp/boxen/script/boxen
  • Check out /opt/boxen/config/boxen/defaults.json - the repodir will still point to /var/tmp/boxen instead of /opt/boxen/repo. Changes to /opt/boxen/repo won't be picked up by boxen as it's still pointing at the repo in /var/tmp/boxen

This is probably a process issue - should you expect that initially cloning the boxen repo should be treated like a bootstrapping event and it should be cast-off in the end (thus making /opt/boxen/repo the 'authoritative' boxen repo on the system)? Should the /opt/boxen/repo directory be symlinked to something like ~/src/boxen so the user can work on their boxen setup out of somewhere that ISN'T /opt/boxen/repo? Should this be a configuration option or a question during the setup process?

Boxen asks for Github credentials twice

When running boxen for the first time, you get prompted for the following (in this order):

  • Your github credentials
  • Your account password (for sudo)
  • Your github credentials again

I've not traced through the code to see what's going on, but it's probably not ideal to ask you for the same credentials twice.

Gem issues

Running script/boxen gives the following error:

Could not find addressable-2.3.2 in any of the sources
Run `bundle install` to install missing gems.

I ran bundle install and still get the error. One thing I noticed, is that the .bundle/ruby directory has directories for 1.8 and 1.9.1 - the former being empty, and the latter containing the gem directories. However, .ruby-version is set to SYSTEM, which is 1.9.3. Not sure if any of that actually matters, but it seemed fishy to my noobish eyes.

EDIT: The issue seems to have been solved by restarting the shell and adding the suggested line to my .bashrc file (sorry for the poor scientific method here), but I have no idea why.

Multiple boxen

I have setup a personal boxen for my computers. I would like to setup a work boxen for my company to use. Is it possible to load projects from one boxen to another (e.g. I would like to work on a project from work on my personal laptop), or would I just need to copy the project manifests into the other boxen's repo?

Bump json gem version

Given the security stuff surrounding the JSON gem, we should probably bump it to 1.7.7

pkgdmg provider not working when app has previously been installed

  • No errors even when run in debug for either script/boxen or boxen.
  • Homebrew provider types working
  • pkgdmg provider type modules appear to compile but never apply
    Debug: importing '/Users/boris/src/my-boxen/shared/virtualbox/manifests/init.pp' in environment production
    Debug: Automatically imported virtualbox from virtualbox into production

To be clear I am adding the modules the same way (add to Pupppetfile for librarian-puppet and then just adding to default node manifest). Homebrew based modules working fine, pkgdmg (like skype, virtualbox, sublimetext) not doing a thing except importing the manifest.

Running with rbenv and such already installed considered harmful?

A quick story of my interaction. Tell me if I'm missing a step.

I gave ol' boxen a try on my existing system through the manual setup in the README. When I ran script/boxen, I got:

jroes my-boxen.master$ script/boxen
Username for 'https://github.com': jroes
Password for 'https://[email protected]': 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- bundler/setup (LoadError)
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from ./config/basic.rb:23
    from script/boxen:66:in `load'
    from script/boxen:66

Looks like the path specified in script/boxen is /usr/bin/ruby, which, if you've already got a standard rbenv setup, is system ruby (1.8.7). So I gave /usr/bin/gem install bundler a shot, and /usr/bin/bundle install, and I ran into another grouping of errors:

jroes my-boxen.master$ /usr/bin/bundle install && script/boxen
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Installing addressable (2.3.2) 
... <snip> ...
Installing open4 (1.3.0) 
Using bundler (1.2.4) 
Updating files in vendor/cache
Your bundle is complete! It was installed into ./.bundle
Username for 'https://github.com': jroes
Password for 'https://[email protected]': 
Boxen Keychain Helper: Encountered error code: -25300
Boxen Keychain Helper: Encountered error code: -25300
--> You have an existing rbenv installed in ~/.rbenv.
    Boxen provides its own rbenv, so consider deleting yours.

--> Hey, I need your current GitHub credentials to continue.

GitHub login: |jroes| 
GitHub password: ***************************************
Password for sudo: 
--> You have an existing Homebrew install in /usr/local
    The Boxen provides its own Homebrew, so consider deleting yours.
    Keeping both will confuse many projects.

Boxen Keychain Helper: Encountered error code: -25300
Boxen Keychain Helper: Encountered error code: -25300
Error: Please enable full disk encryption and try again at /Users/jroes/src/work/my-boxen/manifests/site.pp:62 on node jroes-skookum.local
Error: Please enable full disk encryption and try again at /Users/jroes/src/work/my-boxen/manifests/site.pp:62 on node jroes-skookum.local

I'm going to guess I'm out of the standard use case scope since my box is already sort of set up?

Add syncer ?

Right now we have no method of getting prebuilt binaries into an S3 bucket. Let's do that so nobody's compiling it all left and right.

Stuck at addressable-2.3.2

Could not find addressable-2.3.2 in any of the sources
Run bundle install to install missing gems.

Can not get past this. Run bundle install and nothing still.

Updates, Updates Everywhere

We've updated the Puppetfile, Gemfile, and config/boxen.rb here with a BUNCH MORE CHANGES.

You probably want to update your forks and get them in-line. This should be pretty darn close to where things will end up for OSS release.

/cc @boxen/early-testers-non-hubbers

Mac instructions please :)

Step 4 in the Readme:

Close and reopen your Terminal. If you have a shell config file (eg. ~/.bashrc) you'll need to add this at the very end: [ -f /opt/boxen/env.sh ] && source /opt/boxen/env.sh, and reload your shell.

Trouble with creating an organization-specific module (e.g. modules/myorg/...)

Despite clarifications that were made after #47 was filed, I am still struggling with using Puppet modules provided in boxen organization.

our-boxen/README.md says:

Boxen runs everything declared in manifests/site.pp by default. But just like any other source code, throwing all your work into one massive file is going to be difficult to work with. Instead, we recommend you use modules in the Puppetfile when you can and make new modules in the modules/ directory when you can't. Then add include $modulename for each new module in manifests/site.pp to include them. One pattern that's very common is to create a module for your organization (e.g., modules/github) and put an environment class in that module to include all of the modules your organization wants to install for everyone by default.

Armed with that suggestion, and some examples in Puppet documentation, I came up with the following stab at requiring java and python for organization myorg:

diff --git a/Puppetfile b/Puppetfile
index 52cf240..0f10c4b 100644
--- a/Puppetfile
+++ b/Puppetfile
@@ -36,3 +36,6 @@ github "sudo",     "1.0.0"

 # Optional/custom modules. There are tons available at
 # https://github.com/boxen.
+
+github "python",   "1.0.1"
+github "java",     "1.0.5"
diff --git a/manifests/site.pp b/manifests/site.pp
index 31f8341..db9d2b9 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -56,6 +56,7 @@ node default {
   include nginx
   include nvm
   include ruby
+  include myorg

   # fail if FDE is not enabled
   if $::root_encrypted == 'no' {
diff --git a/modules/myorg/manifests/init.pp b/modules/myorg/manifests/init.pp
new file mode 100644
index 0000000..d4aa7d4
--- /dev/null
+++ b/modules/myorg/manifests/init.pp
@@ -0,0 +1,4 @@
+class myorg {
+    include python
+    include java
+}

When I invoke boxen, I get:

Error: Could not find class python for mac-pavel.local on node mac-pavel.local
Error: Could not find class python for mac-pavel.local on node mac-pavel.local

I bet I am being a total Puppet noob, and there is a trivial explanation why the thing refuses to "find" python and java.

Any help will be appreciated.

OSX Keychain Auto-Lock

Can we add something to make the OSX keychain automatically lock after some amount of time. If we are storing GitHub creds in the keychain we should make sure that dumping the keychain is less trivial.

Send email to private testers and add to team

I got it drafted. If you want somebody looped in, LMK. I want to get these scros looped in as soon tomorrow. There's an Early Testers team with Pull-only access to all repos we can add them to also.

Current list is:

Patrick Van Stee
Charles Brian Quinn
John Vincent
Travis Graham
Josh Nichols

/cc @skalnik @jbarnette

Install problem script/boxen

Hi,

While installing I get the following message:

MacBook-Pro-:Boxen memyselfandi$ script/boxen
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Gem files will remain installed in /Users/memyselfandi/src/Boxen/.bundle/ruby/1.8/gems/json-1.7.7 for inspection.
Results logged to /Users/memyselfandi/src/Boxen/.bundle/ruby/1.8/gems/json-1.7.7/ext/json/ext/generator/gem_make.out
An error occurred while installing json (1.7.7), and Bundler cannot continue.
Make sure that gem install json -v '1.7.7' succeeds before bundling.
Can't bootstrap, dependencies are outdated.

Am I just to n00b to get this or is there something else going on?

I am using OS X 10.8.2.

Thanks in advance.

Boxen not installing properly

Seems to work if I run boxen like script/boxen but not from my raw install

~/src/my-boxen (1.9.3-p231-tcs-github1) $ boxen --env
Could not find addressable-2.3.2 in any of the sources
Run `bundle install` to install missing gems.

Weird behaviour when using the Puppet 'gem' provider

Hi guys,

I must admit, Boxen is awesome, and works like a charm. Thank you!
However, I have a weird issue, but I am not really able to fix it myself...

I tried to install vagrant in the manifests/site.pp:

package { 'vagrant':
    provider => 'gem',
    ensure  => latest,
}

Thing is, each time I run script/boxen (or just boxen), it installs the package. That's why I think there is an error (it should not reinstall the package once it's installed and up to date).
Moreover, I can't use vagrant because it does not exist.

As the boxen directory forces the use of the native ruby env (system), I wonder if the gem provider is actually usable in my boxen configuration, or if something could eventually conflict.

Does anyone use the gem provider in a Boxen context? If so, what did I miss?

PS: I by-passed the vagrant issue by using the pkgdmg provider.

Thanks,
William

Failed for jhaals

Running on jhaalss-MacBook-Pro.local (OS X 10.8) under /bin/bash, version 6e1bd53 (compare to master).

Changes

M Puppetfile
 M config/boxen.rb
?? .bashrc
?? modules/people/manifests/jhaals.pp

Puppet Command

/Users/jhaals/our-boxen/bin/puppet apply --group admin --confdir /tmp/boxen/puppet/conf --vardir /tmp/boxen/puppet/var --libdir /Users/jhaals/our-boxen/lib --libdir /opt/boxen/repo/.bundle/ruby/1.8/gems/boxen-0.4.0/lib --manifestdir /Users/jhaals/our-boxen/manifests --modulepath /Users/jhaals/our-boxen/modules:/Users/jhaals/our-boxen/shared --logdest /Users/jhaals/our-boxen/log/boxen.log --logdest console --no-report --detailed-exitcodes /Users/jhaals/our-boxen/manifests/site.pp

Output (from /Users/jhaals/our-boxen/log/boxen.log)

Thu Oct 11 16:05:12 +0200 2012 Puppet (err): Unable to set ownership of log file
Thu Oct 11 16:05:13 +0200 2012 Puppet (err): Could not find class sparrow for jhaalss-macbook-pro.local on node jhaalss-macbook-pro.local
Thu Oct 11 16:05:13 +0200 2012 Puppet (err): Could not find class sparrow for jhaalss-macbook-pro.local on node jhaalss-macbook-pro.local

No License

Please add a LICENSE file like boxen/boxen has.

Dirty tree on deployed computers

I'm trying out boxen on a clean VM and every time i add something to my-boxen, i rerun boxen --debug on the VM.

I've run into a lot of dirty tree errors so it wouldn't update. Since i know for sure i didn't do anything on the VM except run boxen this poses a problem.

I fixed it by removing a lot of stuff from the git repo and ignoring them.

/vendor/cache
/vendor/puppet/cache
/.projects
/Puppetfile.lock

Is this the way to go or am i just missing something?

Failed for glarizza

Running on Mountainlion.local (OS X 10.8) under /bin/bash, version 807e012 (compare to master).

Puppet Command

/Users/glarizza/src/our-boxen/bin/puppet apply --group admin --confdir /tmp/boxen/puppet/conf --vardir /tmp/boxen/puppet/var --libdir /Users/glarizza/src/our-boxen/lib --libdir /Users/glarizza/src/our-boxen/.bundle/ruby/1.8/gems/boxen-0.4.0/lib --manifestdir /Users/glarizza/src/our-boxen/manifests --modulepath /Users/glarizza/src/our-boxen/modules:/Users/glarizza/src/our-boxen/shared --logdest /Users/glarizza/src/our-boxen/log/boxen.log --logdest console --no-report --detailed-exitcodes /Users/glarizza/src/our-boxen/manifests/site.pp

Output (from /Users/glarizza/src/our-boxen/log/boxen.log)

Tue Oct 09 16:37:37 -0700 2012 Puppet (err): Could not create resources for managing Puppet's files and directories in sections [:main, :ssl, :agent]: undefined method `string' for nil:NilClass
Tue Oct 09 16:37:37 -0700 2012 Puppet (err): Could not create resources for managing Puppet's files and directories in sections [:main, :ssl, :agent]: undefined method `string' for nil:NilClass
undefined method `string' for nil:NilClass

boxen fails due to github API Rate Limit Exceeded

After repeated runs (debugging Puppetfile and manifest issues), boxen fails with:

"Could not resolve the dependencies"

Digging deeper, I ran "librarian-puppet install --path=./shared --verbose" and got "Unable to find module 'boxen/puppet-chrome' on https://github.com"

Adjusting the Puppetfile to not use puppet-chrome produced the same error for puppet-dropbox.

looking at librarian/puppet/source/githubtarball.rb, it appears this is caused by a failure of a the github API call: e.g. https://api.github.com/repos/boxen/puppet-dropbox/tags

When I send the API call manually, I get:

< HTTP/1.1 403 Forbidden
< Server: GitHub.com
< Date: Sat, 16 Feb 2013 22:23:04 GMT
< Content-Type: application/json; charset=utf-8
< Connection: keep-alive
< Status: 403 Forbidden
< X-RateLimit-Limit: 60
< X-RateLimit-Remaining: 0
< X-GitHub-Media-Type: github.beta
< X-Content-Type-Options: nosniff
< Content-Length: 62
<
{
"message": "API Rate Limit Exceeded for xxx.xxx.xxx.xxx"
}

Since the majority of puppet modules for boxen will be hosted on github, I expect this to be a recurring problem.

/opt/boxen/bin/boxen-git-credential fails to load config when running in bundled environment

Not sure if this is the right repo to file under, but here it goes...

We're using a bundler to manage the capistrano things of a project, in particular capistrano-gitflow, and it appears that when that tries to do authenticated git things, it doesn't find the credentials, so I have to enter manually everytime:

  * 14:05:08 == Currently executing `gitflow:verify_up_to_date'
/opt/boxen/bin/boxen-git-credential:28:in `require': no such file to load -- boxen/config (LoadError)
        from /opt/boxen/bin/boxen-git-credential:28
/opt/boxen/bin/boxen-git-credential:28:in `require': no such file to load -- boxen/config (LoadError)
        from /opt/boxen/bin/boxen-git-credential:28
Username for 'https://github.com': technicalpickles
Password for 'https://[email protected]':

My suspicion is that because it's being run in a bundled environment, it can't find boxen/config. Thoughts?

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.