kitchen-ansible 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  module Kitchen
2
2
  module Ansible
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
@@ -46,7 +46,7 @@ module Kitchen
46
46
  default_config :ansible_version, nil
47
47
  default_config :require_ansible_repo, true
48
48
  default_config :extra_vars, {}
49
- default_config :ansible_apt_repo, "ppa:rquillo/ansible"
49
+ default_config :ansible_apt_repo, "ppa:ansible/ansible"
50
50
  default_config :ansible_yum_repo, "https://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm"
51
51
  default_config :chef_bootstrap_url, "https://www.getchef.com/chef/install.sh"
52
52
 
@@ -76,6 +76,7 @@ module Kitchen
76
76
  provisioner.calculate_path('Ansiblefile', :file)
77
77
  end
78
78
 
79
+ default_config :requirements_path, false
79
80
  default_config :ansible_verbose, false
80
81
  default_config :ansible_verbosity, 1
81
82
  default_config :ansible_noop, false # what is ansible equivalent of dry_run???? ##JMC: I think it's [--check mode](http://docs.ansible.com/playbooks_checkmode.html) TODO: Look into this...
@@ -213,20 +214,33 @@ module Kitchen
213
214
  end
214
215
 
215
216
  def install_busser
216
- <<-INSTALL
217
+ install = ''
218
+ install << <<-INSTALL
217
219
  #{Util.shell_helpers}
218
- # install chef omnibus so that busser works as this is needed to run tests :(
219
- # TODO: work out how to install enough ruby
220
- # and set busser: { :ruby_bindir => '/usr/bin/ruby' } so that we dont need the
221
- # whole chef client
222
- if [ ! -d "/opt/chef" ]
223
- then
224
- echo "-----> Installing Chef Omnibus to install busser to run tests"
225
- do_download #{chef_url} /tmp/install.sh
226
- #{sudo('sh')} /tmp/install.sh
220
+ # Fix for https://github.com/test-kitchen/busser/issues/12
221
+ if [ -h /usr/bin/ruby ]; then
222
+ L=$(readlink -f /usr/bin/ruby)
223
+ #{sudo('rm')} /usr/bin/ruby
224
+ #{sudo('ln')} -s $L /usr/bin/ruby
227
225
  fi
228
226
  INSTALL
229
- end
227
+ if chef_url then
228
+ install << <<-INSTALL
229
+ # install chef omnibus so that busser works as this is needed to run tests :(
230
+ # TODO: work out how to install enough ruby
231
+ # and set busser: { :ruby_bindir => '/usr/bin/ruby' } so that we dont need the
232
+ # whole chef client
233
+ if [ ! -d "/opt/chef" ]
234
+ then
235
+ echo "-----> Installing Chef Omnibus to install busser to run tests"
236
+ do_download #{chef_url} /tmp/install.sh
237
+ #{sudo('sh')} /tmp/install.sh
238
+ fi
239
+ INSTALL
240
+ end
241
+
242
+ install
243
+ end
230
244
 
231
245
  def init_command
232
246
  dirs = %w{modules roles group_vars host_vars}.
@@ -275,6 +289,13 @@ module Kitchen
275
289
  sudo('cp -r'), File.join(config[:root_path],'host_vars'), '/etc/ansible/.',
276
290
  ].join(' ')
277
291
 
292
+ if galaxy_requirements
293
+ commands << [
294
+ sudo('ansible-galaxy'), 'install', '--force',
295
+ '-r', File.join(config[:root_path], galaxy_requirements),
296
+ ].join(' ')
297
+ end
298
+
278
299
  command = commands.join(' && ')
279
300
  debug(command)
280
301
  command
@@ -321,6 +342,10 @@ module Kitchen
321
342
  config[:ansiblefile_path] or ''
322
343
  end
323
344
 
345
+ def galaxy_requirements
346
+ config[:requirements_path] or nil
347
+ end
348
+
324
349
  def playbook
325
350
  config[:playbook]
326
351
  end
@@ -406,6 +431,10 @@ module Kitchen
406
431
  debug("Using roles from #{roles}")
407
432
 
408
433
  resolve_with_librarian if File.exists?(ansiblefile)
434
+
435
+ if galaxy_requirements
436
+ FileUtils.cp(galaxy_requirements, File.join(sandbox_path, galaxy_requirements))
437
+ end
409
438
 
410
439
  # Detect whether we are running tests on a role
411
440
  # If so, make sure to copy into VM so dir structure is like: /tmp/kitchen/roles/role_name
@@ -22,6 +22,7 @@ ansible_verbosity| 1| Sets the verbosity flag appropriately (e.g.: `1 => '-v', 2
22
22
  update_package_repos| true| update OS repository metadata
23
23
  chef_bootstrap_url |"https://www.getchef.com/chef/install.sh"| the chef (needed for busser to run tests)
24
24
  ansiblefile_path | | Path to Ansiblefile
25
+ requirements_path | | Path to ansible-galaxy requirements
25
26
 
26
27
  ## Configuring Provisioner Options
27
28
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-ansible
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-10 00:00:00.000000000 Z
12
+ date: 2015-01-05 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: ! '== DESCRIPTION:
15
15