opskeleton 0.6.6 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 010f9793ae61094386bd62cbcb6057adc43fe3cf
4
- data.tar.gz: ef76043ada71b082876516f259ff04c33421920d
3
+ metadata.gz: f6eca6be1a2c2a6584aa8a085aa9f80e78f98fc0
4
+ data.tar.gz: 0aaf45e8e17c7ddc71d02f577ac3478ff7a127d6
5
5
  SHA512:
6
- metadata.gz: 0bf99b01016136f1bbc83e619f0732d970e4705c3f4a6189e201cfbfb26469f8f376a2a6331a977cd91f234529408822f2fdf211dbf6af662afac2eef4f89068
7
- data.tar.gz: 32d147a5964d0718b00c618fc6873845f973f5c55d628c55db27151ef11befa4ff22581d1916b7c5ba6ea48448bff1829d35be7c44760e5d2bcf2c3b2e089a13
6
+ metadata.gz: e8a8953067ee4e0c6f4a839ea9cd6330a61a00c2ff12745564d5e9fbd9a32f867cd8aa1577f0ecdc20f9b4db751114e49facbefe0a1d89840af0a10bf6f1bfef
7
+ data.tar.gz: b643610aa6c5c733d7ee125ed553b1d686795b8a32b6c2a7006e39f3b94eb70053d428601eed9821234b42c650e2bd5aa3d0c42f42f0b04677be2e0cb7085aae
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- opskeleton (0.6.5)
4
+ opskeleton (0.6.6)
5
5
  bintray_deploy
6
6
  thor
7
7
 
data/README.md CHANGED
@@ -5,15 +5,15 @@
5
5
  Opskelaton is an opinionated bootstrap tool for local Sandbox projects.
6
6
 
7
7
  Opskeleton aims to solve the following common issues:
8
- * Devops develop Puppet modules on master machines which results with 'It works on my (machine) master' approach.
9
- * Implicit/Missing dependencies, like ruby version used, operating system, gems, third party puppet module
10
- * Manual steps in setting up puppet modules and local sandboxes (like installing third party code).
8
+ * Developing Puppet/Chef modules/cookbooks on master machines which results with 'It works on my master/server' approach.
9
+ * Large monolithic Puppet/Chef code bases, code isn't modular or reusable.
10
+ * Implicit/Missing dependencies, like ruby version used, operating system, gems, third party modules/cookbooks.
11
+ * Manual steps in setting up modules/cookbooks and local sandboxes (like installing third party code).
11
12
  * Non standard layout, projects missing README and LICENSE files, no clear separation between developed and dependant code.
12
- * No clear development guidelines, for example extracting general modules and exporting them.
13
+ * No clear development guidelines, for example extracting general modules and exporting them, no deployment packaging or general testing guide.
14
+ * No continues build, linting and testing, provisioning code is second class citizen.
13
15
 
