kitchen-ansiblepush 0.5.1 → 0.5.2

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: e3cbe198c6b5c78f2bc9fc8539e3e5c37ebc3c6c
4
- data.tar.gz: 633e2fd2ff220a952d7eaae9f4861a5269e3cd21
3
+ metadata.gz: 0ea32f1a6e9d8b8b8d192e5ea4de50405391d936
4
+ data.tar.gz: e2f57b3ea5a812781ee0080df0e44ad054ff1ff4
5
5
  SHA512:
6
- metadata.gz: 909021bd352a2ffdc6701c2dda863a8cc73f231aaec9383c493cf5e106ea962879c1b7f803a9d3bfcf448f5aa4a58315113e09f618adf691cd92c1660e9aa519
7
- data.tar.gz: 8185394ce8433fc72d60a4581814946e708a08e12a1e7697accd3a63a830b25a5e76abb811a4feadd00afd37ed14c3bfa0e471fd66403a2db5a54854dc1ce7e3
6
+ metadata.gz: cd94e8f964ccb215d564186b2d483e62b60b115b1eaa8ad89955bf7e4f36e822be5536b4e2d9cb78ecd15c07d1da3ab12cab679b0d5459e166ec380be6afdc84
7
+ data.tar.gz: d17a8d7c080cbc3fdd9e021456a12e9ddb92ed9838cf4ab2b4459c5bc0b5302e3740e5bd18429694db157906238449cad1934812c1bd1f4b3589f726efcd57dd
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  A test-kitchen plugin that adds the support for ansible in push mode
7
7
 
8
8
  ## Intro
9
- This kitchen plugin adds ansible as a provisioner in push mode. Ansible will run from your host rather than run from guest machines.
9
+ This kitchen plugin adds ansible as a provisioner in push mode. Ansible will run from your host rather than run from guest machines.
10
10
 
11
11
  ## How to install
12
12
 
@@ -24,7 +24,7 @@ gem install kitchen-ansiblepush-<version>.gem
24
24
  ```
25
25
 
26
26
  ### Use Bundler
27
- My prefered method is use Gemfile
27
+ My preferred method is use Gemfile
28
28
 
29
29
  ```ruby
30
30
  source "https://rubygems.org"
@@ -65,13 +65,13 @@ provisioner :
65
65
  host_key_checking : false
66
66
  generate_inv : true
67
67
  use_instance_name : false # use short (platform) instead of instance name by default
68
- idempotency_test : False
68
+ idempotency_test : false
69
69
  ```
70
70
  ## idempotency test
71
71
  If you want to check your code is idempotent you can use the idempotency_test. Essentially, this will run Ansible twice and check nothing changed in the next run. If something changed it will list the tasks. Note: If your using Ansible callback in your config this might conflict.
72
72
  ```yaml
73
- idempotency_test: True
74
- fail_non_idempotent: True
73
+ idempotency_test: true
74
+ fail_non_idempotent: true
75
75
  ```
76
76
 
77
77
  If your running ansible V2 you need to white list the callback ``` callback_whitelist = changes``` in **ansible.cfg**
@@ -83,22 +83,22 @@ Since ansiblepush uses the host to run Ansible. you can simply specify the path
83
83
  ansible_playbook_bin : /path/to/ansible-playbook
84
84
  ```
85
85
 
