sudo:chef-solo:命令未找到

时间:2014-07-14 08:05:44

标签: gem chef-solo knife-solo

我有宝石刀独奏的问题。首先,我想解释一下我的错误和调查。

首先,在knife solo cook之后。我的运行时出错了。

RuntimeError: Couldn't find Chef >=0.10.4 on myhost. Please run `knife solo prepare root@myhost` to ensure Chef is installed and up to date.

然后我在叔叔谷歌搜索:-D 我发现了这种方式link

这是我的错误来自`刀独奏厨师根@myhost -VV

$ knife solo cook root@ipaddress  -c solo.rb -i /Users/me/Documents/WORK/project/certificate.pem -VV
Starting 'Run'
Checking Chef version...
Enter the password for root@ipaddress:
DEBUG: Initial command sudo chef-solo --version
DEBUG: Initial command sudo -V
DEBUG: Running processed command sudo -V
DEBUG: sudo -V stdout: Sudo version 1.8.3p1
Configure options: --prefix=/usr -v --with-all-insults --with-pam --with-fqdn --with-logging=syslog --with-logfac=authpriv --with-env-editor --with-editor=/usr/bin/editor --with-timeout=15 --with-password-timeout=0 --with-passprompt=[sudo] password for %p:  --without-lecture --with-tty-tickets --disable-root-mailer --enable-admin-flag --with-sendmail=/usr/sbin/sendmail --with-timedir=/var/lib/sudo --mandir=/usr/share/man --libexecdir=/usr/lib/sudo

DEBUG: sudo -V stdout: Sudoers policy plugin version 1.8.3p1
Sudoers file grammar version 40

Sudoers path: /etc/sudoers

DEBUG: sudo -V stdout: Authentication methods: 'pam'
Syslog facility if syslog is being used for logging: authpriv

DEBUG: sudo -V stdout: Syslog priority to use when user authenticates successfully: notice
Syslog priority to use when user authenticates unsuccessfully: alert
Send mail if user authentication fails
Send mail if the user is not in sudoers

DEBUG: sudo -V stdout: Use a separate timestamp for each user/tty combo
Lecture user the first time they run sudo
Require users to authenticate by default
Root may run sudo
Allow some information gathering to give useful error messages
Require fully-qualified hostnames in the sudoers file

DEBUG: sudo -V stdout: Visudo will honor the EDITOR environment variable
Set the LOGNAME and USER environment variables

DEBUG: sudo -V stdout: Length at which to wrap log file lines (0 for no wrap): 80

DEBUG: sudo -V stdout: Authentication timestamp timeout: 15.0 minutes
Password prompt timeout: 0.0 minutes

DEBUG: sudo -V stdout: Number of tries to enter a password: 3
Umask to use or 0777 to use user's: 022

DEBUG: sudo -V stdout: Path to mail program: /usr/sbin/sendmail
Flags for mail program: -t

DEBUG: sudo -V stdout: Address to send mail to: root
Subject line for mail messages: *** SECURITY information for %h ***
Incorrect password message: Sorry, try again.
Path to authentication timestamp dir: /var/lib/sudo

DEBUG: sudo -V stdout: Default password prompt: [sudo] password for %p:
Default user to run commands as: root
Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

DEBUG: sudo -V stdout: Path to the editor for use by visudo: /usr/bin/editor
When to require a password for 'list' pseudocommand: any
When to require a password for 'verify' pseudocommand: all

DEBUG: sudo -V stdout: File descriptors >= 3 will be closed before executing a command

DEBUG: sudo -V stdout: Reset the environment to a default set of variables

DEBUG: sudo -V stdout: Environment variables to check for sanity:
     TERM
DEBUG: sudo -V stdout:
     LINGUAS
DEBUG: sudo -V stdout:
     LC_*

DEBUG: sudo -V stdout:      LANGUAGE

DEBUG: sudo -V stdout:      LANG

DEBUG: sudo -V stdout:      COLORTERM

DEBUG: sudo -V stdout: Environment variables to remove:
     RUBYOPT

DEBUG: sudo -V stdout:      RUBYLIB
     PYTHONUSERBASE

DEBUG: sudo -V stdout:      PYTHONINSPECT
     PYTHONPATH

DEBUG: sudo -V stdout:      PYTHONHOME

DEBUG: sudo -V stdout: TMPPREFIX
     ZDOTDIR
DEBUG: sudo -V stdout:
     READNULLCMD

DEBUG: sudo -V stdout:      NULLCMD
     FPATH
DEBUG: sudo -V stdout:
     PERL5DB

DEBUG: sudo -V stdout:      PERL5OPT
     PERL5LIB

DEBUG: sudo -V stdout:      PERLLIB
     PERLIO_DEBUG

DEBUG: sudo -V stdout:      JAVA_TOOL_OPTIONS
DEBUG: sudo -V stdout:
     SHELLOPTS

DEBUG: sudo -V stdout:      GLOBIGNORE
DEBUG: sudo -V stdout:
     PS4
DEBUG: sudo -V stdout:
     BASH_ENV

DEBUG: sudo -V stdout:      ENV

DEBUG: sudo -V stdout: TERMCAP

DEBUG: sudo -V stdout:      TERMPATH
     TERMINFO_DIRS

DEBUG: sudo -V stdout:      TERMINFO
DEBUG: sudo -V stdout:
     _RLD*

DEBUG: sudo -V stdout:      LD_*
     PATH_LOCALE

DEBUG: sudo -V stdout:      NLSPATH
     HOSTALIASES
     RES_OPTIONS

DEBUG: sudo -V stdout: LOCALDOMAIN
     CDPATH

DEBUG: sudo -V stdout:      IFS
Environment variables to preserve:

DEBUG: sudo -V stdout:      XAUTHORIZATION

DEBUG: sudo -V stdout:      XAUTHORITY

DEBUG: sudo -V stdout: TZ

DEBUG: sudo -V stdout:      PS2
     PS1
DEBUG: sudo -V stdout:
     PATH

DEBUG: sudo -V stdout:      LS_COLORS
     KRB5CCNAME
DEBUG: sudo -V stdout:
     HOSTNAME

DEBUG: sudo -V stdout:      HOME
     DISPLAY
DEBUG: sudo -V stdout:
     COLORS

DEBUG: sudo -V stdout: Locale to use while parsing sudoers: C

DEBUG: sudo -V stdout: Directory in which to store input/output logs

DEBUG: sudo -V stdout: File in which to store the input/output log

DEBUG: sudo -V stdout: Add an entry to the utmp/utmpx file when allocating a pty


DEBUG: sudo -V stdout: Local IP address and netmask pairs:

DEBUG: sudo -V stdout:      ipaddress/255.255.255.0

DEBUG: sudo -V stdout: fe80::250:56ff:feb0:1934/ffff:ffff:ffff:ffff::


DEBUG: sudo -V stdout: Sudoers I/O plugin version 1.8.3p1

DEBUG: Running processed command sudo -p 'knife sudo password: ' chef-solo --version
DEBUG: sudo -p 'knife sudo password: ' chef-solo --version stdout: sudo: chef-solo: command not found

/usr/local/rvm/gems/ruby-1.9.3-p392/gems/knife-solo-0.2.0/lib/chef/knife/solo_cook.rb:161:in 'check_chef_version': Couldn't find Chef >=0.10.4 on ipaddress. Please run knife solo prepare root@ipaddress -i /Users/me/Documents/WORK/project/certificate.pem' to ensure Chef is installed and up to date. (RuntimeError)
     from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/knife-solo-0.2.0/lib/chef/knife/solo_cook.rb:63:in 'block in run'
     from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/knife-solo-0.2.0/lib/chef/knife/solo_cook.rb:122:in 'time'
     from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/knife-solo-0.2.0/lib/chef/knife/solo_cook.rb:55:in 'run'
     from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/chef-11.12.8/lib/chef/knife.rb:492:in 'run_with_pretty_exceptions'
     from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/chef-11.12.8/lib/chef/knife.rb:174:in 'run'
     from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/chef-11.12.8/lib/chef/application/knife.rb:135:in 'run'
     from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/chef-11.12.8/bin/knife:25:in '<top (required)>'
     from /usr/local/rvm/gems/ruby-1.9.3-p392/bin/knife:19:in 'load'
     from /usr/local/rvm/gems/ruby-1.9.3-p392/bin/knife:19:in '<main>'
     from /usr/local/rvm/gems/ruby-1.9.3-p392/bin/ruby_noexec_wrapper:14:in 'eval'
     from /usr/local/rvm/gems/ruby-1.9.3-p392/bin/ruby_noexec_wrapper:14:in '<main>’ 

所以决定添加--no-chef-check,我没有得到“找不到厨师”的错误。我测试它得到了这个错误

 $knife solo cook root@ipaddress  -c solo.rb -i /Users/me/Documents/WORK/project/certificate.pem --no-chef-check
Enter the password for root@ipaddress:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/me/Documents/WORK/project/certificate.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/me/Documents/WORK/project/certificate.pem
root@ipaddress's password:

Permission denied, please try again.
root@ipaddress's password:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/me/Documents/WORK/project/certificate.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/me/Documents/WORK/project/certificate.pem
root@ipaddress's password:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/me/Documents/WORK/project/certificate.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/me/Documents/WORK/project/certificate.pem
root@ipaddress's password:
sudo: chef-solo: command not found
ERROR: RuntimeError: chef-solo failed. See output above.

1 个答案:

答案 0 :(得分:0)

笔文件的许可必须为600(文件主人只能读写)

所以你应该运行

  

sudo chmod 600 /Users/me/Documents/WORK/project/certificate.pem

一切都会好的。