I am going through the "Learn to install and manage your own Chef server / Manage a node on your Chef server" tutorial over at learn.chef.io but have run into an issue that Google apparently doesn't know about.
I'm trying to run everything locally, so have the following set up:
- Chef Workstation - my Fedora 20 laptop
- Chef Server - a VM running CentOS 7 minimal
- Chef Node - another VM running CentOS 7 minimal
I've set up the Workstation and Server, users and organisations, extracted the Starter Kit, and all appears to be working just fine.
When I try to bootstrap my Chef Node, it fails like so:
$ knife bootstrap centos-slave1.example.com --ssh-user <me> --sudo --identity-file ~/.ssh/id_dsa --node-name centos-slave1 --run-list 'recipe[hello_chef_server]'
Doing old-style registration with the validation key at /home/<me>/chef-repo/.chef/merin-validator.pem...
Delete your validation key in order to use your user credentials instead
Connecting to centos-slave1.example.com
ERROR: RegexpError: end pattern with unmatched parenthesis: /^(for$/i
If I remove that validation key, it still fails with the same error:
Creating new client for centos-slave1
Creating new node for centos-slave1
Connecting to centos-slave1.merin
ERROR: RegexpError: end pattern with unmatched parenthesis: /^(for$/i
I've made no special modifications to anything outside of the tutorial steps. All ports are listening, firewalls open between all components, ssh keys working - basically connectivity in every way seems fine.
I've also tried that bootstrap command using my password, and have even tried removing flags one at a time (right down to just 'knife bootstrap ') - always resulting in the same error.
Any ideas, or even just a push in the right direction would be great. Happy to work things out for myself but I've been stuck on this for a while now (even started over multiple times).
Thanks in advance, Matt
EDIT: Adding knife.rb (with some sensitive info replaced)
$ cat .chef/knife.rb
# See https://docs.getchef.com/config_rb_knife.html for more information on knife configuration options
current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
node_name "<me>"
client_key "#{current_dir}/<me>.pem"
validation_client_name "merin-validator"
validation_key "#{current_dir}/merin-validator.pem"
chef_server_url "https://chef-master.example.com/organizations/merin"
cookbook_path ["#{current_dir}/../cookbooks"]
knife.rblook like? - StephenKing~/.ssh/configthat ruby's SSH client might not be able to understand? - StephenKing