86
- You can use venv and install multi version of ansible or if you prefer you can use an automated installer [ansible-setup](https://github.com/AutomationWIthAnsible/ansible-setup) you can install multi version of ansible.
86
+ If you want any easy way to manage ansible version [AVM](https://github.com/ahelal/avm)
87
87
  For further example you can check a matrix test [ansible-usermanage](https://github.com/AutomationWithAnsible/ansible-usermanage/blob/master/.kitchen.yml)
88
88
 
89
89
  ## Disable chef installation
90
- By default chef is installed and serverspec stuff. if you dont want to install
90
+ By default chef is installed and serverspec stuff. if you don't want to install
91
91
  ```yaml
92
92
  chef_bootstrap_url: nil
93
93
  ```
94
94
  ## Instance name
95
- Ansible push generates inventory dynamically you have multipule options to name your instance
96
- *use_instance_name*
95
+ Ansible push generates inventory dynamically you have multiple options to name your instance
96
+ *use_instance_name*
97
97
  *custom_instance_name*
98
98
 
99
99
 
100
100
  ## Windows support
101
- Kitchen ansiblepush has experimantal support.
101
+ Kitchen ansiblepush has experimental support.
102
102
  to enable windows support you need to add the following to your .kitchen.yml
103
103
  ```yaml
104
104
  ...
@@ -128,12 +128,12 @@ vars
128
128
  Gemfile
129
129
  Gemfile.lock
130
130
  .gitingore
131
- tests
131
+ test
132
132
  \_ ansible.cfg
133
133
  \_ integration
134
- \_ server
134
+ \_ server
135
135
  \_ server.yml # my play that will test something
136
- \_ serverspec
136
+ \_ serverspec
137
137
  \_ worker
138
138
  \_ worker.yml # my play that will test something
139
139
  \_ serverspec
@@ -148,5 +148,5 @@ tests
148
148
  - https://github.com/knakayama/kitchen-ansiblepush-demo
149
149
 
150
150
  ## TODO
151
- - Enable envirionment var ANSIBLE_CALLBACK_WHITELIST="changes" before call
152
- - Tests (PRs for tests is highligh appreciated)
151
+ - Enable environment var ANSIBLE_CALLBACK_WHITELIST="changes" before call
152
+ - Tests (PRs for tests is highlight appreciated)
@@ -1,17 +1,15 @@
1
- # encoding: utf-8
2
-
3
- $:.unshift File.expand_path('../lib', __FILE__)
1
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
4
2
  require 'kitchen-ansible/version'
5
3
 
6
4
  Gem::Specification.new do |gem|
7
- gem.name = "kitchen-ansiblepush"
5
+ gem.name = 'kitchen-ansiblepush'
8
6
  gem.version = Kitchen::AnsiblePush::VERSION
9
- gem.authors = ["Adham Helal"]
10
- gem.email = ["adham.helal@gmail.com"]
7
+ gem.authors = ['Adham Helal']
8
+ gem.email = ['adham.helal@gmail.com']
11
9
  gem.licenses = ['MIT']
12
- gem.homepage = "https://github.com/ahelal/kitchen-ansiblepush"
13
- gem.summary = "ansible provisioner for test-kitchen"
14
- candidates = Dir.glob("{lib}/**/*") + ['README.md', 'kitchen-ansiblepush.gemspec', 'callback/changes.py']
10
+ gem.homepage = 'https://github.com/ahelal/kitchen-ansiblepush'
11
+ gem.summary = 'ansible provisioner for test-kitchen'
12
+ candidates = Dir.glob('{lib}/**/*') + ['README.md', 'kitchen-ansiblepush.gemspec', 'callback/changes.py']
15
13
  gem.files = candidates.sort
16
14
  gem.platform = Gem::Platform::RUBY
17
15
  gem.require_paths = ['lib']
@@ -28,8 +26,7 @@ Supports running ansible in push mode
28
26
 
29
27
  EOF
30
28
 
31
- gem.add_runtime_dependency 'test-kitchen'
29
+ gem.add_runtime_dependency 'test-kitchen', '~> 1.4'
32
30
  gem.add_development_dependency 'rspec'
33
31
  gem.add_development_dependency 'pry'
34
-
35
- end
32
+ end
@@ -72,7 +72,7 @@ module Kitchen
72
72
  @extra_vars = '@' + extra_vars_path if extra_vars_is_valid
73
73
  end
74
74
 
75
- raise 'ansible extra_vars is in valid type: %s value: %s' % [config[:extra_vars].class.to_s, config[:extra_vars].to_s] unless extra_vars_is_valid
75
+ raise "ansible extra_vars is in valid type: #{config[:extra_vars].class} value: #{config[:extra_vars]}" unless extra_vars_is_valid
76
76
  end
77
77
  info('Ansible push config validated')
78
78
  @validated_config = config
@@ -80,11 +80,11 @@ module Kitchen
80
80
 
81
81
  def machine_name
82
82
  return @machine_name if defined? @machine_name
83
- if config[:use_instance_name]
84
- @machine_name = instance.name.gsub(/[<>]/, '')
85
- else
86
- @machine_name = instance.name.gsub(/[<>]/, '').split('-').drop(1).join('-')
87
- end
83
+ @machine_name = if config[:use_instance_name]
84
+ instance.name.gsub(/[<>]/, '')
85
+ else
86
+ instance.name.gsub(/[<>]/, '').split('-').drop(1).join('-')
87
+ end
88
88
  debug('machine_name=' + @machine_name.to_s)
89
89
  @machine_name
90
90
  end
@@ -102,8 +102,8 @@ module Kitchen
102
102
  options << '--ask-sudo-pass' if conf[:ask_sudo_pass]
103
103
  options << '--ask-vault-pass' if conf[:ask_vault_pass]
104
104
  options << "--vault-password-file=#{conf[:vault_password_file]}" if conf[:vault_password_file]
105
- options << '--tags=%s' % as_list_argument(conf[:tags]) if conf[:tags]
106
- options << '--skip-tags=%s' % as_list_argument(conf[:skip_tags]) if conf[:skip_tags]
105
+ options << '--tags=#{as_list_argument(conf[:tags])}' if conf[:tags]
106
+ options << '--skip-tags=#{as_list_argument(conf[:skip_tags])}' if conf[:skip_tags]
107
107
  options << "--start-at-task=#{conf[:start_at_task]}" if conf[:start_at_task]
108
108
  options << "--inventory-file=#{conf[:generate_inv_path]}" if conf[:generate_inv]
109
109
 
@@ -123,7 +123,7 @@ module Kitchen
123
123
  return @command if defined? @command
124
124
  @command = [conf[:ansible_playbook_bin]]
125
125
  @command = (@command << options << conf[:playbook]).flatten.join(' ')
126
- debug('Ansible push command= %s' % @command)
126
+ debug("Ansible push command= #{@command}")
127
127
  @command
128
128
  end
129
129
 
@@ -156,13 +156,12 @@ module Kitchen
156
156
  def install_command
157
157
  # Must install chef for busser and serverspec to work :(
158
158
  info('*************** AnsiblePush install_command ***************')
159
- # Test if ansible-playbook is installed and give a meaningful
160
- # error message
159
+ # Test if ansible-playbook is installed and give a meaningful error message
161
160
  version_check = command + ' --version'
162
- stdin, stdout, stderr, wait_thr = Open3.popen3(command_env, version_check)
161
+ _, stdout, stderr, wait_thr = Open3.popen3(command_env, version_check)
163
162
  exit_status = wait_thr.value
164
163
 
165
- raise "%s returned a non zero '%s'" % [version_check, exit_status] unless exit_status.success?
164
+ raise "#{version_check} returned a non zero '#{exit_status}' stdout : #{stdout}, stderr: #{stderr}" unless exit_status.success?
166
165
 
167
166
  omnibus_download_dir = conf[:omnibus_cachier] ? '/tmp/vagrant-cache/omnibus_chef' : '/tmp'
168
167
  chef_installation(conf[:chef_bootstrap_url], omnibus_download_dir, nil)
@@ -174,7 +173,7 @@ module Kitchen
174
173
  scripts << Util.shell_helpers
175
174
  scripts << chef_installation_script(chef_url, omnibus_download_dir, transport)
176
175
  <<-INSTALL
177
- sh -c '#{scripts.join("\n")}'
176
+ sh -c "#{scripts.join('\n')}"
178
177
  INSTALL
179
178
  else
180
179
  true_command
@@ -194,6 +193,7 @@ module Kitchen
194
193
  'PLUGIN_CHANGES_FILE' => file_path
195
194
  ), command, 'ansible-playbook'
196
195
  )
196
+ debug("idempotency file #{file_path}")
197
197
  # Check ansible callback if changes has occured in the second run
198
198
  if File.file?(file_path)
199
199
  task = 0
@@ -222,12 +222,12 @@ module Kitchen
222
222
  protected
223
223
 
224
224
  def exec_ansible_command(env, command, desc)
225
- debug('env=%s command=%s' % [env, command])
225
+ debug("env=#{env} command=#{command}")
226
226
  system(env, command.to_s)
227
227
  exit_code = $CHILD_STATUS.exitstatus
228
228
  debug("ansible-playbook exit code = #{exit_code}")
229
229
  if exit_code.to_i != 0
230
- raise '%s returned a non zero \'%s\'. Please see the output above.' % [desc, exit_code.to_s]
230
+ raise "#{desc} returned a non zero #{exit_code}. Please see the output above."
231
231
  end
232
232
  end
233
233
 
@@ -1,12 +1,10 @@
1
1
 
2
- def chef_installation_script(chef_url, omnibus_download_dir, transport)
2
+ def chef_installation_script(chef_url, omnibus_download_dir)
3
3
  <<-INSTALL
4
- if [ ! -d "/opt/chef" ]
5
- then
4
+ if [ ! -d "/opt/chef" ]; then
6
5
  echo "-----> Installing Chef Omnibus needed by busser and serverspec"
7
6
  mkdir -p #{omnibus_download_dir}
8
- if [ ! -x #{omnibus_download_dir}/install.sh ]
9
- then
7
+ if [ ! -x #{omnibus_download_dir}/install.sh ]; then
10
8
  do_download #{chef_url} #{omnibus_download_dir}/install.sh
11
9
  fi
12
10
  sudo sh #{omnibus_download_dir}/install.sh -d #{omnibus_download_dir}
@@ -1,5 +1,5 @@
1
1
  module Kitchen
2
2
  module AnsiblePush
3
- VERSION = '0.5.1'.freeze
3
+ VERSION = '0.5.2'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-ansiblepush
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adham Helal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-03 00:00:00.000000000 Z
11
+ date: 2016-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '1.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement