kitchen-ansiblepush 0.6.2 → 0.7.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5b41256e29e0f18e3120b60b53e620345c1fea7c
4
- data.tar.gz: 01d109452a1a2cd29c8e9fbc667cf302b72b8423
3
+ metadata.gz: 297f186b8f310c5a3c0cf16906feaa6f6dd02a6b
4
+ data.tar.gz: 0a6377640cb723d276dd887e27d4be1c9bc05e7e
5
5
  SHA512:
6
- metadata.gz: 0a3b41d88ad076e638a579e002a5c6724e46c717060932c2fce06e7114524de9297546907dc6d99d279575484a76aef4cd229e2550b78409616444c5518e10fa
7
- data.tar.gz: 488124771b33863b2aae7f251d8535e0f59876c33ac0bef910f15a7c047c0efdedd7a197948441d654a014b90c04ae22c6e36734709f7eae25806da6ec209753
6
+ metadata.gz: 87d3fd01c7dfe4c736afd686c0ec8fbf494d11111ecc4cac34b43ced36db24a7db20fc62df300fc6e37bc3b5c4e77cbb4919cb5139ec70b1b0e59bd04684e26c
7
+ data.tar.gz: 30409beed3538e0eb0eb74448098e2af9eee1372bbec6b765c456c99e6f30a5422f658bcd524d8754f5b49b591fed363020205e7bb823977f07955f026e1976e
data/README.md CHANGED
@@ -3,27 +3,16 @@
3
3
  [![Gem Downloads](http://ruby-gem-downloads-badge.herokuapp.com/kitchen-ansiblepush?type=total&color=brightgreen)](https://rubygems.org/gems/kitchen-ansiblepush)
4
4
  [![Build Status](https://travis-ci.org/ahelal/kitchen-ansiblepush.svg?branch=master)](https://travis-ci.org/ahelal/kitchen-ansiblepush)
5
5
 
6
- A test-kitchen plugin that adds the support for ansible in push mode
6
+ A test-kitchen plugin that adds the support for ansible in push mode i.e. normal 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 instance(s). That also means your code will not be copied to guest.
10
10
 
11
- ## How to install
11
+ It is designed to just simply work with minimum configuration. Just run as you would normaly do.
12
12
 
13
- ### Ruby gem
14
- ```
15
- gem install kitchen-ansiblepush
16
- ```
17
-
18
- ### To install from code
19
- ```
20
- git clone git@github.com:ahelal/kitchen-ansiblepush.git
21
- cd kitchen-ansiblepush
22
- gem build kitchen-ansiblepush.gemspec
23
- gem install kitchen-ansiblepush-<version>.gem
24
- ```
13
+ ## How to install
25
14
 
26
- ### Use Bundler
15
+ ### (1) Use Bundler
27
16
  My preferred method is use Gemfile
28
17
 
29
18
  ```ruby
@@ -35,6 +24,19 @@ group :development do
35
24
  end
36
25
  ```
37
26
 
27
+ ### (2) Ruby gem
28
+ ```bash
29
+ gem install kitchen-ansiblepush
30
+ ```
31
+
32
+ ### (3) Install from code
33
+ ```bash
34
+ git clone git@github.com:ahelal/kitchen-ansiblepush.git
35
+ cd kitchen-ansiblepush
36
+ gem build kitchen-ansiblepush.gemspec
37
+ gem install kitchen-ansiblepush-<version>.gem
38
+ ```
39
+
38
40
  ## kitchen.yml Options
39
41
  ```yaml
40
42
  provisioner :
@@ -44,7 +46,7 @@ provisioner :
44
46
  ##
45
47
  ## Optional argument
46
48
  ansible_config : "/path/to/ansible/ansible.cfg" # path to ansible config file
47
- verbose : "vvvv" # verbose level v, vv, vvv, vvvv
49
+ verbose : "vvvv" # verbose level v, vv, vvv, vvvv
48
50
  diff : true # print file diff
49
51
  mygroup : "web" # ansible group, or list of groups
50
52
  raw_arguments : "--timeout=200"
@@ -67,18 +69,20 @@ provisioner :
67
69
  use_instance_name : false # use short (platform) instead of instance name by default
68
70
  idempotency_test : false
69
71
  ```
70
- ## idempotency test
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
+ ## Idempotency test
73
+ 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 second run. If something changed it will list the tasks. Note: If your using Ansible callback in your config this might conflict.
74
+
72
75
  ```yaml
73
76
  idempotency_test: true
74
77
  fail_non_idempotent: true
75
78
  ```
76
79
 
77
- If your running ansible V2 you need to white list the callback ``` callback_whitelist = changes``` in **ansible.cfg**
80
+ If your running ansible V2 you need to white list the callback ```callback_whitelist = changes``` in **ansible.cfg**
78
81
  You can also choose to not to fail if idempotency test fails.
79
82
 
80
83
  ## Ansible version
81
84
  Since ansiblepush uses the host to run Ansible. you can simply specify the path of your ansible-playbook executable in your .kitchen.yml
85
+
82
86
  ```yaml
83
87
  ansible_playbook_bin : /path/to/ansible-playbook
84
88
  ```
@@ -88,6 +92,7 @@ For further example you can check a matrix test [ansible-usermanage](https://git
88
92
 
89
93
  ## Disable chef installation
90
94
  By default chef is installed and serverspec stuff. if you don't want to install
95
+
91
96
  ```yaml
92
97
  chef_bootstrap_url: nil
93
98
  ```
@@ -99,7 +104,8 @@ Ansible push generates inventory dynamically you have multiple options to name y
99
104
 
100
105
  ## Windows support
101
106
  Kitchen ansiblepush has experimental support.
102
- to enable windows support you need to add the following to your .kitchen.yml
107
+ to enable windows support you need to add the following to your *.kitchen.yml*
108
+
103
109
  ```yaml
104
110
  ...
105
111
  transport:
@@ -108,6 +114,7 @@ transport:
108
114
  provisioner:
109
115
  name : ansible_push
110
116
  chef_bootstrap_url : nil
117
+ ansible_port : 5586
111
118
  ansible_connection : "winrm"
112
119
  ...
113
120
  ```
@@ -118,6 +125,7 @@ You can use ansible push with different pattern. I will list some of the ways t
118
125
  I define my Gemfile in the role. I then run ```bundle install``` and commit my *Gemfile.lock* I also ignore ```.kitchen```
119
126
 
120
127
  A typical structure of an ansible role
128
+
121
129
  ```yaml
122
130
  defaults
123
131
  handlers
@@ -10,7 +10,7 @@ require 'kitchen-ansible/idempotancy'
10
10
  module Kitchen
11
11
  class Busser
12
12
  def non_suite_dirs
13
- %w({data})
13
+ %w[{data}]
14
14
  end
15
15
  end
16
16
 
@@ -249,7 +249,7 @@ module Kitchen
249
249
  end
250
250
  debug("hostname='#{hostname}'")
251
251
  # Generate hosts
252
- hosts = generate_instance_inventory(machine_name, hostname, conf[:mygroup], instance_connection_option, conf[:ansible_connection])
252
+ hosts = generate_instance_inventory(machine_name, hostname, conf[:mygroup], instance_connection_option, conf)
253
253
  write_var_to_yaml("#{TEMP_INV_DIR}/ansiblepush_host_#{machine_name}.yml", hosts)
254
254
  # Generate groups (if defined)
255
255
  write_var_to_yaml(TEMP_GROUP_FILE, conf[:groups]) if conf[:groups]
@@ -8,12 +8,13 @@ def write_var_to_yaml(yaml_file, hash_var)
8
8
  end
9
9
  end
10
10
 
11
- def generate_instance_inventory(name, host, mygroup, instance_connection_option, ansible_connection)
11
+ def generate_instance_inventory(name, host, mygroup, instance_connection_option, conf)
12
12
  unless instance_connection_option.nil?
13
13
  port = instance_connection_option[:port]
14
14
  keys = instance_connection_option[:keys]
15
15
  user = instance_connection_option[:user]
16
- pass = instance_connection_option[:pass]
16
+ pass = instance_connection_option[:pass] if instance_connection_option[:pass]
17
+ pass = instance_connection_option[:password] if instance_connection_option[:password]
17
18
  end
18
19
 
19
20
  temp_hash = {}
@@ -23,10 +24,12 @@ def generate_instance_inventory(name, host, mygroup, instance_connection_option,
23
24
  temp_hash['ansible_ssh_user'] = user if user
24
25
  temp_hash['ansible_ssh_pass'] = pass if pass
25
26
  temp_hash['mygroup'] = mygroup if mygroup
27
+ temp_hash['ansible_ssh_port'] = conf[:ansible_port] if conf[:ansible_port]
26
28
  # Windows issue ignore SSL
27
- if ansible_connection == 'winrm'
29
+ if conf[:ansible_connection] == 'winrm'
28
30
  temp_hash['ansible_winrm_server_cert_validation'] = 'ignore'
29
31
  temp_hash['ansible_winrm_transport'] = 'ssl'
32
+ temp_hash['ansible_connection'] = 'winrm'
30
33
  end
31
34
  { name => temp_hash }
32
35
  end
@@ -1,5 +1,5 @@
1
1
  module Kitchen
2
2
  module AnsiblePush
3
- VERSION = '0.6.2'.freeze
3
+ VERSION = '0.7.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-ansiblepush
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adham Helal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-05 00:00:00.000000000 Z
11
+ date: 2017-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen