itamae 1.0.0.beta8 → 1.0.0.beta9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/Rakefile +6 -3
- data/lib/itamae/resource/base.rb +15 -6
- data/lib/itamae/version.txt +1 -1
- data/spec/integration/Vagrantfile +23 -8
- data/spec/integration/default_spec.rb +2 -2
- data/spec/integration/recipes/default.rb +7 -2
- data/wercker.yml +76 -0
- metadata +3 -3
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 316546d4d9112ec266c35d0e68ac945bff9c89db
|
4
|
+
data.tar.gz: c0f441c234e8a246ef88c5b986b40fe303aa3641
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e09edb03f591ab95907efa644c85ba8a4a3d8ce4acbd158812ffe6785bd1c22c022987e17a9988fcfb9216f41c6e03bc42a9e85c5778a53175582f5df07d27a
|
7
|
+
data.tar.gz: 706adb717f18b87638c9aa0933b767e7b8c33eb44a9dfe6e474e95c0642a8a6f491d4791371731719b4987599b2eb933d7e08587f161ab6387853c9058f6ee09
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Itamae [![Gem Version](https://badge.fury.io/rb/itamae.svg)](http://badge.fury.io/rb/itamae)
|
1
|
+
# Itamae [![Gem Version](https://badge.fury.io/rb/itamae.svg)](http://badge.fury.io/rb/itamae) [![wercker status](https://app.wercker.com/status/d44df82d2f4529ff664f32fa54ce12f5/s/master "wercker status")](https://app.wercker.com/project/bykey/d44df82d2f4529ff664f32fa54ce12f5)
|
2
2
|
|
3
3
|
Simple and lightweight configuration management tool inspired by Chef.
|
4
4
|
|
data/Rakefile
CHANGED
@@ -3,6 +3,8 @@ require 'rspec/core/rake_task'
|
|
3
3
|
require 'tempfile'
|
4
4
|
require 'net/ssh'
|
5
5
|
|
6
|
+
vagrant_bin = ENV['CI'] ? 'vagrant' : '/usr/bin/vagrant'
|
7
|
+
|
6
8
|
desc 'Run unit and integration specs.'
|
7
9
|
task :spec => ['spec:unit', 'spec:integration:all']
|
8
10
|
|
@@ -15,7 +17,7 @@ namespace :spec do
|
|
15
17
|
namespace :integration do
|
16
18
|
targets = []
|
17
19
|
Bundler.with_clean_env do
|
18
|
-
`cd spec/integration &&
|
20
|
+
`cd spec/integration && #{vagrant_bin} status`.split("\n\n")[1].each_line do |line|
|
19
21
|
targets << line.match(/^[^ ]+/)[0]
|
20
22
|
end
|
21
23
|
end
|
@@ -31,8 +33,8 @@ namespace :spec do
|
|
31
33
|
Bundler.with_clean_env do
|
32
34
|
config = Tempfile.new('', Dir.tmpdir)
|
33
35
|
env = {"VAGRANT_CWD" => File.expand_path('./spec/integration')}
|
34
|
-
system env, "
|
35
|
-
system env, "
|
36
|
+
system env, "#{vagrant_bin} up #{target}"
|
37
|
+
system env, "#{vagrant_bin} ssh-config #{target} > #{config.path}"
|
36
38
|
options = Net::SSH::Config.for(target, [config.path])
|
37
39
|
|
38
40
|
cmd = "bundle exec bin/itamae ssh"
|
@@ -75,3 +77,4 @@ namespace :release do
|
|
75
77
|
system "git commit -m 'Bump up version'"
|
76
78
|
end
|
77
79
|
end
|
80
|
+
|
data/lib/itamae/resource/base.rb
CHANGED
@@ -109,13 +109,18 @@ module Itamae
|
|
109
109
|
private
|
110
110
|
|
111
111
|
def method_missing(method, *args, &block)
|
112
|
-
if
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
112
|
+
if self.class.defined_attributes[method]
|
113
|
+
if args.size == 1
|
114
|
+
return @attributes[method] = args.first
|
115
|
+
elsif args.size == 0 && block_given?
|
116
|
+
return @attributes[method] = block
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
if args.size == 0 && @attributes.has_key?(method)
|
117
121
|
return @attributes[method]
|
118
122
|
end
|
123
|
+
|
119
124
|
super
|
120
125
|
end
|
121
126
|
|
@@ -136,7 +141,11 @@ module Itamae
|
|
136
141
|
def show_differences
|
137
142
|
@current_attributes.each_pair do |key, current_value|
|
138
143
|
value = @attributes[key]
|
139
|
-
if current_value
|
144
|
+
if current_value.nil? && value.nil?
|
145
|
+
# ignore
|
146
|
+
elsif current_value.nil? && !value.nil?
|
147
|
+
Logger.info " #{key} will be '#{value}'"
|
148
|
+
elsif current_value == value || value.nil?
|
140
149
|
Logger.info " #{key} will not change (current value is '#{current_value}')"
|
141
150
|
else
|
142
151
|
Logger.info " #{key} will change from '#{current_value}' to '#{value}'"
|
data/lib/itamae/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.0.
|
1
|
+
1.0.0.beta9
|
@@ -6,14 +6,29 @@ VAGRANTFILE_API_VERSION = "2"
|
|
6
6
|
|
7
7
|
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
8
8
|
config.vm.define :trusty do |c|
|
9
|
-
c.vm.
|
9
|
+
c.vm.hostname = 'itamae-trusty'
|
10
|
+
c.vm.hostname += "-#{ENV['WERCKER_BUILD_ID']}" if ENV['WERCKER_BUILD_ID']
|
11
|
+
c.vm.provider :virtualbox do |provider, override|
|
12
|
+
override.vm.box = "ubuntu/trusty64"
|
13
|
+
override.vm.provision :shell, inline: <<-EOC
|
14
|
+
cat /etc/apt/sources.list | sed -e 's|http://[^ ]*|mirror://mirrors.ubuntu.com/mirrors.txt|g' > /tmp/sources.list
|
15
|
+
if !(diff -q /etc/apt/sources.list /tmp/sources.list); then
|
16
|
+
mv /tmp/sources.list /etc/apt/sources.list
|
17
|
+
apt-get update
|
18
|
+
fi
|
19
|
+
EOC
|
20
|
+
end
|
10
21
|
|
11
|
-
c.vm.
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
22
|
+
c.vm.provider :digital_ocean do |provider, override|
|
23
|
+
override.ssh.private_key_path = '~/.ssh/id_rsa.vagrant'
|
24
|
+
override.vm.box = 'digital_ocean'
|
25
|
+
override.vm.box_url = "https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box"
|
26
|
+
|
27
|
+
provider.ssh_key_name = ENV['WERCKER'] ? 'vagrant/wercker/itamae' : 'Vagrant'
|
28
|
+
provider.token = ENV['DIGITALOCEAN_TOKEN']
|
29
|
+
provider.image = 'Ubuntu 14.04 x64'
|
30
|
+
provider.region = 'nyc2'
|
31
|
+
provider.size = '512mb'
|
32
|
+
end
|
18
33
|
end
|
19
34
|
end
|
@@ -16,8 +16,8 @@ end
|
|
16
16
|
describe file('/tmp/directory') do
|
17
17
|
it { should be_directory }
|
18
18
|
it { should be_mode 700 }
|
19
|
-
it { should be_owned_by "
|
20
|
-
it { should be_grouped_into "
|
19
|
+
it { should be_owned_by "itamae" }
|
20
|
+
it { should be_grouped_into "itamae" }
|
21
21
|
end
|
22
22
|
|
23
23
|
describe file('/tmp/template') do
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# TODO: replace with user resource
|
2
|
+
execute 'id itamae || useradd itamae'
|
3
|
+
|
4
|
+
######
|
5
|
+
|
1
6
|
package 'dstat' do
|
2
7
|
action :install
|
3
8
|
end
|
@@ -50,8 +55,8 @@ end
|
|
50
55
|
|
51
56
|
directory "/tmp/directory" do
|
52
57
|
mode "700"
|
53
|
-
owner "
|
54
|
-
group "
|
58
|
+
owner "itamae"
|
59
|
+
group "itamae"
|
55
60
|
end
|
56
61
|
|
57
62
|
template "/tmp/template" do
|
data/wercker.yml
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
box: wercker/rvm
|
2
|
+
# Build definition
|
3
|
+
build:
|
4
|
+
# The steps that will be executed on build
|
5
|
+
# See the Ruby section on the wercker devcenter:
|
6
|
+
# http://devcenter.wercker.com/articles/languages/ruby.html
|
7
|
+
steps:
|
8
|
+
# Uncomment this to force RVM to use a specific Ruby version
|
9
|
+
- rvm-use:
|
10
|
+
version: 2.1.1
|
11
|
+
|
12
|
+
# A step that executes `bundle install` command
|
13
|
+
- bundle-install
|
14
|
+
|
15
|
+
# A custom script step, name value is used in the UI
|
16
|
+
# and the code value contains the command that get executed
|
17
|
+
- script:
|
18
|
+
name: echo ruby information
|
19
|
+
code: |
|
20
|
+
echo "ruby version $(ruby --version) running"
|
21
|
+
echo "from location $(which ruby)"
|
22
|
+
echo -p "gem list: $(gem list)"
|
23
|
+
|
24
|
+
- script:
|
25
|
+
name: create .ssh directory
|
26
|
+
code: mkdir -p $HOME/.ssh
|
27
|
+
|
28
|
+
- create-file:
|
29
|
+
name: put private key
|
30
|
+
filename: $HOME/.ssh/id_rsa.vagrant
|
31
|
+
overwrite: true
|
32
|
+
hide-from-log: true
|
33
|
+
content: $DIGITALOCEAN_PRIVATE_KEY
|
34
|
+
|
35
|
+
- create-file:
|
36
|
+
name: put public key
|
37
|
+
filename: $HOME/.ssh/id_rsa.vagrant.pub
|
38
|
+
overwrite: true
|
39
|
+
hide-from-log: true
|
40
|
+
content: $DIGITALOCEAN_PUBLIC_KEY
|
41
|
+
|
42
|
+
- script:
|
43
|
+
name: chmod 600 id_rsa
|
44
|
+
code: chmod 600 $HOME/.ssh/id_rsa.vagrant
|
45
|
+
|
46
|
+
- script:
|
47
|
+
name: download vagrant
|
48
|
+
code: wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.6.3_x86_64.deb
|
49
|
+
|
50
|
+
- script:
|
51
|
+
name: install vagrant
|
52
|
+
code: sudo dpkg -i vagrant_1.6.3_x86_64.deb
|
53
|
+
|
54
|
+
- script:
|
55
|
+
name: install libxml and libxslt
|
56
|
+
code: sudo apt-get install libxml2-dev libxslt1-dev
|
57
|
+
|
58
|
+
- script:
|
59
|
+
name: install vagrant-digitalocean
|
60
|
+
code: NOKOGIRI_USE_SYSTEM_LIBRARIES=1 vagrant plugin install vagrant-digitalocean
|
61
|
+
|
62
|
+
- script:
|
63
|
+
name: start vm
|
64
|
+
code: vagrant up --provider=digital_ocean
|
65
|
+
cwd: spec/integration
|
66
|
+
|
67
|
+
# Add more steps here:
|
68
|
+
- script:
|
69
|
+
name: rspec
|
70
|
+
code: bundle exec rake spec
|
71
|
+
|
72
|
+
after-steps:
|
73
|
+
- script:
|
74
|
+
name: shutdown vm
|
75
|
+
code: vagrant destroy -f
|
76
|
+
cwd: spec/integration
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: itamae
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.beta9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryota Arai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -146,7 +146,6 @@ extra_rdoc_files: []
|
|
146
146
|
files:
|
147
147
|
- ".gitignore"
|
148
148
|
- ".rspec"
|
149
|
-
- ".travis.yml"
|
150
149
|
- Gemfile
|
151
150
|
- LICENSE.txt
|
152
151
|
- README.md
|
@@ -192,6 +191,7 @@ files:
|
|
192
191
|
- spec/unit/lib/itamae/resource_spec.rb
|
193
192
|
- spec/unit/lib/itamae/runner_spec.rb
|
194
193
|
- spec/unit/spec_helper.rb
|
194
|
+
- wercker.yml
|
195
195
|
homepage: https://github.com/ryotarai/itamae
|
196
196
|
licenses:
|
197
197
|
- MIT
|