0
votes

I made some changes to a role on my local chef-repo and wanted to use knife upload roles to upload my changes to the chef-server but I get this error message

ERROR: Errno::ENOENT: No such file or directory - /home/danny/git/chef-repo/cookbooks/~/git/chef-repo

all knife upload commands get this error

I am able to use bundle exec knife cookbook upload -a successfully

any idea what going wrong

MORE INFO The Command I tried exactly was knife upload /roles <---at the top of the my local chef-repo & knife upload roles <--from the roles directory

my knife.rb

log_level                :info
log_location             STDOUT
node_name                'admin'
client_key               '~/.chef/admin.pem'
validation_client_name   'chef-validator'
validation_key           '~/.chef/chef-validator.pem'
chef_server_url          'https://chef.example.org'
chef_server_ip           '10.32.2.53'
syntax_check_cache_path  '~/.chef/syntax_check_cache'
cookbook_path        [ '~/git/chef-repo/cookbooks', '~/git/chef-repo/site-cookbooks' ]

knife[:use_sudo] = true
knife[:ssh_user] = "emn"
knife[:use_sudo_password] = true
knife[:identity_file] = '~/.chef/emn.pem'
1
What are the contents of your knife.rb? Where are you running this from? What exact command did you run? - sethvargo
I add a more info part to answer your questions - kungfudan

1 Answers

0
votes

Just run knife upload roles from the root of your Chef repo. No slashes, no sub-directories.

Also, your roles much be JSON if you want to use knife upload. Otherwise you'll need to use knife role from file.