Skip to content

Commit

Permalink
let there be light; and there was light
Browse files Browse the repository at this point in the history
  • Loading branch information
iancoffey committed Jan 31, 2013
0 parents commit 074f253
Show file tree
Hide file tree
Showing 11 changed files with 284 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.vagrant
Berksfile.lock
Gemfile.lock
*~
*#
.#*
\#*#
.*.sw[a-z]
*.un~
/cookbooks
3 changes: 3 additions & 0 deletions Berksfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
site :opscode

metadata
5 changes: 5 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
source :rubygems

gem 'berkshelf'
gem 'thor-foodcritic'
gem 'vagrant', '~> 1.0.5'
3 changes: 3 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Copyright (C) 2013 YOUR_NAME

All rights reserved - Do Not Redistribute
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# crystalline cookbook

# Requirements

# Usage

# Attributes

# Recipes

# Author

Author:: YOUR_NAME (<YOUR_EMAIL>)
6 changes: 6 additions & 0 deletions Thorfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# encoding: utf-8

require 'bundler'
require 'bundler/setup'
require 'thor/foodcritic'
require 'berkshelf/thor'
65 changes: 65 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
require 'berkshelf/vagrant'

Vagrant::Config.run do |config|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.

# The path to the Berksfile to use with Vagrant Berkshelf
# config.berkshelf.berksfile_path = "./Berksfile"

# An array of symbols representing groups of cookbook described in the Vagrantfile
# to skip installing and copying to Vagrant's shelf.
# config.berkshelf.only = []

# An array of symbols representing groups of cookbook described in the Vagrantfile
# to skip installing and copying to Vagrant's shelf.
# config.berkshelf.except = []

config.vm.host_name = "crystalline-berkshelf"

# config.vm.box = "Berkshelf-CentOS-6.3-x86_64-minimal"
# config.vm.box_url = "https://dl.dropbox.com/u/31081437/Berkshelf-CentOS-6.3-x86_64-minimal.box"
config.vm.box = "lucid32"

# Boot with a GUI so you can see the screen. (Default is headless)
# config.vm.boot_mode = :gui

# Assign this VM to a host-only network IP, allowing you to access it
# via the IP. Host-only networks can talk to the host machine as well as
# any other machines on the same network, but cannot be accessed (through this
# network interface) by any external networks.
config.vm.network :hostonly, "33.33.33.10"

# Assign this VM to a bridged network, allowing you to connect directly to a
# network using the host's network device. This makes the VM appear as another
# physical device on your network.

config.vm.network :bridged

# Forward a port from the guest to the host, which allows for outside
# computers to access the VM, whereas host only networking does not.
# config.vm.forward_port 80, 8080

# Share an additional folder to the guest VM. The first argument is
# an identifier, the second is the path on the guest to mount the
# folder, and the third is the path on the host to the actual folder.
config.vm.share_folder "appdir", "/tmp/vagrant_data", "../crystalline"

config.ssh.max_tries = 40
config.ssh.timeout = 120

config.vm.provision :chef_solo do |chef|
chef.json = {
:mysql => {
:server_root_password => 'rootpass',
:server_debian_password => 'debpass',
:server_repl_password => 'replpass'
}
}

chef.run_list = [
"recipe[crystalline::default]"
]
end
end
14 changes: 14 additions & 0 deletions attributes/default.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#
# Cookbook Name:: crystalline
# Recipe:: default
#
# Copyright (C) 2013 Ian Coffey
#
# All rights reserved - Do Not Redistribute
#

default[:app][:user] = 'crystalline'
default[:app][:group] = 'appgroup'
default[:app][:url] = 'git://github.com/iancoffey/crystalline'
default[:app][:revision] = 'HEAD'
default[:app][:local_config][:file] = ''
96 changes: 96 additions & 0 deletions chefignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Put files/directories that should be ignored in this file when uploading
# or sharing to the community site.
# Lines that start with '# ' are comments.

# OS generated files #
######################
.DS_Store
Icon?
nohup.out
ehthumbs.db
Thumbs.db

# SASS #
########
.sass-cache

# EDITORS #
###########
\#*
.#*
*~
*.sw[a-z]
*.bak
REVISION
TAGS*
tmtags
*_flymake.*
*_flymake
*.tmproj
.project
.settings
mkmf.log

## COMPILED ##
##############
a.out
*.o
*.pyc
*.so
*.com
*.class
*.dll
*.exe
*/rdoc/

# Testing #
###########
.watchr
.rspec
spec/*
spec/fixtures/*
test/*
features/*
Guardfile
Procfile

# SCM #
#######
.git
*/.git
.gitignore
.gitmodules
.gitconfig
.gitattributes
.svn
*/.bzr/*
*/.hg/*
*/.svn/*

# Berkshelf #
#############
Berksfile
Berksfile.lock
cookbooks/*
tmp

# Cookbooks #
#############
CONTRIBUTING
CHANGELOG*

# Strainer #
############
Colanderfile
Strainerfile
.colander
.strainer

# Vagrant #
###########
.vagrant
Vagrantfile

# Travis #
##########
.travis.yml
12 changes: 12 additions & 0 deletions metadata.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name "crystalline"
maintainer "Ian Coffey"
maintainer_email "[email protected]"
license "BSD"
description "Installs/Configures crystalline"
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version "0.1.0"

depends "artifact", "~> 0.10.7"
depends "python", "~> 1.2.0"
depends "couchdb", "~> 2.1.0"
depends "git", "~> 2.1.4"
57 changes: 57 additions & 0 deletions recipes/default.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#
# Cookbook Name:: crystalline
# Recipe:: default
#
# Copyright (C) 2013 Ian Coffey
#
# All rights reserved - Do Not Redistribute
#

include_recipe "python"
include_recipe "couchdb"
include_recipe "git"

python_mods = %w{ flask CouchDB configobj Flask-CouchDBKit }

common_tools = %w{ vim curl wget }

ENV['CRYSTALLINE_SETTINGS'] = node[:app][:config]

group node[:app][:group]

user node[:app][:user] do
system true
shell "/bin/bash"
end

python_mods.each do |mod|
python_pip mod do
action :install
end
end

common_tools.each do |tool|
package tool do
action :install
end
end

directory "/opt/crystalline/shared" do
owner node[:app][:user]
group node[:app][:group]
recursive true
end

deploy "/opt/crystalline" do
repo node[:app][:url]
revision node[:app][:revision]
user node[:app][:user]
group node[:app][:group]
enable_submodules true
action :deploy
restart_command "touch tmp/restart.txt"
scm_provider Chef::Provider::Git
symlink_before_migrate({})
end


0 comments on commit 074f253

Please sign in to comment.