inprovise 0.2.25 → 0.2.26
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +15 -15
- data/lib/inprovise/sniffer/linux.rb +2 -2
- data/lib/inprovise/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f1d82e40d8838f046b9da3215bda4199e3eea1cd8229d4b7372f15846813e47d
|
4
|
+
data.tar.gz: 303717b5beceec1c601973bed73709e2899bd4aa266b2758905628bda1946499
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1092284c11fcbf3ef25fa2118ac76ed20292c07cf0540a96feccff9cfab83a652eb98b1a429e707c97ec11c35a0eea46216d25ebab0aa894e6c3eaafd6836b31
|
7
|
+
data.tar.gz: c7298371106a5f199a7d80b8bd343444493ce7f862c164bbc7d261b59ba88b351753824db6e4455c799f8e21e642c2a5f92aea0a647ad0869cab6229e01f8a68
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
Inprovise
|
3
3
|
=========
|
4
4
|
|
5
|
-
**Because provisioning small computing infrastructures should be simple, intuitive and NOT require additional infrastructure or elaborate setups just to run your provisioning scripts.**
|
5
|
+
**Because provisioning small computing infrastructures should be simple, intuitive and NOT require additional infrastructure or elaborate setups just to run your provisioning scripts.**
|
6
6
|
|
7
7
|
Inprovise (Intuitive Provisioning Environment) is a super simple way to provision servers and virtual machines.
|
8
8
|
|
@@ -11,23 +11,23 @@ Inprovise (Intuitive Provisioning Environment) is a super simple way to provisio
|
|
11
11
|
[![Test Coverage](https://codeclimate.com/github/mcorino/Inprovise/badges/coverage.png)](https://codeclimate.com/github/mcorino/Inprovise/coverage)
|
12
12
|
[![Gem Version](https://badge.fury.io/rb/inprovise.png)](https://badge.fury.io/rb/inprovise)
|
13
13
|
|
14
|
-
If you've found yourself stuck in the gap between deployment tools like Capistrano and full blown infrastructure tools like Puppet and Chef then Inprovise might be a good fit for you.
|
15
|
-
This is especially the case if you choose to cycle machines and prefer baking from scratch when changes are required rather than attempting to converge system state
|
14
|
+
If you've found yourself stuck in the gap between deployment tools like Capistrano and full blown infrastructure tools like Puppet and Chef then Inprovise might be a good fit for you.
|
15
|
+
This is especially the case if you choose to cycle machines and prefer baking from scratch when changes are required rather than attempting to converge system state
|
16
16
|
(although Inprovise is flexible and extensible enough to achieve anything you would like).
|
17
17
|
|
18
18
|
Acknowledgement
|
19
19
|
---------------
|
20
20
|
|
21
|
-
First off a very big
|
22
|
-
When searching (yet again) for a usable (as in 'easy' and 'intuitive') tool for managing the provisioning of our smallish computing farm
|
21
|
+
First off a very big acknowledgment.
|
22
|
+
When searching (yet again) for a usable (as in 'easy' and 'intuitive') tool for managing the provisioning of our smallish computing farm
|
23
23
|
(consisting of <10 host servers each running 6-12 VMs each) and yet again becoming disappointed by the requirements and overkill offered by tools like
|
24
24
|
Chef and Puppet, I finally found the *Orca* tool by Andy Kent (https://github.com/andykent/orca).
|
25
25
|
*This* was what I was thinking of!
|
26
26
|
|
27
|
-
Unfortunately Andy some time ago deprecated his project and there were some aspects of Orca I did not really like (a major one being the definition of the infrastructure nodes and groups inside the provisioning schemes)
|
27
|
+
Unfortunately Andy some time ago deprecated his project and there were some aspects of Orca I did not really like (a major one being the definition of the infrastructure nodes and groups inside the provisioning schemes)
|
28
28
|
as well as some missing bits (like more flexibility in the platform support).
|
29
|
-
I really did like the agent-less setup and the simple and elegant structure of the DSL though as well as the fact it was written in one of my favorite programming languages. As Andy's arguments for discontinuing
|
30
|
-
did not apply to us I decided to take up his code and rework it to my ideas and provide it with a minimum of multi platform support to also be able to manage the non-*nix nodes we needed to provision.
|
29
|
+
I really did like the agent-less setup and the simple and elegant structure of the DSL though as well as the fact it was written in one of my favorite programming languages. As Andy's arguments for discontinuing
|
30
|
+
did not apply to us I decided to take up his code and rework it to my ideas and provide it with a minimum of multi platform support to also be able to manage the non-*nix nodes we needed to provision.
|
31
31
|
|
32
32
|
As Andy indicated the Orca name was (to be) handed over to another gem maintainer and I did not particularly like it anyway (sorry Andy) I renamed the package. Andy's code proved quite resilient to my changes
|
33
33
|
though and (apart from the name changes) I was able to copy large chunks more or less verbatim and rework those step by step thereby increasing my coding production significantly.
|
@@ -45,25 +45,25 @@ All too often you need to get a new server up and running to a known state so th
|
|
45
45
|
Inprovise fills the rather large gap between (2) and (3). It's a bigger gap then you think as both Puppet and Chef require...
|
46
46
|
|
47
47
|
- bootstrapping a machine to a point where you are able to run them
|
48
|
-
- Creating a
|
48
|
+
- Creating a separate repository describing the configuration you require
|
49
49
|
- learning their complex syntaxes and structures
|
50
50
|
- hiding the differences of different host OSes
|
51
51
|
|
52
52
|
Inprovise fixes these problems by...
|
53
53
|
|
54
54
|
- working directly over standardized protocols (SSH by default), all you need is a box that you can connect to
|
55
|
-
- Inprovise maintains a simple (JSON) file based registry of your infrastructure
|
55
|
+
- Inprovise maintains a simple (JSON) file based registry of your infrastructure
|
56
56
|
- scripting definitions can all go in a single file (although Inprovise supports modularization) and most servers can be configured in ~50 lines
|
57
57
|
- scripts are defined in a ruby based DSL that consists of a very small number of basic commands to learn
|
58
58
|
- Inprovise only requires a minimum operations (for cmd execution and file management) to be supported for any OS the details of which are abstracted through configurable handlers
|
59
59
|
- apart from the protocol and minimal operation set Inprovise makes no assumptions about the underlying OS
|
60
|
-
- Inprovise is extensible and adding platform specific features like package manager support can be achieved in a small amount of code using the core support
|
60
|
+
- Inprovise is extensible and adding platform specific features like package manager support can be achieved in a small amount of code using the core support
|
61
61
|
|
62
62
|
|
63
63
|
What problems is Inprovise avoiding?
|
64
64
|
-------------------------------
|
65
65
|
|
66
|
-
Inprovise intentionally skirts around some important things that may or may not matter to you.
|
66
|
+
Inprovise intentionally skirts around some important things that may or may not matter to you.
|
67
67
|
If they do then you are probably better using tools such as Puppet or Chef.
|
68
68
|
|
69
69
|
Inprovise doesn't...
|
@@ -143,8 +143,8 @@ The Inprovise DSL
|
|
143
143
|
Inprovise provides a Ruby based DSL to write your provisioning specifications. Files containing these provisioning
|
144
144
|
specs are called `schemes`.
|
145
145
|
Inprovise provisioning schemes are pure Ruby code and should preferably be stored in files with the '.rb' extension. When
|
146
|
-
no scheme is specified Inprovise looks for the scheme `inprovise.rb` in the projects root (where the `infa.json` is located) by default.
|
147
|
-
Scheme scripts are really simple to learn in less than 5 mins. Below is an example inprovise.rb file with some hints to help you get started.
|
146
|
+
no scheme is specified Inprovise looks for the scheme `inprovise.rb` in the projects root (where the `infa.json` is located) by default.
|
147
|
+
Scheme scripts are really simple to learn in less than 5 mins. Below is an example inprovise.rb file with some hints to help you get started.
|
148
148
|
A more complete WIP example can be found in this gist... https://gist.github.com/andykent/5814997
|
149
149
|
|
150
150
|
````ruby
|
@@ -185,7 +185,7 @@ to contain pure Ruby code and is loaded as such. You can use this to require and
|
|
185
185
|
scripts defined in your project's scheme files.
|
186
186
|
|
187
187
|
As the scheme files themselves are also pure Ruby code you can also put configuration code there if that suites your use case better (for example if certain settings
|
188
|
-
should only be available to scripts defined in one particular scheme file).
|
188
|
+
should only be available to scripts defined in one particular scheme file).
|
189
189
|
|
190
190
|
Extensions
|
191
191
|
----------
|
@@ -30,7 +30,7 @@ Inprovise::Sniffer.define('linux', false) do
|
|
30
30
|
binary_exists?('dnf') ? 'dnf' : 'yum'
|
31
31
|
when 'linuxmint', 'ubuntu', 'debian'
|
32
32
|
'apt'
|
33
|
-
when
|
33
|
+
when 'suse', 'sles'
|
34
34
|
'zypper'
|
35
35
|
end
|
36
36
|
end
|
@@ -41,7 +41,7 @@ Inprovise::Sniffer.define('linux', false) do
|
|
41
41
|
when /RedHat/i
|
42
42
|
'rhel'
|
43
43
|
when /SUSE/i
|
44
|
-
run("#{bin} -d").chomp =~ /opensuse/i ? '
|
44
|
+
run("#{bin} -d").chomp =~ /opensuse/i ? 'suse' : 'sles'
|
45
45
|
else
|
46
46
|
distro.downcase
|
47
47
|
end
|
data/lib/inprovise/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inprovise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.26
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Corino
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-06-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colored
|
@@ -170,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
170
|
version: '0'
|
171
171
|
requirements: []
|
172
172
|
rubyforge_project:
|
173
|
-
rubygems_version: 2.
|
173
|
+
rubygems_version: 2.7.7
|
174
174
|
signing_key:
|
175
175
|
specification_version: 4
|
176
176
|
summary: Simple, easy and intuitive infrastructure provisioning
|