saltstack / kitchen-salt Goto Github PK
View Code? Open in Web Editor NEWSaltStack provisioner for test-kitchen
License: MIT License
SaltStack provisioner for test-kitchen
License: MIT License
Hi, I'm really looking forward to using this busser. We really need windows support and have just started looking at using kitchen-salt. Here's our current error when trying to download the chef omnibus package.
-----> Converging <default-windows-2012r2>...
Preparing files for transfer
Preparing salt-minion
Preparing state_top
Preparing pillars into /srv/pillar
Preparing formula: beaver from C:/kitchen-salt-tutorial/beaver-formula
$$$$$$ Remove-Item : A parameter cannot be found that matches parameter name 'rf'.
$$$$$$ At line:1 char:4
$$$$$$ + rm -rf $env:TEMP\kitchen ; mkdir -p $env:TEMP\kitchen
$$$$$$ + ~~~
$$$$$$ + CategoryInfo : InvalidArgument: (:) [Remove-Item], ParameterBin
$$$$$$ dingException
$$$$$$ + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Comm
$$$$$$ ands.RemoveItemCommand
$$$$$$
$$$$$$ mkdir : Parameter cannot be processed because the parameter name 'p' is
$$$$$$ ambiguous. Possible matches include: -Path -PipelineVariable.
$$$$$$ At line:1 char:34
$$$$$$ + rm -rf $env:TEMP\kitchen ; mkdir -p $env:TEMP\kitchen
$$$$$$ + ~~
$$$$$$ + CategoryInfo : InvalidArgument: (:) [mkdir], ParameterBindingEx
$$$$$$ ception
$$$$$$ + FullyQualifiedErrorId : AmbiguousParameter,mkdir
>>>>>> Converge failed on instance <default-windows-2012r2>.
>>>>>> Please see .kitchen/logs/default-windows-2012r2.log for more details
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: WinRM exited (1) for command: [rm -rf $env:TEMP\kitchen ; mkdir -p $env:TEMP\kitchen]
>>>>>> ----------------------
C:\kitchen-salt-tutorial\beaver-formula [master +0 ~1 -0]
Hello,
When kitchen-salt converges, there is a step of files transfers to copy them to /tmp/kitchen inside the VM.
But it seems that it's done in two steps:
In our case, we use kitchen to test a full repository of salt states/pillars and files, which is several hundreds of MB. This double copy slows down our testing.
I wonder if the data directory could be directly shared/copied inside the VM, without this extra step.
I'm not sure this comes from kitchen-salt or test-kitchen.
The problem is because of lack apt-transport-https packages
-----> Converging <default-xbtsyslog-debian-jessie64>...
Preparing files for transfer
Preparing salt-minion
Preparing pillars into /srv/pillar
Preparing grains into /etc/salt/grains
Preparing state collection
neither collection_name or formula have been set, assuming this is a pre-built collection
Preparing state_top
Preparing scripts into /etc/salt/scripts
sh: 1: salt-call: not found
-----> Configuring apt repo for salt 2016.11.3
deb https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/2016.11.3 jessie main
downloading https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/SALTSTACK-GPG-KEY.pub
to file /tmp/repo.key
trying wget...
OK
E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?
-----> Installing salt-minion (2016.11.3)
Reading package lists... Done
Building dependency tree
Reading state information... Done
python-support is already the newest version.
The following packages were automatically installed and are no longer required:
libyaml-0-2 python-jinja2 python-mako python-markupsafe python-msgpack
python-yaml
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 34 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package salt-minion
E: Unable to locate package salt-common
sh: 1: salt-call: not found
No salt-minion installed, install must have failed!!
salt_install = apt
salt_url = https://bootstrap.saltstack.com
bootstrap_options =
salt_version = 2016.11.3
salt_apt_repo = https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest
salt_apt_repo_key = https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/SALTSTACK-GPG-KEY.pub
salt_ppa = ppa:saltstack/salt
source 'https://rubygems.org'
gem "test-kitchen", '>=1.2.1'
gem "kitchen-vagrant"
gem "unf"
gem "kitchen-salt", ">=0.0.27"
provisioner:
dependencies:
- name: foo
path: ../formulas/foo
broken since 0.0.25
# install formulas
config[:dependencies].select{|dependency| dependency.has_key?(:repo)}.each do |formula|
only dependencies with "repo" key are fetched.
provisioner:
name: salt_solo
formula: zabbix
dependencies:
- path: ../oracle-jdk-formula
name: oracle-jdk
- path: ../nginx-formula
name: nginx
- path: ../fpm-formula
name: fpm
It seems that its not possible to use pillar data from files anymore.
To reproduce:
git clone https://github.com/seegno/influxdb-formula.git
cd influxdb-formila
bundle
# Edit some pillar data on pillar example
vim pillar.example
bundle exec kitchen converge
kitchen login
Verify that the files in /tmp/kitchen/srv/pillar
and the pillar data change was been ignored.
After a little research I noticed that data_path is always null now.
Any ideas ?
Regards,
Alfredo Palhares
Is there a way to set pillars/top per platform?
Having overall pillars works on a test of one OS, what if i want to define pillars that are different for a centos platform vs an ubuntu platform?
https://github.com/saltstack-formulas/jenkins-formula/blob/master/.kitchen.yml
for reference, how can i define pillar netcat_pkg
for amazonlinux/centos?
-----> Starting Kitchen (v1.5.0)
-----> Converging ...
Preparing files for transfer
Preparing salt-minion
Preparing state_top
Preparing pillars into /srv/pillar
Preparing formula: beaver from /home//ksalt-tut/beaver-formula
Preparing formula: beaver from /home//ksalt-tut/beaver-formula/
Preparing formula: README.md from /home//ksalt-tut/beaver-formula/
Preparing formula: test from /home//ksalt-tut/beaver-formula/
Preparing formula: top.sls from /home//ksalt-tut/beaver-formula/
------Exception-------
Class: Kitchen::ActionFailed
Message: Failed to complete #converge action: [File exists - /tmp//default-ubuntu-1204-sandbox-20160224-2200-p4ul3l/srv/salt/top.sls]
I get this error when trying to bring up the default beaver formula.
I edited salt_solo.rb:375 to read:
FileUtils.mkdir_p(formula_dir) unless File.exists?(formula_dir)
And it works now. Not sure why it was crashing there for me to begin with- especially since it didn't crash there for my co-worker doing essentially the same thing.
Is this a harmless change to prevent my error?
Having an issue trying to get kitchen-salt to use newer packages from saltstack. I need to test 2015.8 on debian. That version doesn't appear available in apt. I can point to http://debian.saltstack.com/debian/dists/jessie-saltstack/ manually in a sources file, but this URL won't work int salt_apt_repo.
Looking at the code at https://github.com/cmarzullo/kitchen-salt/blob/master/lib/kitchen/provisioner/salt_solo.rb#L104
It seems a URL path is hard coded into the install script that gets copied over. Perhaps the repo structure has changed a bunch.
I'll see if I can get something made up as a PR.
I am looking at your test suite with our setup and so far things are working great with simpe state files. Most of our app state files utilize salthiera with their encryption for compliance reasons.
https://github.com/gtmtechltd/salthiera
Is there anyway to utilize this in kitchen-salt for pillar lookup?
Would it be possible to release a new version (0.0.23)?
Especially with regard to #43 and the test-kitchen 1.7.0 release.
Allow users to set grains in the .kitchen.yml file so that states can use the data.
For example:
I would like to specify different suites/grains in the kitchen.yml to be able to setup multiple servers to test each of the different, but it doesn't appear to copy the grains over, eg;
suites:
- name: ftphserver-stage
attributes:
grains:
roles:
- ftph-server
- v1-infrastructure
- development
datacenter: europe-west1-a
provider: gce
datacenter: europe-west1-a
provider: gce
(request from [email protected])
I have a simple formula (now) that depends on the build-essential.
How do you had external formulas with replicating code and testing the formula without any ugly hacks?
Regards,
Alfredo Palhares
Hi
After troubleshooting a few issues with our integration tests using kitchen-salt, we found out that issues are related to having .kitchen directory in all our suites. We run multiple tests in parallel and sometimes we get random errors about missing files.
Here an example
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>> Failed to complete #converge action: [No such file or directory @ rb_sysopen - /home/jenkins-slave/workspace/ack_fix_vagrant_concurrency-MVVQYBRDAXXGZQN4AXNNULFWB3J7O576EUXB5VC5I6FZKQN5EPEQ/.kitchen/kitchen-vagrant/kitchen-ack_fix_vagrant_concurrency-MVVQYBRDAXXGZQN4AXNNULFWB3J7O576EUXB5VC5I6FZKQN5EPEQ-grafana-server-ubuntu-1604-vagrant/kitchen-ack_fix_vagrant_concurrency-MVVQYBRDAXXGZQN4AXNNULFWB3J7O576EUXB5VC5I6FZKQN5EPEQ-grafana-server-ubuntu-1604-vagrant_default_1502282890429_75066/Snapshots/{42e0e5c4-d0df-4c5a-bc06-db8f29c53375}.vmdk] on cronmaster-freebsd-103
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration
script returned exit code 20
Running kitchen test in debug mode I see referrences to those files
D cp_r_with_filter:target = /var/folders/tg/n3fypkb530n8z1m4glcny6zm0000gn/T/mysql-server-ubuntu-1404-sandbox-20170809-920-1d2x8oe/srv/salt//.kitchen/logs/grafana-server-ubuntu-1604.log
D cp_r_with_filter:source = /Users/abednarik/perceptyx/code/saltstack/.kitchen/logs/kitchen.log
D cp_r_with_filter:target = /var/folders/tg/n3fypkb530n8z1m4glcny6zm0000gn/T/mysql-server-ubuntu-1404-sandbox-20170809-920-1d2x8oe/srv/salt//.kitchen/logs/kitchen.log
D cp_r_with_filter:source = /Users/abednarik/perceptyx/code/saltstack/.kitchen/logs/mysql-server-ubuntu-1404.log
D cp_r_with_filter:target = /var/folders/tg/n3fypkb530n8z1m4glcny6zm0000gn/T/mysql-server-ubuntu-1404-sandbox-20170809-920-1d2x8oe/srv/salt//.kitchen/logs/mysql-server-ubuntu-1404.log
D cp_r_with_filter:source = /Users/abednarik/perceptyx/code/saltstack/.kitchen/logs/mysql-server-ubuntu-1604-vagrant.log
D cp_r_with_filter:target = /var/folders/tg/n3fypkb530n8z1m4glcny6zm0000gn/T/mysql-server-ubuntu-1404-sandbox-20170809-920-1d2x8oe/srv/salt//.kitchen/logs/mysql-server-ubuntu-1604-vagrant.log
Checking target dir I do see those directories .kitchen and .git
ls -al
total 112
drwxr-xr-x 11 kitchen kitchen 4096 Aug 9 07:19 .
drwxr-xr-x 3 kitchen kitchen 4096 Aug 9 07:18 ..
drwxr-xr-x 8 kitchen kitchen 4096 Aug 9 07:18 .git
-rw-r--r-- 1 kitchen kitchen 81 Aug 9 07:18 .gitignore
-rw-r--r-- 1 kitchen kitchen 3330 Aug 9 07:18 .gitmodules
drwxr-xr-x 4 kitchen kitchen 4096 Aug 9 07:18 .kitchen
-rw-r--r-- 1 kitchen kitchen 1623 Aug 9 07:18 .kitchen.local.yml
-rw-r--r-- 1 kitchen kitchen 5445 Aug 9 07:18 .kitchen.yml
-rw-r--r-- 1 kitchen kitchen 343 Aug 9 07:19 Gemfile
-rw-r--r-- 1 kitchen kitchen 1484 Aug 9 07:19 Gemfile.lock
-rw-r--r-- 1 kitchen kitchen 10221 Aug 9 07:19 Jenkinsfile
-rw-r--r-- 1 kitchen kitchen 3548 Aug 9 07:19 README.md
drwxr-xr-x 28 kitchen kitchen 4096 Aug 9 07:19 formulas
-rw-r--r-- 1 kitchen kitchen 36 Aug 9 07:19 grains
-rw-r--r-- 1 kitchen kitchen 3488 Aug 9 07:19 init.conf
-rw-r--r-- 1 kitchen kitchen 2316 Aug 9 07:19 master
drwxr-xr-x 2 kitchen kitchen 4096 Aug 9 07:19 master.d
-rw-r--r-- 1 kitchen kitchen 1673 Aug 9 07:19 minion
drwxr-xr-x 17 kitchen kitchen 4096 Aug 9 07:19 pillar
drwxr-xr-x 3 kitchen kitchen 4096 Aug 9 07:19 pki
drwxr-xr-x 2 kitchen kitchen 4096 Aug 9 07:19 reactor
drwxr-xr-x 22 kitchen kitchen 4096 Aug 9 07:19 salt
drwxr-xr-x 5 kitchen kitchen 4096 Aug 9 07:19 test
-rw-r--r-- 1 kitchen kitchen 4130 Aug 9 07:19 top.sls
After setting
salt_copy_filter:
- .kitchen
- .git
I don't see hidden directories in target dir
ls -al
total 104
drwxr-xr-x 9 kitchen kitchen 4096 Aug 9 07:49 .
drwxr-xr-x 3 kitchen kitchen 4096 Aug 9 07:49 ..
-rw-r--r-- 1 kitchen kitchen 81 Aug 9 07:49 .gitignore
-rw-r--r-- 1 kitchen kitchen 3330 Aug 9 07:49 .gitmodules
-rw-r--r-- 1 kitchen kitchen 1623 Aug 9 07:49 .kitchen.local.yml
-rw-r--r-- 1 kitchen kitchen 5491 Aug 9 07:49 .kitchen.yml
-rw-r--r-- 1 kitchen kitchen 343 Aug 9 07:49 Gemfile
-rw-r--r-- 1 kitchen kitchen 1484 Aug 9 07:49 Gemfile.lock
-rw-r--r-- 1 kitchen kitchen 10221 Aug 9 07:49 Jenkinsfile
-rw-r--r-- 1 kitchen kitchen 3548 Aug 9 07:49 README.md
drwxr-xr-x 27 kitchen kitchen 4096 Aug 9 07:49 formulas
-rw-r--r-- 1 kitchen kitchen 36 Aug 9 07:49 grains
-rw-r--r-- 1 kitchen kitchen 3488 Aug 9 07:49 init.conf
-rw-r--r-- 1 kitchen kitchen 2316 Aug 9 07:49 master
drwxr-xr-x 2 kitchen kitchen 4096 Aug 9 07:49 master.d
-rw-r--r-- 1 kitchen kitchen 1673 Aug 9 07:49 minion
drwxr-xr-x 17 kitchen kitchen 4096 Aug 9 07:49 pillar
drwxr-xr-x 3 kitchen kitchen 4096 Aug 9 07:49 pki
drwxr-xr-x 2 kitchen kitchen 4096 Aug 9 07:49 reactor
drwxr-xr-x 22 kitchen kitchen 4096 Aug 9 07:49 salt
drwxr-xr-x 5 kitchen kitchen 4096 Aug 9 07:49 test
-rw-r--r-- 1 kitchen kitchen 4130 Aug 9 07:49 top.sls
I think we should update documentation or check that the method really ignore hidden dirs.
Thanks.
I was not able to figure out a way to have the salt states be in a directory other than the current one where .kitchen.yaml is defined. For instance we have some_path/tests/kitchen_tests, where I would like to keep the yaml file. Then the actual salt state I want to use is in some_path/other_path/services/my_state_dir. It looks like the only way to get kitchen-salt to find the my_state_dir is if you put .kitchen.yaml inside the services dir.
It would be nice to have this functionality if it is not already there.
Many of my formula depend on other formula to setup a service exactly how it will be in my infrastructure. For instance I may need an Apache Reverse Proxy in front of a Tomcat Service. I have my Apache formula set that up in my test environment.
I wrote the following vagrant plugin to solve that issue for me. https://github.com/joshughes/vagrant-saltdeps
I would be nice to have similar functionality in kitchen-salt. I am happy to help do the work, but being unfamiliar with test-kitchen I am not sure where something like dependency support should be implemented. Chef uses berkshelf and maybe salt needs a stand alone project like that?
If there is precedence for test-kitchen to manage dependencies, then I would rather do it in kitchen-salt than manage an entire other project just for managing dependencies.
My .kitchen.yml file:
---
driver:
name: vagrant
provisioner:
name: salt_solo
dependencies:
- name: nginx
repo: git
source: https://github.com/salt-formulas/salt-formula-nginx.git
is_file_root: true
require_chef: false
state_top:
base:
'*':
- jenkins-master
platforms:
- name: ubuntu-16.04
suites:
- name: default
Error:
ip-10-100-5-96:jenkins braden$ kit test
-----> Starting Kitchen (v1.16.0)
-----> Cleaning up any prior instances of <default-ubuntu-1604>
-----> Destroying <default-ubuntu-1604>...
==> default: Forcing shutdown of VM...
==> default: Destroying VM and associated drives...
Vagrant instance <default-ubuntu-1604> destroyed.
Finished destroying <default-ubuntu-1604> (0m4.29s).
-----> Testing <default-ubuntu-1604>
-----> Creating <default-ubuntu-1604>...
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'bento/ubuntu-16.04'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'bento/ubuntu-16.04' is up to date...
==> default: A newer version of the box 'bento/ubuntu-16.04' is available! You currently
==> default: have version '2.3.5'. The latest is version '2.3.7'. Run
==> default: `vagrant box update` to update.
==> default: Setting the name of the VM: kitchen-jenkins-default-ubuntu-1604_default_1501784455236_57941
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2200
default: SSH username: vagrant
default: SSH auth method: private key
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Mounting shared folders...
default: /tmp/omnibus/cache => /Users/braden/.kitchen/cache
==> default: Machine not provisioned because `--no-provision` is specified.
[SSH] Established
Vagrant instance <default-ubuntu-1604> created.
Finished creating <default-ubuntu-1604> (0m38.16s).
-----> Converging <default-ubuntu-1604>...
Preparing files for transfer
Preparing salt-minion
Preparing pillars into /srv/pillar
Preparing state collection
neither collection_name or formula have been set, assuming this is a pre-built collection
Preparing formula: nginx from
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>> Failed to complete #converge action: [no implicit conversion of nil into String] on default-ubuntu-1604
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration
Logs:
$ cat .kitchen/logs/kitchen.log
I, [2017-08-03T13:26:46.019435 #16856] INFO -- Kitchen: -----> Starting Kitchen (v1.16.0)
I, [2017-08-03T13:26:46.145603 #16856] INFO -- Kitchen: -----> Converging <default-ubuntu-1604>...
E, [2017-08-03T13:26:46.177263 #16856] ERROR -- Kitchen: ------Exception-------
E, [2017-08-03T13:26:46.177293 #16856] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2017-08-03T13:26:46.177307 #16856] ERROR -- Kitchen: Message: 1 actions failed.
>>>>>> Failed to complete #converge action: [no implicit conversion of nil into String] on default-ubuntu-1604
E, [2017-08-03T13:26:46.177319 #16856] ERROR -- Kitchen: ----------------------
E, [2017-08-03T13:26:46.177330 #16856] ERROR -- Kitchen: ------Backtrace-------
E, [2017-08-03T13:26:46.177340 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:183:in `report_errors'
E, [2017-08-03T13:26:46.177351 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:174:in `run_action'
E, [2017-08-03T13:26:46.177361 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command/action.rb:36:in `block in call'
E, [2017-08-03T13:26:46.177372 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/2.3.0/benchmark.rb:293:in `measure'
E, [2017-08-03T13:26:46.177382 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command/action.rb:34:in `call'
E, [2017-08-03T13:26:46.177392 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/cli.rb:53:in `perform'
E, [2017-08-03T13:26:46.177402 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/cli.rb:187:in `block (2 levels) in <class:CLI>'
E, [2017-08-03T13:26:46.177413 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
E, [2017-08-03T13:26:46.177423 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
E, [2017-08-03T13:26:46.177433 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/cli.rb:334:in `invoke_task'
E, [2017-08-03T13:26:46.177443 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
E, [2017-08-03T13:26:46.177453 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
E, [2017-08-03T13:26:46.177464 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/bin/kitchen:13:in `block in <top (required)>'
E, [2017-08-03T13:26:46.177474 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/errors.rb:171:in `with_friendly_errors'
E, [2017-08-03T13:26:46.177484 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/bin/kitchen:13:in `<top (required)>'
E, [2017-08-03T13:26:46.177494 #16856] ERROR -- Kitchen: /usr/local/bin/kitchen:21:in `load'
E, [2017-08-03T13:26:46.177504 #16856] ERROR -- Kitchen: /usr/local/bin/kitchen:21:in `<main>'
E, [2017-08-03T13:26:46.177514 #16856] ERROR -- Kitchen: ----End Backtrace-----
E, [2017-08-03T13:26:46.177523 #16856] ERROR -- Kitchen: -Composite Exception--
E, [2017-08-03T13:26:46.177533 #16856] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2017-08-03T13:26:46.177542 #16856] ERROR -- Kitchen: Message: Failed to complete #converge action: [no implicit conversion of nil into String] on default-ubuntu-1604
E, [2017-08-03T13:26:46.177552 #16856] ERROR -- Kitchen: ----------------------
E, [2017-08-03T13:26:46.177562 #16856] ERROR -- Kitchen: ------Backtrace-------
E, [2017-08-03T13:26:46.177571 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:411:in `join'
E, [2017-08-03T13:26:46.177617 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:411:in `prepare_formula'
E, [2017-08-03T13:26:46.177637 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:210:in `block in create_sandbox'
E, [2017-08-03T13:26:46.177648 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:209:in `each'
E, [2017-08-03T13:26:46.177659 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:209:in `create_sandbox'
E, [2017-08-03T13:26:46.177669 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/provisioner/base.rb:65:in `call'
E, [2017-08-03T13:26:46.177681 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:384:in `block in converge_action'
E, [2017-08-03T13:26:46.177765 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:527:in `synchronize_or_call'
E, [2017-08-03T13:26:46.177776 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:489:in `block in action'
E, [2017-08-03T13:26:46.177786 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/2.3.0/benchmark.rb:293:in `measure'
E, [2017-08-03T13:26:46.177796 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:488:in `action'
E, [2017-08-03T13:26:46.177807 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:380:in `converge_action'
E, [2017-08-03T13:26:46.177817 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:359:in `block in transition_to'
E, [2017-08-03T13:26:46.177827 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:358:in `each'
E, [2017-08-03T13:26:46.177837 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:358:in `transition_to'
E, [2017-08-03T13:26:46.177877 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:135:in `converge'
E, [2017-08-03T13:26:46.177888 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:197:in `public_send'
E, [2017-08-03T13:26:46.177898 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:197:in `run_action_in_thread'
E, [2017-08-03T13:26:46.177907 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:169:in `block (2 levels) in run_action'
E, [2017-08-03T13:26:46.177917 #16856] ERROR -- Kitchen: ----End Backtrace-----
E, [2017-08-03T13:26:46.177927 #16856] ERROR -- Kitchen: ---Nested Exception---
E, [2017-08-03T13:26:46.177938 #16856] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2017-08-03T13:26:46.177975 #16856] ERROR -- Kitchen: Message: Failed to complete #converge action: [no implicit conversion of nil into String]
E, [2017-08-03T13:26:46.177986 #16856] ERROR -- Kitchen: ----------------------
E, [2017-08-03T13:26:46.177995 #16856] ERROR -- Kitchen: ------Backtrace-------
E, [2017-08-03T13:26:46.178005 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:411:in `join'
E, [2017-08-03T13:26:46.178014 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:411:in `prepare_formula'
E, [2017-08-03T13:26:46.178024 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:210:in `block in create_sandbox'
E, [2017-08-03T13:26:46.178039 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:209:in `each'
E, [2017-08-03T13:26:46.178050 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:209:in `create_sandbox'
E, [2017-08-03T13:26:46.178103 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/provisioner/base.rb:65:in `call'
E, [2017-08-03T13:26:46.178114 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:384:in `block in converge_action'
E, [2017-08-03T13:26:46.178124 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:527:in `synchronize_or_call'
E, [2017-08-03T13:26:46.178134 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:489:in `block in action'
E, [2017-08-03T13:26:46.178144 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/2.3.0/benchmark.rb:293:in `measure'
E, [2017-08-03T13:26:46.178154 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:488:in `action'
E, [2017-08-03T13:26:46.178163 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:380:in `converge_action'
E, [2017-08-03T13:26:46.178176 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:359:in `block in transition_to'
E, [2017-08-03T13:26:46.178187 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:358:in `each'
E, [2017-08-03T13:26:46.178197 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:358:in `transition_to'
E, [2017-08-03T13:26:46.178207 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:135:in `converge'
E, [2017-08-03T13:26:46.178217 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:197:in `public_send'
E, [2017-08-03T13:26:46.178227 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:197:in `run_action_in_thread'
E, [2017-08-03T13:26:46.178253 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:169:in `block (2 levels) in run_action'
E, [2017-08-03T13:26:46.178304 #16856] ERROR -- Kitchen: ----End Backtrace-----
I'm fairly new to salt but have used test-kitchen with Chef a lot. I tried different options like dependencies from local path instead of from Git. Really I want to use a jenkins-formula on git, but when that didn't work I just tried to get one of the examples working.
Versions I'm using:
ip-10-100-5-96:jenkins braden$ chef gem list |grep kitchen
kitchen-docker (2.6.0)
kitchen-dokken (2.1.2)
kitchen-ec2 (1.3.2)
kitchen-inspec (0.17.0)
kitchen-salt (0.0.24)
kitchen-vagrant (1.1.0)
test-kitchen (1.16.0)
Thanks for any help
Same result with local vagrant driver, on travis-ci using docker driver, and using Linode driver.
This log is from a local, vagrant driver, bento/debian-8.7 kitchen converge:
sh: 1: salt-call: not found
downloading https://bootstrap.saltstack.org
to file /tmp/bootstrap-salt.sh
trying wget...
trying curl...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error
trying perl...
A URI can't be a ARRAY reference at /usr/share/perl5/LWP/Simple.pm line 64.
trying python...
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 449, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1240, in https_open
context=self._context)
File "/usr/lib/python2.7/urllib2.py", line 1197, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [SSL: TLSV1_ALERT_INTERNAL_ERROR] tlsv1 alert internal error (_ssl.c:581)>
>>>>>> wget, curl, fetch, perl or python not found on this instance.
sh: 1: salt-call: not found
artifactory (2.8.2)
bigdecimal (1.3.2, default: 1.3.0)
builder (3.2.3)
CFPropertyList (2.3.5)
did_you_mean (1.1.2)
excon (0.57.0)
fission (0.5.0)
fog (1.40.0)
fog-aliyun (0.1.0)
fog-atmos (0.1.0)
fog-aws (1.4.0)
fog-brightbox (0.11.0)
fog-cloudatcost (0.1.2)
fog-core (1.44.3)
fog-digitalocean (0.3.0)
fog-dnsimple (1.0.0)
fog-dynect (0.0.3)
fog-ecloud (0.3.0)
fog-google (0.1.0)
fog-json (1.0.2)
fog-local (0.3.1)
fog-openstack (0.1.21)
fog-powerdns (0.1.1)
fog-profitbricks (3.0.0)
fog-rackspace (0.1.5)
fog-radosgw (0.0.5)
fog-riakcs (0.1.0)
fog-sakuracloud (1.7.5)
fog-serverlove (0.1.2)
fog-softlayer (1.1.4)
fog-storm_on_demand (0.1.1)
fog-terremark (0.1.0)
fog-vmfusion (0.1.0)
fog-voxel (0.1.0)
fog-vsphere (1.11.0)
fog-xenserver (0.3.0)
fog-xml (0.1.3)
formatador (0.2.5)
inflecto (0.0.2)
io-console (default: 0.4.6)
ipaddress (0.8.3)
json (2.1.0, default: 2.0.2, 1.8.6)
kitchen-linode (0.14.0)
kitchen-salt (0.0.26)
kitchen-vagrant (1.1.0)
mini_portile2 (2.2.0)
minitest (5.10.2)
mixlib-install (2.1.12)
mixlib-shellout (2.2.7)
mixlib-versioning (1.1.0)
multi_json (1.12.1)
net-scp (1.2.1)
net-ssh (4.1.0)
net-ssh-gateway (1.3.0)
net-telnet (0.1.1)
nokogiri (1.8.0)
openssl (2.0.4, default: 2.0.2)
power_assert (1.0.2)
psych (2.2.4, default: 2.2.2)
rake (12.0.0)
rbvmomi (1.11.3)
rdoc (5.1.0, default: 5.0.0)
rubygems-update (2.6.12)
safe_yaml (1.0.4)
test-kitchen (1.16.0)
test-unit (3.2.5)
thor (0.19.1)
trollop (2.1.2)
xml-simple (1.1.5)
xmlrpc (0.3.0)
ruby 2.4.0
is it possible to get the highstate to run in debug mode? the ability to add -l debug
to salt-call would help track down troublesome bugs in code.
During bootstrap-salt.sh:
/tmp/install.sh: 58: /tmp/install.sh: [[: not found
/tmp/install.sh: 59: /tmp/install.sh: [[: not found
sh: 193: Syntax error: end of file unexpected (expecting "fi")
https://github.com/saltstack/kitchen-salt/blob/master/assets/install.sh#L58-L59
https://github.com/simonmcc/kitchen-salt/blame/master/INTRODUCTION.md#L200 shows an outdated and suboptimal way to use serverspec
from: https://github.com/test-kitchen/busser-serverspec#-notice
You should use Kitchen::Verifier::Shell + Serverspec instead of Busser::RunnerPlugin::Serverspec.
usage example: https://github.com/cl-lab-k/apache2-take/blob/shell_verifier/.kitchen.yml#L20
would you like me to update the README? is there any reason why we shouldn't move towards this? i would also like to deprecate the chef install to make people aware that this is a preferred option.
spent a few hours dancing around with this, and wanna make it more clear for new people coming into the project
Alpine Linux support in assets/install.sh
is missing.
The salt_copy_filter option is only applied to directories, not individual files.
Current Project's documentation is split among these files:
README.md
- general infoINTRODUCTION.md
- introduction on how to useprovisioner_options.md
- provisioner optionsdocs
folder contains some examples/samples for ruby/tinhat
(I believe this one is a bit unmaintained)I believe this sort of structure / split of things ony makes it difficult for someone to start using kitchen-salt
. There have been a few relevant issues when users can't find something in the documentation.
This issue's goal is to sort out project documentation so it's in one place. Possible solutions:
README.md
and then move the rest to Wiki
(usually it's best to keep guides / tutorials in Wiki). However, small downside of that that the maintenance of the wiki separate and it's easier for wiki to get outdated as people usually only do PRs and don't update the Wiki.README.md
, then move the rest of .MD
files to docs
folder where we could structure documentation. The upsides of this is that documentation is versioned together with the code. Additionally, we would be able to setup Github Pages and point it to docs/
folder in the future, should you want to start using Github Pages for the project.I would suggest to go with solution 2 and I could submit a basic PR to move the files there + add basic Index / structure.
Please let me know what you think. It's a great project and I would like to improve it's documentation.
@jbussdieker @epcim @ek9 @n-rodriguez @amontalban @milosgajdos83 @corux @azban @malept @mrbobbytables @neillturner @twmartin @jschectman-vs @Frots
A few weeks back Thomas Hatch from SaltStack asked me if I would be interested in moving kitchen-salt under the SaltStack umbrella, so that it becomes an official project sponsored and run by Salt. I said yes. As some of you will have been aware, I've been unable to devote time to kitchen-salt, it hasn't been part of my day job for a number of years. I see this change as kitchen-salt getting stewardship with the resources to keep the project moving forward & stay in sync with the core Salt products.
Daniel Wallace from Salt will be helping with transitioning kitchen-salt under the Salt umbrella.
Thank you for all your help, contributions & patience over the years, I hope the future of kitchen-salt looks brighter from your point of view too.
Simon.
Hi all,
All my CIs are now failing after the gem was updated to 0.0.25, and I get the following error with running kitchen
kitchen converge default-centos-7
-----> Starting Kitchen (v1.16.0)
-----> Converging <default-centos-7>...
Preparing files for transfer
Preparing salt-minion
Preparing pillars into /srv/pillar
Preparing formula: collectd from /Users/arif/gitRepos/salt-formula/salt-formula-collectd
Preparing formula: repos from srv/salt
Preparing state_top
Preparing scripts into /etc/salt/scripts
You asked for latest and you have 2016.11.5 installed, sweet!
-----> Trying to install ruby(-dev) using assets.sh from kitchen-salt
downloading https://raw.githubusercontent.com/saltstack/kitchen-salt/master/assets/install.sh
to file /tmp/install.sh
trying wget...
Installing the ruby things
installing with yum...
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: mirror.vorboss.net
* epel: mirror.bytemark.co.uk
* extras: mirror.vorboss.net
* updates: mirror.econdc.com
Package ruby-2.0.0.648-29.el7.x86_64 already installed and latest version
Package ruby-devel-2.0.0.648-29.el7.x86_64 already installed and latest version
Nothing to do
ln: failed to create symbolic link '/opt/chef/embedded/bin/gem': File exists
ln: failed to create symbolic link '/opt/chef/embedded/bin/ruby': File exists
sh: -c: line 190: syntax error near unexpected token `fi'
sh: -c: line 190: ` fi;'
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>> Converge failed on instance <default-centos-7>. Please see .kitchen/logs/default-centos-7.log for more details
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration
I, [2014-05-21T19:31:06.798440 #16015] INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-05-21T19:31:07.036264 #16015] INFO -- Kitchen: -----> Creating <default-ubuntu-1204>...
I, [2014-05-21T19:32:41.329813 #16576] INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-05-21T19:32:41.578659 #16576] INFO -- Kitchen: -----> Creating <default-ubuntu-1404>...
I, [2014-05-21T19:37:36.812231 #4255] INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-05-21T19:37:37.050051 #4255] INFO -- Kitchen: -----> Creating <default-ubuntu-server-1404>...
E, [2014-05-21T19:37:40.861568 #4255] ERROR -- Kitchen: ------Exception-------
E, [2014-05-21T19:37:40.861688 #4255] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2014-05-21T19:37:40.861747 #4255] ERROR -- Kitchen: Message: Failed to complete #create action: [Expected process to exit with [0], but received '1'
---- Begin output of vagrant up --no-provision --provider=virtualbox ----
STDOUT: Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'opscode-ubuntu-server-14.04' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Adding box 'opscode-ubuntu-server-14.04' (v0) for provider: virtualbox
default: Downloading: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-server-14.04_chef-provisionerless.box
�[K default: Progress: 0% (Rate: 0/s, Estimated time remaining: --:--:--)
�[K
STDERR: An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.
The requested URL returned error: 404 Not Found
---- End output of vagrant up --no-provision --provider=virtualbox ----
Ran vagrant up --no-provision --provider=virtualbox returned 1]
E, [2014-05-21T19:37:40.861827 #4255] ERROR -- Kitchen: ---Nested Exception---
E, [2014-05-21T19:37:40.861883 #4255] ERROR -- Kitchen: Class: Kitchen::ShellOut::ShellCommandFailed
E, [2014-05-21T19:37:40.861939 #4255] ERROR -- Kitchen: Message: Expected process to exit with [0], but received '1'
---- Begin output of vagrant up --no-provision --provider=virtualbox ----
STDOUT: Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'opscode-ubuntu-server-14.04' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Adding box 'opscode-ubuntu-server-14.04' (v0) for provider: virtualbox
default: Downloading: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-server-14.04_chef-provisionerless.box
�[K default: Progress: 0% (Rate: 0/s, Estimated time remaining: --:--:--)
�[K
STDERR: An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.
The requested URL returned error: 404 Not Found
---- End output of vagrant up --no-provision --provider=virtualbox ----
Ran vagrant up --no-provision --provider=virtualbox returned 1
E, [2014-05-21T19:37:40.861998 #4255] ERROR -- Kitchen: ------Backtrace-------
E, [2014-05-21T19:37:40.862053 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/shell_out.rb:70:in `rescue in run_command'
E, [2014-05-21T19:37:40.862112 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/shell_out.rb:59:in `run_command'
E, [2014-05-21T19:37:40.862167 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/driver/base.rb:158:in `run_command'
E, [2014-05-21T19:37:40.862226 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:123:in `run'
E, [2014-05-21T19:37:40.862282 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:68:in `create'
E, [2014-05-21T19:37:40.862338 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `public_send'
E, [2014-05-21T19:37:40.862428 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `block in perform_action'
E, [2014-05-21T19:37:40.862484 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:305:in `call'
E, [2014-05-21T19:37:40.862540 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:305:in `block in synchronize_or_call'
E, [2014-05-21T19:37:40.862596 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:303:in `synchronize'
E, [2014-05-21T19:37:40.862653 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:303:in `synchronize_or_call'
E, [2014-05-21T19:37:40.862708 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:283:in `block in action'
E, [2014-05-21T19:37:40.862765 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
E, [2014-05-21T19:37:40.862819 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:282:in `action'
E, [2014-05-21T19:37:40.862874 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `perform_action'
E, [2014-05-21T19:37:40.862929 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:252:in `create_action'
E, [2014-05-21T19:37:40.862984 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:246:in `block in transition_to'
E, [2014-05-21T19:37:40.863042 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `each'
E, [2014-05-21T19:37:40.863097 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `transition_to'
E, [2014-05-21T19:37:40.863152 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:119:in `converge'
E, [2014-05-21T19:37:40.863206 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `public_send'
E, [2014-05-21T19:37:40.863261 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `block (2 levels) in run_action'
E, [2014-05-21T19:37:40.863314 #4255] ERROR -- Kitchen: ----------------------
I, [2014-05-21T19:38:30.149371 #4571] INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-05-21T19:38:30.386195 #4571] INFO -- Kitchen: -----> Creating <default-ubuntu-1404>...
I, [2014-05-21T20:08:50.163444 #4571] INFO -- Kitchen: -----> Converging <default-ubuntu-1404>...
E, [2014-05-21T20:08:50.182573 #4571] ERROR -- Kitchen: ------Exception-------
E, [2014-05-21T20:08:50.182627 #4571] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2014-05-21T20:08:50.182663 #4571] ERROR -- Kitchen: Message: Failed to complete #converge action: [no implicit conversion of nil into String]
E, [2014-05-21T20:08:50.182960 #4571] ERROR -- Kitchen: ---Nested Exception---
E, [2014-05-21T20:08:50.182992 #4571] ERROR -- Kitchen: Class: TypeError
E, [2014-05-21T20:08:50.183023 #4571] ERROR -- Kitchen: Message: no implicit conversion of nil into String
E, [2014-05-21T20:08:50.183054 #4571] ERROR -- Kitchen: ------Backtrace-------
E, [2014-05-21T20:08:50.183084 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:333:in `join'
E, [2014-05-21T20:08:50.183157 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:333:in `prepare_formula'
E, [2014-05-21T20:08:50.183249 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:151:in `create_sandbox'
E, [2014-05-21T20:08:50.183283 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/driver/ssh_base.rb:40:in `converge'
E, [2014-05-21T20:08:50.183314 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:75:in `converge'
E, [2014-05-21T20:08:50.183348 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `public_send'
E, [2014-05-21T20:08:50.183378 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `block in perform_action'
E, [2014-05-21T20:08:50.183410 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:308:in `call'
E, [2014-05-21T20:08:50.183440 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:308:in `synchronize_or_call'
E, [2014-05-21T20:08:50.183494 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:283:in `block in action'
E, [2014-05-21T20:08:50.183739 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
E, [2014-05-21T20:08:50.183808 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:282:in `action'
E, [2014-05-21T20:08:50.183884 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `perform_action'
E, [2014-05-21T20:08:50.183915 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:256:in `converge_action'
E, [2014-05-21T20:08:50.183945 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:246:in `block in transition_to'
E, [2014-05-21T20:08:50.183975 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `each'
E, [2014-05-21T20:08:50.184005 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `transition_to'
E, [2014-05-21T20:08:50.184034 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:119:in `converge'
E, [2014-05-21T20:08:50.184073 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `public_send'
E, [2014-05-21T20:08:50.184103 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `block (2 levels) in run_action'
E, [2014-05-21T20:08:50.184133 #4571] ERROR -- Kitchen: ----------------------
I, [2014-05-21T20:11:47.409676 #11260] INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-05-21T20:11:47.651307 #11260] INFO -- Kitchen: -----> Converging <default-ubuntu-1404>...
E, [2014-05-21T20:11:47.656079 #11260] ERROR -- Kitchen: ------Exception-------
E, [2014-05-21T20:11:47.656185 #11260] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2014-05-21T20:11:47.656255 #11260] ERROR -- Kitchen: Message: Failed to complete #converge action: [no implicit conversion of nil into String]
E, [2014-05-21T20:11:47.656361 #11260] ERROR -- Kitchen: ---Nested Exception---
E, [2014-05-21T20:11:47.656428 #11260] ERROR -- Kitchen: Class: TypeError
E, [2014-05-21T20:11:47.656491 #11260] ERROR -- Kitchen: Message: no implicit conversion of nil into String
E, [2014-05-21T20:11:47.656553 #11260] ERROR -- Kitchen: ------Backtrace-------
E, [2014-05-21T20:11:47.656614 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:333:in `join'
E, [2014-05-21T20:11:47.656677 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:333:in `prepare_formula'
E, [2014-05-21T20:11:47.656740 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:151:in `create_sandbox'
E, [2014-05-21T20:11:47.656803 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/driver/ssh_base.rb:40:in `converge'
E, [2014-05-21T20:11:47.656865 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:75:in `converge'
E, [2014-05-21T20:11:47.656927 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `public_send'
E, [2014-05-21T20:11:47.656990 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `block in perform_action'
E, [2014-05-21T20:11:47.657052 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:308:in `call'
E, [2014-05-21T20:11:47.657115 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:308:in `synchronize_or_call'
E, [2014-05-21T20:11:47.657177 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:283:in `block in action'
E, [2014-05-21T20:11:47.657239 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
E, [2014-05-21T20:11:47.657301 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:282:in `action'
E, [2014-05-21T20:11:47.657364 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `perform_action'
E, [2014-05-21T20:11:47.657426 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:256:in `converge_action'
E, [2014-05-21T20:11:47.657489 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:246:in `block in transition_to'
E, [2014-05-21T20:11:47.657551 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `each'
E, [2014-05-21T20:11:47.657613 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `transition_to'
E, [2014-05-21T20:11:47.657674 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:119:in `converge'
E, [2014-05-21T20:11:47.657736 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `public_send'
E, [2014-05-21T20:11:47.657798 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `block (2 levels) in run_action'
E, [2014-05-21T20:11:47.657861 #11260] ERROR -- Kitchen: ----------------------
I am having a bit of trouble figuring out where the issue is on this one. It looks as if SPM tries to download the path but can't due to a salt-master directory of /var/cache/salt/master not being existent? How does salt_solo replicate the salt master?
I, [2017-07-19T17:38:15.093337 #70753] INFO -- default-ubuntu-1404: Install External Dependencies
I, [2017-07-19T17:38:15.572070 #70753] INFO -- default-ubuntu-1404: [ERROR ] An un-handled exception was caught by salt's global exception handler:
I, [2017-07-19T17:38:15.572313 #70753] INFO -- default-ubuntu-1404: SaltClientError: Could not access /var/cache/salt/master. Path does not exist.
I, [2017-07-19T17:38:15.572896 #70753] INFO -- default-ubuntu-1404: Traceback (most recent call last):
I, [2017-07-19T17:38:15.573081 #70753] INFO -- default-ubuntu-1404: File "/usr/bin/spm", line 12, in
I, [2017-07-19T17:38:15.573277 #70753] INFO -- default-ubuntu-1404: salt_spm()
I, [2017-07-19T17:38:15.573435 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/scripts.py", line 487, in salt_spm
I, [2017-07-19T17:38:15.574014 #70753] INFO -- default-ubuntu-1404: spm.run()
I, [2017-07-19T17:38:15.574213 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/cli/spm.py", line 34, in run
I, [2017-07-19T17:38:15.575196 #70753] INFO -- default-ubuntu-1404: client.run(self.args)
I, [2017-07-19T17:38:15.575852 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/spm/init.py", line 113, in run
I, [2017-07-19T17:38:15.576032 #70753] INFO -- default-ubuntu-1404: self._install(args)
I, [2017-07-19T17:38:15.576172 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/spm/init.py", line 236, in _install
I, [2017-07-19T17:38:15.576310 #70753] INFO -- default-ubuntu-1404: self.client = salt.client.get_local_client(self.opts['conf_file'])
I, [2017-07-19T17:38:15.576459 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 104, in get_local_client
I, [2017-07-19T17:38:15.576637 #70753] INFO -- default-ubuntu-1404: auto_reconnect=auto_reconnect)
I, [2017-07-19T17:38:15.576788 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 160, in init
I, [2017-07-19T17:38:15.577119 #70753] INFO -- default-ubuntu-1404: self.key = self.__read_master_key()
I, [2017-07-19T17:38:15.577311 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 193, in __read_master_key
I, [2017-07-19T17:38:15.577346 #70753] INFO -- default-ubuntu-1404: self.skip_perm_errors)
I, [2017-07-19T17:38:15.577367 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/utils/verify.py", line 399, in check_path_traversal
I, [2017-07-19T17:38:15.577388 #70753] INFO -- default-ubuntu-1404: raise SaltClientError(msg)
I, [2017-07-19T17:38:15.577407 #70753] INFO -- default-ubuntu-1404: SaltClientError: Could not access /var/cache/salt/master. Path does not exist.
I, [2017-07-19T17:38:15.577563 #70753] INFO -- default-ubuntu-1404: Traceback (most recent call last):
I, [2017-07-19T17:38:15.577706 #70753] INFO -- default-ubuntu-1404: File "/usr/bin/spm", line 12, in
I, [2017-07-19T17:38:15.577831 #70753] INFO -- default-ubuntu-1404: salt_spm()
I, [2017-07-19T17:38:15.578054 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/scripts.py", line 487, in salt_spm
I, [2017-07-19T17:38:15.578223 #70753] INFO -- default-ubuntu-1404: spm.run()
I, [2017-07-19T17:38:15.578327 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/cli/spm.py", line 34, in run
I, [2017-07-19T17:38:15.578352 #70753] INFO -- default-ubuntu-1404: client.run(self.args)
I, [2017-07-19T17:38:15.578371 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/spm/init.py", line 113, in run
I, [2017-07-19T17:38:15.578500 #70753] INFO -- default-ubuntu-1404: self._install(args)
I, [2017-07-19T17:38:15.578524 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/spm/init.py", line 236, in _install
I, [2017-07-19T17:38:15.578638 #70753] INFO -- default-ubuntu-1404: self.client = salt.client.get_local_client(self.opts['conf_file'])
I, [2017-07-19T17:38:15.578724 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 104, in get_local_client
I, [2017-07-19T17:38:15.578749 #70753] INFO -- default-ubuntu-1404: auto_reconnect=auto_reconnect)
I, [2017-07-19T17:38:15.578768 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 160, in init
I, [2017-07-19T17:38:15.578900 #70753] INFO -- default-ubuntu-1404: self.key = self.__read_master_key()
I, [2017-07-19T17:38:15.578924 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 193, in __read_master_key
I, [2017-07-19T17:38:15.579514 #70753] INFO -- default-ubuntu-1404: self.skip_perm_errors)
I, [2017-07-19T17:38:15.579556 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/utils/verify.py", line 399, in check_path_traversal
I, [2017-07-19T17:38:15.579579 #70753] INFO -- default-ubuntu-1404: raise SaltClientError(msg)
I, [2017-07-19T17:38:15.580644 #70753] INFO -- default-ubuntu-1404: salt.exceptions.SaltClientError: Could not access /var/cache/salt/master. Path does not exist.
tried using this but the state doies not seem to be sent to the machine.
$ kitchen converge
kitchen-----> Starting Kitchen (v1.2.1)
-----> Converging <default-ubuntu-1310>...
Preparing files for transfer
Preparing salt-minion
Preparing state_top
Preparing pillars into /srv/pillar
Preparing formula
You asked for latest and you have 2014.1.0 installed, sweet!
Transfering files to <default-ubuntu-1310>
[INFO ] Using cached minion ID from /etc/salt/minion_id: default-ubuntu-1310.vagrantup.com
[INFO ] Loading fresh modules for state activity
[INFO ] Creating module dir '/var/cache/salt/minion/extmods/modules'
[INFO ] Syncing modules for environment 'base'
[INFO ] Loading cache from salt://_modules, for base)
[INFO ] Caching directory '_modules/' for environment 'base'
[INFO ] Creating module dir '/var/cache/salt/minion/extmods/states'
[INFO ] Syncing states for environment 'base'
[INFO ] Loading cache from salt://_states, for base)
[INFO ] Caching directory '_states/' for environment 'base'
[INFO ] Creating module dir '/var/cache/salt/minion/extmods/grains'
[INFO ] Syncing grains for environment 'base'
[INFO ] Loading cache from salt://_grains, for base)
[INFO ] Caching directory '_grains/' for environment 'base'
[INFO ] Creating module dir '/var/cache/salt/minion/extmods/renderers'
[INFO ] Syncing renderers for environment 'base'
[INFO ] Loading cache from salt://_renderers, for base)
[INFO ] Caching directory '_renderers/' for environment 'base'
[INFO ] Creating module dir '/var/cache/salt/minion/extmods/returners'
[INFO ] Syncing returners for environment 'base'
[INFO ] Loading cache from salt://_returners, for base)
[INFO ] Caching directory '_returners/' for environment 'base'
[INFO ] Creating module dir '/var/cache/salt/minion/extmods/outputters'
[INFO ] Syncing outputters for environment 'base'
[INFO ] Loading cache from salt://_outputters, for base)
[INFO ] Caching directory '_outputters/' for environment 'base'
[INFO ] Loading fresh modules for state activity
local:
Data failed to compile:
----------
No matching sls found for 'iptables/ssh' in env 'base'
salt-call exit code: 0
salt-call output grep exit code 1
Finished converging <default-ubuntu-1310> (0m18.06s).
-----> Kitchen is finished. (0m18.25s)
driver:
name: vagrant
provisioner:
name: salt_solo
formula: iptables
state_top:
base:
'*':
- iptables/ssh
platforms:
- name: ubuntu-13.10
suites:
- name: default
I add set :backend, :exec
in the spec_helper.rb
but I got a new error
default: Guest Additions Version: 5.0.16
default: VirtualBox Version: 4.3
==> default: Setting hostname...
==> default: Machine not provisioned because `--no-provision` is specified.
[SSH] Established
Vagrant instance <default-ubuntu-1204> created.
Finished creating <default-ubuntu-1204> (0m43.64s).
-----> Converging <default-ubuntu-1204>...
Preparing files for transfer
Preparing salt-minion
Preparing state_top
Preparing pillars into /srv/pillar
Preparing formula: beaver from /home/lelixone/diego/kitchen-salt-tutorial/beaver-formula
Preparing formula: Gemfile.lock.back from /home/lelixone/diego/kitchen-salt-tutorial/beaver-formula/
Preparing formula: top.sls from /home/lelixone/diego/kitchen-salt-tutorial/beaver-formula/
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: Failed to complete #converge action: [File exists @ dir_s_mkdir - /tmp/default-ubuntu-1204-sandbox-20160426-7226-dsoary/srv/salt/top.sls]
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration
zlib(finalizer): the stream was freed prematurely.
Instead of duplicating it, please allow to specify a top.sls file in .kitchen.yml.
Hello,
in kitchen/provisioner/salt_solo.rb, we can see
salt_apt_repo: 'http://apt.mccartney.ie',
salt_apt_repo_key: 'http://apt.mccartney.ie/KEY',
which does not exist.
I think we can use http://repo.saltstack.com/
When using kitchen-salt on Debian with apt installation method, I always got error messages about missing packages.
I think it could be solved adding a step to run apt-get update
before doing the salt-minion installation.
Get:1 http://security.debian.org jessie/updates InRelease [63.1 kB]
Ign http://repo.saltstack.com jessie InRelease
Ign http://repo.saltstack.com jessie Release.gpg
Get:2 http://security.debian.org jessie/updates/main Sources [190 kB]
Ign http://httpredir.debian.org jessie InRelease
Get:3 http://httpredir.debian.org jessie Release.gpg [2,373 B]
Get:4 http://security.debian.org jessie/updates/main amd64 Packages [352 kB]
Ign http://repo.saltstack.com jessie Release
Get:5 http://httpredir.debian.org jessie Release [148 kB]
Err http://repo.saltstack.com jessie/main amd64 Packages
Err http://repo.saltstack.com jessie/main amd64 Packages
Get:6 http://httpredir.debian.org jessie/main Sources [7,056 kB]
Err http://repo.saltstack.com jessie/main amd64 Packages
Err http://repo.saltstack.com jessie/main amd64 Packages
Err http://repo.saltstack.com jessie/main amd64 Packages
404 Not Found [IP: 198.199.77.106 80]
Get:7 http://httpredir.debian.org jessie/main amd64 Packages [6,776 kB]
Fetched 14.6 MB in 6s (2,145 kB/s)
W: Failed to fetch http://repo.saltstack.com/apt/debian/8/amd64/salt-latest/dists/jessie/main/binary-amd64/Packages 404 Not Found [IP: 198.199.77.106 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.
Relevant part of my .kitchen.yml
provisioner:
name: salt_solo
salt_install: apt
salt_version: latest
salt_apt_repo: http://repo.saltstack.com/apt/debian/8/amd64
salt_apt_repo_key: http://repo.saltstack.com/apt/debian/8/amd64/latest/SALTSTACK-GPG-KEY.pub
The wiki used to contain a reference to all configuration options that kitchen-salt provides.
I can't find it anymore.
Hello can we mock pillar data from the kitchen yaml file?
Simon, I'm hoping to help my organization and others use kitchen-salt with windows and submitted a PR recently here. Should it go here (kitchen-salt/kitchen-salt) instead? I assume you created that for sharing the management of kitchen-salt. Is that right? It does seem like that fork is behind your repo. Thanks again for sharing this work. It's going to help our immensely.
It would be great to have a way to specify what the root is in the git repository
In my states https://github.com/gtmanfred/blog-sls i have states and pillars, i want to overwrite the pillars, but it would be great to say that /salt/ should be dropped in /tmp/kitchen/srv/salt, instead of having to put the .kitchen.yml in the salt/ directory instead.
Thanks
Daniel
You can define pillars-from-files, which is quite convenient. Ability to do this for states could be great.
Anyway we can avoid the omnibus installer? We haven't gotten to actually writing tests yet, but use kitchen for the development. Kind of annoying that we have to wait for chef when we don't use it. Plus it confuses the issue for newbros when they see chef getting installed.
I'm trying to do basic serverspec testing on a windows vagrant VM, but the busser appeard to be breaking.. Here are the logs and diagnose output. It looks like the & prefix is being encoded, but I'm not sure. Is this a kitchen-salt issue, or test-kitchen in general?
I can tell you the path is correct after manually inspecting the box.Although Pester is a workaround, but we want to use the same tool across platforms.
Spotted by jcockhren in #salt:
jcockhren: the formula name is used to build the directory name on the target, even when it’s a state collection: https://github.com/simonmcc/kitchen-salt/blob/master/lib/kitchen/provisioner/salt_solo.rb#L332
The recently added vendor_path option fails to check if the supplied directory exists or is valid - and causes preapre_formula to attempt to copy config[:kitchen_root] as a set of formula, causing a horrible mess:
simonm@MacBook:beaver-formula (test-kitchen) AWS=jdr $ kitchen converge default-ubuntu-1204
-----> Starting Kitchen (v1.4.1)
-----> Converging <default-ubuntu-1204>...
Preparing files for transfer
Preparing salt-minion
Preparing state_top
Preparing pillars into /srv/pillar
Preparing formula: beaver from /Users/simonm/src/test-kitchen-salt/beaver-formula
Preparing formula: beaver from /Users/simonm/src/test-kitchen-salt/beaver-formula/
Preparing formula: Gemfile from /Users/simonm/src/test-kitchen-salt/beaver-formula/
Preparing formula: Gemfile.lock from /Users/simonm/src/test-kitchen-salt/beaver-formula/
Preparing formula: LICENSE from /Users/simonm/src/test-kitchen-salt/beaver-formula/
Preparing formula: pillar.all-options from /Users/simonm/src/test-kitchen-salt/beaver-formula/
Preparing formula: pillar.example from /Users/simonm/src/test-kitchen-salt/beaver-formula/
Preparing formula: README.md from /Users/simonm/src/test-kitchen-salt/beaver-formula/
Preparing formula: test from /Users/simonm/src/test-kitchen-salt/beaver-formula/
Preparing formula: top.sls from /Users/simonm/src/test-kitchen-salt/beaver-formula/
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: Failed to complete #converge action: [File exists @ dir_s_mkdir - /var/folders/pp/dvptk6_d46sb6yzc_mbd3jk40000gn/T/default-ubuntu-1204-sandbox-20150803-34076-q1qrup/srv/salt/top.sls]
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration
simonm@MacBook:beaver-formula (test-kitchen) AWS=jdr $
Hi there! Can you please release a new version of kitchen-salt?
Thank you!
Is there a way to allow the salt provisioner to use custom Salt Stack formula locations? I am attempting to use a custom formula (sudoers) in my top.sls, but when I pass it through Test Kitchen I receive the following error:
local:
Data failed to compile:
----------
No matching sls found for 'sudoers' in env 'base'
salt-call exit code: 0
Data failed to compile:
No matching sls found for 'sudoers' in env 'base'
salt-call output grep exit code 0
I imagine it just an issue of correctly pointing the .kitchen.yml
file to my formulas directory? I have formulas in /srv/salt/formulas
.
If somebody could point me in the right direction that would be great.
As a workaround I have been able to copy the formula in to the /srv/salt/
directory and reference it there. I am new to salt but reading through docs it seems like it is best to separate formulas in to their own directory.
salt-bootstrap should be installed with the latest version unless specified otherwise.
We still provision with the develop branch sometimes due to exceptions within Salt.
Arch Linux support for assets/install.sh
is missing. As chef
and omnitruck
scripts do not support chef
, using this script could even be considered a default option for ArchLinux.
Testinfra is a tool for writing unit tests for infrastructure, similar to Serverspec but implemented in Python. It supports a few standard privatives like files, services, packages and users, as well as featuring integration with Salt and Puppet.
https://github.com/philpep/testinfra
http://testinfra.readthedocs.org/en/latest/
Hi all,
I am trying to use encrypted pillars with kitchen-salt and I need a way to copy my keys into /tmp/kitchen/etc/salt before salt-call . Seemed that the init_environment was the way to go but it doesn't seem to work? Even test commands don't seem to run. For example something like:
provisioner:
name: salt_solo
is_file_root: true
require_chef: false
init_environment: |
touch /tmp/init_environment_test
will not produce the file in /tmp
Looking at the code it looks like the definition of the function init_environment exists but it doesn't get called anywhere?
Thanks in advance,
Kostas
I'm using the following .kitchen.yml
:
---
driver:
name: docker
use_sudo: false
privileged: true
platforms:
- name: ubuntu-16.10
provisioner:
name: salt_solo
salt_install: apt
salt_bootstrap_url: https://bootstrap.saltstack.com
formula: honey
state_top:
base:
'*':
- honey
pillars:
top.sls:
base:
'*':
- honey
suites:
- name: default
provisioner:
pillars-from-files:
honey.sls: pillar.example
verifier:
name: shell
remote_exec: false
command: testinfra -vvv --connection=docker --hosts=root@$KITCHEN_CONTAINER_ID --junit-xml junit-$KITCHEN_INSTANCE.xml test/integration/$KITCHEN_SUITE
However every time I run bundle exec kitchen test
it will re-run the salt bootstrap. It takes sooo much time.
Is it possible to cache that operation?
Thanks
I've opened an issue as I would like to discuss if it's necessary to have chef
boostrap script by default? To me this caused a bit of confusion and I've done some PRs when I realised that only ruby and gems is required.
I've noticed this was also discussed on separate issues (e.g. #71 ), but as I did not want to start asking questions / giving input on unrelated issue, I thought a separate one might be worth.
My suggestion would be to not use chef
bootstrap script by default and switch to at least using assets/install.sh
. I've seen that people already mentioned on #71 that they would like to drop the chef
requirements and I would strongly agree with this.
Main reason why I am suggesting it is:
My suggestion:
assets/install.sh
script supports all the platforms we aim to support. I did a few PRs and can do a few more if we have a list of platforms we want to support before the switch.A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.