itamae 1.0.0.beta8 → 1.0.0.beta9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 [](http://badge.fury.io/rb/itamae)
|
1
|
+
# Itamae [](http://badge.fury.io/rb/itamae) [](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
|