问题
I am a mac girl, working on connecting with knife-windows trough Opscode's managed Chef to my Rackspace Windows servers. (I know, it sounds exotic, but these Windows servers are a customer requirment).
I tried to Chef for a spin but I am stuck in trying to bootstrap the Windows 2008 Server on Rackspace with the knife-windows command.
I am working on OSX, using rvm, ruby 2.1.0 and a local gemset with chef + knife-windows.
I was trying to follow the steps from: https://github.com/opscode/knife-windows
I have configured the winrm service. I have set up a rule to allow inbound connections in my firewall on port 5985,and I verified that I can connect with telnet.
In addition to the Learn Chef screen casts, I have tried to follow the guide: http://developer.rackspace.com/blog/step-by-step-walkthrough-to-using-chef-to-bootstrap-windows-nodes-on-the-rackspace-cloud.html
I configured winrm like this:
winrm quickconfig -q
winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="300"}'
winrm set winrm/config '@{MaxTimeoutms="1800000"}'
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
winrm set winrm/config/service/auth '@{Basic="true"}'
netsh advfirewall firewall add rule name="WinRM 5985" protocol=TCP dir=in localport=5985 action=allow
netsh advfirewall firewall add rule name="WinRM 5986" protocol=TCP dir=in localport=5986 action=allow
net stop winrm
sc config winrm start=auto
net start winrm
I am using knife like this: knife bootstrap windows winrm 168.**** -x Administrator -P '****'
I get back this strange log, no success report, no instance appearing in the chef management console .... I see that its trying to insert the character '#39' many times ?
WARNING: Could not load IOV methods. Check your GSSAPI C library for an update
WARNING: Could not load AEAD methods. Check your GSSAPI C library for an update
Bootstrapping Chef on 162.13.15.241
162.13.15.241 "Rendering "C:\Users\ADMINI~1\AppData\Local\Temp\bootstrap-47130-1392751156.bat" chunk 1"
162.13.15.241 "Rendering "C:\Users\ADMINI~1\AppData\Local\Temp\bootstrap-47130-1392751156.bat" chunk 2"
162.13.15.241 '#39' is not recognized as an internal or external command,
162.13.15.241 operable program or batch file.
162.13.15.241 "Rendering "C:\Users\ADMINI~1\AppData\Local\Temp\bootstrap-47130-1392751156.bat" chunk 3"
162.13.15.241 '#39' is not recognized as an internal or external command,
162.13.15.241 operable program or batch file.
162.13.15.241 "Rendering "C:\Users\ADMINI~1\AppData\Local\Temp\bootstrap-47130-1392751156.bat" chunk 4"
162.13.15.241 '#39' is not recognized as an internal or external command,
162.13.15.241 operable program or batch file.
162.13.15.241 '#39' is not recognized as an internal or external command,
....
162.13.15.241 echo.
162.13.15.241 echo.$webClient = new-object System.Net.WebClient;
162.13.15.241 echo.
162.13.15.241 echo.$webClient.DownloadFile($remoteUrl, $localPath);
162.13.15.241 ) 1>C:\chef\wget.ps1
162.13.15.241 C:\Users\Administrator>)
I tried to follow the advice from knife bootstrap windows winrm from Mac OS X workstation fails, and downgraded knife-windows to version 0.5.10, but the result is the same.
My gemset is as follows:
akami (1.2.1)
bigdecimal (1.2.3)
builder (3.2.2)
bundler (1.5.3)
bundler-unload (1.0.2)
chef (11.10.0)
chef-zero (1.7.3)
coderay (1.1.0)
diff-lcs (1.2.5)
em-winrm (0.5.4)
erubis (2.7.0)
eventmachine (1.0.0.beta.3)
excon (0.31.0)
executable-hooks (1.3.1)
ffi (1.9.3)
fog (1.20.0)
formatador (0.2.4)
gem-wrappers (1.2.4)
gssapi (1.0.3)
gyoku (1.1.1)
hashie (2.0.5)
highline (1.6.20)
httpclient (2.3.4.1)
httpi (0.9.7)
io-console (0.4.2)
ipaddress (0.8.0)
json (1.8.1)
knife-rackspace (0.9.0)
knife-windows (0.5.10)
little-plugger (1.1.3)
logging (1.8.2)
method_source (0.8.2)
mime-types (1.25.1)
mini_portile (0.5.2)
minitest (4.7.5)
mixlib-authentication (1.3.0)
mixlib-cli (1.4.0)
mixlib-config (2.1.0)
mixlib-log (1.6.0)
mixlib-shellout (1.3.0)
moneta (0.6.0)
multi_json (1.8.4)
net-scp (1.1.2)
net-ssh (2.8.0)
net-ssh-gateway (1.2.0)
net-ssh-multi (1.2.0)
nokogiri (1.6.1)
nori (1.1.5)
ohai (6.20.0)
pry (0.9.12.6)
psych (2.0.2)
puma (1.6.3)
rack (1.5.2)
rake (10.1.0)
rdoc (4.1.0)
rest-client (1.6.7)
rubygems-bundler (1.4.2)
rubyntlm (0.1.1)
rvm (1.11.3.9)
savon (0.9.5)
slop (3.4.7)
systemu (2.5.2)
test-unit (2.1.0.0)
uuidtools (2.1.4)
wasabi (1.0.0)
winrm (1.1.3)
yajl-ruby (1.2.0)
Any advice? Is this an OS X thing? Windows Server thing? Chef thing???
With last shreds of hope, Agata
回答1:
Purge & Install it with:
gem uninstall knife-windows
gem install knife-windows -v 0.5.10
check your gems with:
gem list | grep knife-windows
And it should show knife-windows (0.5.10)
.
Configure the window remote management
1. winrm quickconfig -q
2. winrm set winrm/config/winrs @{MaxMemoryPerShellMB="300"}
3. winrm set winrm/config @{MaxTimeoutms="1800000"}
4. winrm set winrm/config/service @{AllowUnencrypted="true"}
5. winrm set winrm/config/service/auth @{Basic="true"}
and then bootstrapped:
knife bootstrap windows winrm ec2-xx-xxx-xx.compute-1.amazonaws.com -r 'recipe[cookbook]' -x Administrator -P xxxxxxxx
回答2:
In my case, RVM was the responsible culprit. I managed to resolve this issue by following steps:
1) downloading and installing Chef the omnibus installer from Opscode
curl -L https://www.opscode.com/chef/install.sh | sudo bash
2) Installing knife-windows directly in chefs library:
Navigate to /opt/chef/embedded/bin/gem
Disable rvm by using system ruby:
rvm use system
3) Install knife windows plugin :
/opt/chef/embedded/bin/gem install knife-windows
Now I can bootstrap my Windows Server node using the command
knife bootstrap windows winrm <IP Address> -p 5985 -x Administrator -P '<password>'
来源:https://stackoverflow.com/questions/21863582/stuck-trying-to-bootstrap-windows-server-using-chef