Skipping chef server

Hello, I have a scenario where I want to use chef only for applying changes on the nodes BUT not using chef server at all. Have few questions here -

  1. I have read all over internet and it says that basic 3 components needed for chef are Workstation - Server - Node. But no where I could find any article that says if the workstation can be used to apply changes on the node directly i.e. NO chef server at all.

Is it possible?
If yes, can you please share the link to configure workstation/node

  1. We have installed Workstation on one Windows machine and Node on another Windows machine (all instructions followed as per the documentation) and I believe we have applied everything available on internet to connect from workstation to node but big time failure :frowning_face:

Any pointers here. Not using ssh.

  1. If answer to #1 is yes, then do I need to deploy agent on the Node??
  2. If answer to #1 is yes, then do I need to deploy Chef DK on Workstation to test the connectivity alone [from Workstation to Node]??

You can use "chef-client --local" to keep Chef cookbooks, roles, environments, and even node configurations in a git repository, check it out, and apply it locally with no Chef Server in the mix anywhere. It works best with chefdk, which contains Berkshelf to assemble the local copies of the cookbooks. chefdk includes and is compatible with the Chef client in the chef package.

See my tools at https://github.com/nkadel/nkadel-chef-local-wrapper for an example.

Hi Nkadel
Thanks for response.
But we want to deploy cookbooks and recipes from chef-workstation to chef-node.
Both are running on separate VM machines.

Thanks
Deepak

@deepaksingla have you looked at Chef Workstation? This was initially released earlier this year and is probably the best fit for the scenario you have described.

-Nathen

1 Like

Hi Nathenharvey

I am working on window environment 2012r2. I want to access chef-client node without ssh key.
Is there any commend to access chef-client node using winrm command?

Thanks
Deepak

If you're using Chef Workstation, then the chef-run command does support WinRM (use winrm://username@ instead of ssh://username@ (doc: https://www.chef.sh/docs/chef-workstation/cli-reference/)

If you're using the older ChefDK, you could achieve this using the knife winrm command from the knife-windows plugin (doc: https://docs.chef.io/plugin_knife_windows.html)

Thanks @stuartpreston

By using this command chef-run winrm://username@target-host testcookbook_1\recipes\default.rb --password Password
able to connect chef-workstation with chef-node.

Now I am trying to install sql server 2014 express 64-bit from window Server 2012 r2 chef-workstation to chef-node.
It didn't get proper recipes to install it.

I am thinking, there should be below scenario:

  1. Need to download SQL Server 2014 on chef-workstation.
  2. Copy from chef-workstation to chef-node using recipes.
  3. Install it on chef-node.

I didnot get any recipe to copy from chef-workstation to chef-node and to install sql-server 2014.
Can anyone help me to figure out all these issues.

Hi @stuartpreston @Larryc

I want to install the same recipe on multiple window 2012 r2 chef-nodes at the same time.
Name of target machines are chef-node and chef-client.
Both machines have the same username administrator and password ABC123
I don't know how to define username and password for multiple machines at the same time?

When I am using below command, It is only connecting to chef-node, but not to chef-client.

c:\test-chef-deploy>chef-run winrm://administrator@chef-node,chef-client TestCookBook::default --password ABC123
 [?] Generated local policyfile
+ [?] Converging targets:
|-- [?] [chef-node] Successfully converged target!
|__ [?] [chef-client] Connection failed: Net::SSH::ConnectionTimeout

One or more actions has failed.

A complete list of failures and possible resolutions can
be found in the file below:

  C:/Users/Administrator/.chef-workstation/logs/errors.txt

Is chef-client windows or linux? It is trying to converge over ssh.

Hi @Larryc

This is window 2012R2 based VM.

@deepaksingla Its treating the second server as SSH

|-- [?] [chef-node] Successfully converged target!
|__ [?] [chef-client] Connection failed: Net::SSH::ConnectionTimeout

try this

chef-run winrm://administrator@chef-node,winrm://administrator@chef-client TestCookBook::default --password ABC123

Thanks @Larryc
It is working.