14
- Opskeleton comes to solve these issues by introducing a decentralized development workflow with pre-defined layout, packaging and dependency management.
15
-
16
- See it in action [here](https://www.youtube.com/watch?v=LNlHC54Ej8c).
16
+ Opskeleton comes to solve these issues by introducing a decentralized development work flow with pre-defined layout, packaging and dependency management.
17
17
 
18
18
  [![Build Status](https://travis-ci.org/opskeleton/opskeleton.png)](https://travis-ci.org/opskeleton/opskeleton)
19
19
 
data/chef.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # Intro
2
2
 
3
- Opskelaton fully supports chef based sandboxes with the same lifecycle semantics
4
-
5
- it offers similar features to the Puppet based sandboxes with additional support for roles, environments and cookbooks.
3
+ Opskelaton fully supports Chef based sandboxes it offers similar features to the Puppet based sandboxes with additional support for roles, environments and cookbooks.
6
4
 
7
5
  # Usage
8
6
 
@@ -19,7 +17,7 @@ Opskelaton creates the complete folder structure fine tuned to match best practi
19
17
 
20
18
  Folder layout:
21
19
 
22
- <!-- <img src="https://raw.github.com/narkisr/vagrant&#45;sketching&#45;board/master/images/opsk&#45;folders.png" width='30%' hight='50%' alt="" /> -->
20
+ <img src="https://github.com/opskeleton/opskeleton/blob/master/img/chef-layout.png" width='30%' hight='50%' alt="" />
23
21
 
24
22
 
25
23
  ## Cookbook lifecycle
@@ -28,13 +26,13 @@ Opskelaton defines a simple cookbook life cycle:
28
26
 
29
27
  1. Internal non reusable cookbooks (usually specific to a client site) go under static-cookbooks
30
28
  2. If we create a general reusable cookbook which is ready for prime time we pull out to a new git repository.
31
- 3. The extracted cookbook is added back as a third party (using [librarian-chef](https://github.com/applicationsonline/librarian-chef) cookbook which resides under modules folder.
29
+ 3. The extracted cookbook is added back as a third party (using [librarian-chef](https://github.com/applicationsonline/librarian-chef) thatd will place them under cookbooks folder).
32
30
 
33
31
  Life cycle scheme:
34
32
 
35
- <img src="https://raw.github.com/narkisr/vagrant-sketching-board/master/images/module-lifecycle-black.png" width='30%' hight='50%' alt="" />
33
+ <img src="https://github.com/opskeleton/opskeleton/blob/master/img/chef-cycle.png" width='30%' hight='50%' alt="" />
36
34
 
37
- Creating new (cookbooks) modules is easy as:
35
+ Creating new cookbooks is easy as:
38
36
 
39
37
  ```bash
40
38
  $ opsk cookbook foo
Binary file
Binary file
Binary file
Binary file
@@ -2,18 +2,19 @@ module Opsk
2
2
  class Dockerize < Thor::Group
3
3
  include Thorable, Thor::Actions
4
4
 
5
- argument :from, :type => :string, :desc => 'which source image to use'
6
- argument :os_type, :type=> :string, :desc => 'Ubuntu/Centos'
5
+ argument :from, :type => :string, :desc => 'Which source image to use'
6
+ argument :os_type, :type=> :string, :desc => 'Flavor of container Ubuntu/Centos'
7
7
 
8
8
 
9
9
  desc 'Creates a docker image using the current opsk sandbox'
10
10
 
11
11
  def create_dockerfile
12
- template("templates/#{type_of}/#{os_type}_docker.erb", 'Dockerfile')
12
+ template("templates/#{type_of}/docker/#{os_type}_docker.erb", 'Dockerfile')
13
13
  end
14
14
 
15
- def create_image
16
- run("docker build . -t #{name}/#{meta.version}")
15
+ def docker_build
16
+ template("templates/docker_build.erb", 'docker_build.sh')
17
+ chmod('docker_build.sh', 0755)
17
18
  end
18
19
 
19
20
  end
@@ -1,3 +1,3 @@
1
1
  module Opskeleton
2
- VERSION = '0.6.6'
2
+ VERSION = '0.6.7'
3
3
  end
data/puppet.md CHANGED
@@ -17,7 +17,7 @@ Opskelaton creates the complete folder structure fine tuned to match best practi
17
17
 
18
18
  Folder layout:
19
19
 
20
- <img src="https://raw.github.com/narkisr/vagrant-sketching-board/master/images/opsk-folders.png" width='30%' hight='50%' alt="" />
20
+ <img src="https://github.com/opskeleton/opskeleton/blob/master/img/puppet-layout.png" width='30%' hight='50%' alt="" />
21
21
 
22
22
 
23
23
  ## Module lifecycle
@@ -30,7 +30,7 @@ Opskelaton defines a simple module life cycle:
30
30
 
31
31
  Life cycle scheme:
32
32
 
33
- <img src="https://raw.github.com/narkisr/vagrant-sketching-board/master/images/module-lifecycle-black.png" width='30%' hight='50%' alt="" />
33
+ <img src="https://github.com/opskeleton/opskeleton/blob/master/img/puppet-cycle.png" width='30%' hight='50%' alt="" />
34
34
 
35
35
  Creating new (static) modules is easy as:
36
36
 
@@ -123,3 +123,13 @@ Opskeleton generates a Vagrant file with couple of enhancements:
123
123
  * PUPPET_ENV (default dev) for setting puppet environment.
124
124
  * Puppet options preset to match modules and hiera folders.
125
125
 
126
+ ## Docker
127
+ The only assumption that Opskelaton makes is that the target host will have Pupppet installed, this enables us to create docker images from our sandboxes quite easily:
128
+
129
+ ```bash
130
+ $ opsk package
131
+ # creates the Dockerfile
132
+ $ opsk dockerize
133
+ # builds <sandbox>/<version> image
134
+ $ sudo ./build_docker.sh
135
+ ```
@@ -0,0 +1 @@
1
+ docker build -t <%= name.gsub('-','_') %>/<%= meta.version %> .
@@ -0,0 +1,11 @@
1
+ FROM <%=from%>
2
+
3
+ RUN apt-get update
4
+ RUN apt-get install wget -y
5
+ RUN /usr/bin/wget 'https://gist.githubusercontent.com/narkisr/6097786/raw' --no-check-certificate && /bin/bash raw
6
+ ADD pkg/<%=artifact%>.tar.gz /
7
+ RUN cd <%=artifact%> && /bin/bash run.sh
8
+ RUN rm -rf <%=artifact%>
9
+
10
+ # CMD ["YOUR PROCESSES"]
11
+ # EXPOSE 80 514 12201 9200
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opskeleton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.6
4
+ version: 0.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - narkisr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-30 00:00:00.000000000 Z
11
+ date: 2014-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -131,6 +131,10 @@ files:
131
131
  - autocomplete/opsk_bash_completion
132
132
  - bin/opsk
133
133
  - chef.md
134
+ - img/chef-cycle.png
135
+ - img/chef-layout.png
136
+ - img/puppet-cycle.png
137
+ - img/puppet-layout.png
134
138
  - lib/opskeleton.rb
135
139
  - lib/opskeleton/bump.rb
136
140
  - lib/opskeleton/clean.rb
@@ -160,6 +164,7 @@ files:
160
164
  - templates/chef/ubuntu_docker.erb
161
165
  - templates/chef/vagrant.erb
162
166
  - templates/clean.yaml
167
+ - templates/docker_build.erb
163
168
  - templates/gitignore
164
169
  - templates/hiera.yaml
165
170
  - templates/hiera_vagrant.yaml
@@ -171,6 +176,7 @@ files:
171
176
  - templates/puppet/Rakefile
172
177
  - templates/puppet/boot.sh
173
178
  - templates/puppet/default.erb
179
+ - templates/puppet/docker/ubuntu_docker.erb
174
180
  - templates/puppet/gemfile
175
181
  - templates/puppet/opsk.yaml
176
182
  - templates/puppet/run.sh