Repository is archived
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
A Connector API for talking to nodes managed by Chef
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 0.16.0
~> 0.16.1
>= 0
~> 4.0
~> 1.1.0
 Project Readme

Ridley Connectors

Gem Version Build Status Dependency Status

An extension on Ridley adding support for connecting and communicating with nodes in Chef.

Installation

Add ridley-connectors to your Gemfile:

gem 'ridley-connectors'

And run the bundle command to install. Alternatively, you can install the gem directly:

$ gem install ridley-connectors

Usage

You can use ridley-connectors just like using Ridley.

require 'ridley'

Creating a new Ridley client

ridley = Ridley.new(
  server_url: "https://api.opscode.com/organizations/ridley",
  client_name: "me",
  client_key: "/Users/me/.chef/me.pem"
)

ridley-connectors exposes all the usual features of Ridley, but adds some sugar for interacting with nodes.

ridley.node.bootstrap("hostname.to.bootstrap.com") # Bootstraps a hostname or IP
ridley.node.put_secret("hostname") # Puts your configured encrypted data bag secret onto a hostname or IP
ridley.node.chef_run("hostname") # Runs Chef on a hostname or IP

Node Resource

Bootstrapping Unix nodes

ridley = Ridley.new(
  server_url: "https://api.opscode.com",
  organization: "vialstudios",
  validator_client: "vialstudios-validator",
  validator_path: "/Users/reset/.chef/vialstudios-validator.pem",
  ssh: {
    user: "vagrant",
    password: "vagrant"
  }
)

ridley.node.bootstrap("33.33.33.10", "33.33.33.11")

Bootstrapping Windows Nodes

Windows Nodes are bootstrapped using a combination of WinRM, Batch, and PowerShell. You will probably need to tweak some settings on your Windows servers to ensure the commands are successful.

WinRM Settings

  1. Enable WinRM: winrm quickconfig and say Yes.
  2. Set some WinRM settings to ensure that you don't get 401 Unauthorized responses and 500 Responses because of timeouts.
winrm set winrm/config/service/auth @{Basic="true"}
winrm set winrm/config/service @{AllowUnencrypted="true"}
winrm set winrm/config/service @{EnumerationTimeoutms="600000"}
winrm set winrm/config @{MaxTimeoutms="600000"}
winrm set winrm/config/client @{TrustedHosts="*"}

PowerShell Settings

  1. You should also configure your PowerShell profile, so that PowerShell commands have a more lenient timeout period.
mkdir C:\Users\my_user\Documents\WindowsPowerShell
echo "$PSSessionOption = New-PSSessionOption -OpenTimeout 0 -CancelTimeout 0 -IdleTimeout 0 -OperationTimeout 0" > C:\Users\my_user\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Verify the PowerShell settings by opening up the PowerShell Console and entering $PSSessionOption and ensure those values are set, and that there are no errors output.

The following links offer some information about configuring a machine's PowerShell settings:

You may also want to tweak your Windows boxes a bit more ex: turning UAC off, turning off the Windows Firewall.

Authors and Contributors

Thank you to all of our Contributors, testers, and users.