12 Replies Latest reply on May 3, 2012 10:28 PM by mbabineau

    esx plugin, failing with load of 'main' plugin

    mbabineau

      Hey all!

       

      I'm new to boxgrinder. I'm using it for my companies work with creating automated nightly images as well as deliverables for customers. We have the need to push out to an ESXi machine. I found the awesome plug in that rubiojr wrote. I'm trying to implement it using

       

      boxgrinder-build fedora-generic.appl -f -l esx-delivery-plugin -p vmware --platform-config type:enterprise,thin_disk:false -d esx --delivery-config esx_host:10.232.5.106,esx_usr:root,esx_password:Password$

       

      this is throwing a

      F, [2012-03-06T11:39:03.369623 #23316] FATAL -- : RuntimeError: Error while initializing 'main' plugin.

      /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/managers/plugin-manager.rb:74:in `initialize_plugin'

      /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:74:in `initialize_plugins'

      /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:150:in `create'

      /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/bin/boxgrinder-build:189

      /usr/bin/boxgrinder-build:19:in `load'

      /usr/bin/boxgrinder-build:19

       

      im confused because i so no reference to a 'main' plugin anywhere, or anywhere where in the plugin-helper or the plugin-manager where main could be passed to the initializer.

       

      I could really use some help if people are also using this delivery scheme. Thanks!

        • 1. Re: esx plugin, failing with load of 'main' plugin
          rubiojr

          Hey Matthew!

           

          Pushed version 0.1.1. Let me know if that fixes your issues.

           

          Thanks!

          • 2. Re: esx plugin, failing with load of 'main' plugin
            mbabineau

            You my friend are amazing! Thanks so much, looking good now, ill let you know when it gets pushed up to the server. Thanks AGAIN!!!!

            • 3. Re: esx plugin, failing with load of 'main' plugin
              mbabineau

              Got to the upload this time.

               

              D, [2012-03-06T15:10:49.704895 #7038] DEBUG -- : Platform plugin executed.

              D, [2012-03-06T15:10:49.705133 #7038] DEBUG -- : Executing delivery plugin...

              I, [2012-03-06T15:10:49.707083 #7038]  INFO -- : Uploading nei-fedora-generic to ESX host 10.232...

              E, [2012-03-06T15:10:49.732688 #7038] ERROR -- : can't convert Float into String (TypeError)

              /usr/lib/ruby/1.8/net/http.rb:560:in `initialize'

              /usr/lib/ruby/1.8/net/http.rb:560:in `open'

              /usr/lib/ruby/1.8/net/http.rb:560:in `connect'

              /usr/lib/ruby/1.8/timeout.rb:67:in `timeout'

              /usr/lib/ruby/1.8/timeout.rb:101:in `timeout'

              /usr/lib/ruby/1.8/net/http.rb:560:in `connect'

              /usr/lib/ruby/1.8/net/http.rb:553:in `do_start'

              /usr/lib/ruby/1.8/net/http.rb:548:in `start'

              /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.0/lib/rbvmomi/trivial_soap.rb:56:in `restart_http'

              /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.0/lib/rbvmomi/trivial_soap.rb:20:in `initialize'

              /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.0/lib/rbvmomi/connection.rb:31:in `initialize'

              /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.0/lib/rbvmomi/vim.rb:34:in `new'

              /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.0/lib/rbvmomi/vim.rb:34:in `connect'

              /usr/lib/ruby/gems/1.8/gems/esx-0.3.2/lib/esx.rb:27:in `connect'

              /usr/lib/ruby/gems/1.8/gems/boxgrinder-esx-delivery-plugin-0.1.1/lib/esx-delivery-plugin.rb:35:in `create_vm'

              /usr/lib/ruby/gems/1.8/gems/boxgrinder-esx-delivery-plugin-0.1.1/lib/esx-delivery-plugin.rb:26:in `execute'

              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/plugins/base-plugin.rb:172:in `run'

              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:174:in `execute_plugin'

              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:121:in `execute_plugin_chain'

              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:121:in `each'

              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:121:in `execute_plugin_chain'

              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:154:in `create'

              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/bin/boxgrinder-build:189

              /usr/bin/boxgrinder-build:19:in `load'

              /usr/bin/boxgrinder-build:19

              E, [2012-03-06T15:10:49.733092 #7038] ERROR -- : An error occurred while uploading files.

              D, [2012-03-06T15:10:49.733494 #7038] DEBUG -- : Delivery plugin executed.

              • 4. Re: esx plugin, failing with load of 'main' plugin
                rubiojr

                Hey Matthew,

                 

                Looks like a problem connecting to the hypervisor. Try the following command:

                 

                esx info --user root --password <esx-root-password-here> <esx-server-ip>

                 

                and let me know if that works.

                 

                If you could paste also the output from 'gem env' and 'gem list' I will try to reproduce the issue.

                 

                Which distro and version are you using? ESXi version? ESX user is 'root'?

                 

                Thanks!

                • 5. Re: esx plugin, failing with load of 'main' plugin
                  rubiojr

                  Also, double check the command you typed:

                   

                  "boxgrinder-build fedora-generic.appl -f -l esx-delivery-plugin -p vmware --platform-config type:enterprise,thin_disk:false -d esx --delivery-config esx_host:10.232.5.106,esx_usr:root,esx_password:Password$"

                   

                  Note you are using "esx_usr" instead of "esx_user"

                  • 6. Re: esx plugin, failing with load of 'main' plugin
                    mbabineau

                    [root@localhost x86_64]# gem env

                    RubyGems Environment:

                      - RUBYGEMS VERSION: 1.8.11

                      - RUBY VERSION: 1.8.7 (2011-12-28 patchlevel 357) [x86_64-linux]

                      - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8

                      - RUBY EXECUTABLE: /usr/bin/ruby

                      - EXECUTABLE DIRECTORY: /usr/bin

                      - RUBYGEMS PLATFORMS:

                        - ruby

                        - x86_64-linux

                      - GEM PATHS:

                         - /usr/lib/ruby/gems/1.8

                         - /root/.gem/ruby/1.8

                      - GEM CONFIGURATION:

                         - :update_sources => true

                         - :verbose => true

                         - :benchmark => false

                         - :backtrace => false

                         - :bulk_threshold => 1000

                      - REMOTE SOURCES:

                         - http://rubygems.org/

                    [root@localhost x86_64]# gem list

                     

                     

                    *** LOCAL GEMS ***

                     

                     

                    alchemist (0.1.2.1)

                    aws-sdk (1.1.1)

                    blankslate (2.1.2.4)

                    boxgrinder-build (0.10.0)

                    boxgrinder-core (0.3.10)

                    boxgrinder-esx-delivery-plugin (0.1.1, 0.1)

                    builder (2.1.2)

                    clamp (0.3.0)

                    crack (0.1.8)

                    esx (0.3.2)

                    hashery (1.4.0)

                    httparty (0.7.4)

                    json (1.4.6)

                    kwalify (0.7.2)

                    mime-types (1.16)

                    mixlib-authentication (1.1.4)

                    mixlib-cli (1.2.2)

                    mixlib-config (1.1.2)

                    mixlib-log (1.3.0)

                    multi_json (1.1.0)

                    multi_xml (0.4.1)

                    net-scp (1.0.4)

                    net-sftp (2.0.5)

                    net-ssh (2.0.23)

                    nokogiri (1.5.0)

                    open4 (1.0.1)

                    progressbar (0.9.0)

                    rbvmomi (1.5.0)

                    rest-client (1.6.1)

                    terminal-table (1.4.4)

                    trollop (1.16.2)

                    uuidtools (2.1.1)

                     

                    also re-running with the user changed. Linux has made a creature of habit.

                    • 7. Re: esx plugin, failing with load of 'main' plugin
                      mbabineau

                      Oh and i logged in to the esx using the command you asked, no probs there. just got the same err. after changing the usr to user

                       

                      WARNING: Clamp default_subcommand syntax has changed; check the README.

                        (from /usr/lib/ruby/gems/1.8/gems/esx-0.3.2/bin/esx:287)

                       

                       

                      *********************

                      LOCALHOST.LOCALDOMAIN

                      *********************

                      Memory Size:      16 GB

                      Memory Usage:     9 GB

                      Cpu Cores:        4

                      Power State:      poweredOn

                      Hosted VMs:       5

                      Running VMs:      5

                       

                       

                      Virtual Machines:

                      +-------------------------+--------+------+------+-------+-----------+

                      | NAME                    | MEMORY | CPUS | NICS | DISKS | STATE     |

                      +-------------------------+--------+------+------+-------+-----------+

                      | Fedora 14 Build Server  | 2008   | 2    | 1    | 1     | poweredOn |

                      | nei-fedora-generic      | 1024   | 1    | 1    | 1     | poweredOn |

                      | CentOS 6.1 Build Server | 2048   | 2    | 2    | 1     | poweredOn |

                      | RHEL6.1 Build System    | 2048   | 2    | 1    | 1     | poweredOn |

                      | Thincrust Boxgrinder    | 2048   | 4    | 1    | 1     | poweredOn |

                      +-------------------------+--------+------+------+-------+-----------+

                       

                       

                      Datastores:

                      +------------+---------------+---------------+-----------+------+---------------------------------------------------+

                      | NAME       | CAPACITY      | FREESPACE     | ACCESIBLE | TYPE | URL                                               |

                      +------------+---------------+---------------+-----------+------+---------------------------------------------------+

                      | datastore1 | 2243046670336 | 2063920529408 | VMFS      | true | /vmfs/volumes/4f455bd7-52e0af24-8199-003048d5e449 |

                      +------------+---------------+---------------+-----------+------+---------------------------------------------------+

                      • 8. Re: esx plugin, failing with load of 'main' plugin
                        mbabineau

                        Connection timed out - connect(2)

                         

                        also just tryed the esx load manually and got a time out. this could be an issue.

                        • 9. Re: esx plugin, failing with load of 'main' plugin
                          mbabineau

                          And i am also using esxi version 5. which doesnt allow version 4 HW anymore. only 7 and 8 are supported, i think. Im going to try to change that in the esx-x.x/spec/data/tc.vmdk file

                          • 10. Re: esx plugin, failing with load of 'main' plugin
                            rubiojr

                            If the ESX host is under heavy load it could affect the upload/conversion of the template and timeout, as you mentioned. I need to investigate this further.

                             

                            I'll push a new version of the plugin with some more debugging if you are interested. Hopefully tracing a little bit more the deploy we'll be able to see something.

                             

                            Thanks for all the details Matthew, greatly appreciated.

                            • 11. Re: esx plugin, failing with load of 'main' plugin
                              mbabineau

                              [root@localhost x86_64]# boxgrinder-build fedora-generic.appl -l esx-delivery-plugin -p vmware --platform-config type:enterprise,thin_disk:false -d esx --delivery-config esx_host:10.232.5.106,esx_user:root,esx_password:Password$

                              I, [2012-03-08T14:39:10.815751 #14429]  INFO -- : Validating appliance definition from fedora-generic.appl file...

                              I, [2012-03-08T14:39:10.824159 #14429]  INFO -- : Appliance definition is valid.

                              I, [2012-03-08T14:39:10.872010 #14429]  INFO -- : Building 'nei-fedora-generic' appliance for x86_64 architecture.

                              I, [2012-03-08T14:39:10.872628 #14429]  INFO -- : Deliverables for fedora os plugin exists, skipping.

                              I, [2012-03-08T14:39:10.874352 #14429]  INFO -- : Deliverables for vmware platform plugin exists, skipping.

                              I, [2012-03-08T14:39:10.875641 #14429]  INFO -- : Uploading nei-fedora-generic to ESX host 10.232...

                              E, [2012-03-08T14:39:10.879531 #14429] ERROR -- : can't convert Float into String (TypeError)

                              /usr/lib/ruby/1.8/net/http.rb:560:in `initialize'

                              /usr/lib/ruby/1.8/net/http.rb:560:in `open'

                              /usr/lib/ruby/1.8/net/http.rb:560:in `connect'

                              /usr/lib/ruby/1.8/timeout.rb:67:in `timeout'

                              /usr/lib/ruby/1.8/timeout.rb:101:in `timeout'

                              /usr/lib/ruby/1.8/net/http.rb:560:in `connect'

                              /usr/lib/ruby/1.8/net/http.rb:553:in `do_start'

                              /usr/lib/ruby/1.8/net/http.rb:548:in `start'

                              /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.0/lib/rbvmomi/trivial_soap.rb:56:in `restart_http'

                              /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.0/lib/rbvmomi/trivial_soap.rb:20:in `initialize'

                              /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.0/lib/rbvmomi/connection.rb:31:in `initialize'

                              /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.0/lib/rbvmomi/vim.rb:34:in `new'

                              /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.0/lib/rbvmomi/vim.rb:34:in `connect'

                              /usr/lib/ruby/gems/1.8/gems/esx-0.3.2/lib/esx.rb:27:in `connect'

                              /usr/lib/ruby/gems/1.8/gems/boxgrinder-esx-delivery-plugin-0.1.1/lib/esx-delivery-plugin.rb:35:in `create_vm'

                              /usr/lib/ruby/gems/1.8/gems/boxgrinder-esx-delivery-plugin-0.1.1/lib/esx-delivery-plugin.rb:26:in `execute'

                              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/plugins/base-plugin.rb:172:in `run'

                              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:174:in `execute_plugin'

                              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:121:in `execute_plugin_chain'

                              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:121:in `each'

                              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:121:in `execute_plugin_chain'

                              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/lib/boxgrinder-build/appliance.rb:154:in `create'

                              /usr/lib/ruby/gems/1.8/gems/boxgrinder-build-0.10.0/bin/boxgrinder-build:189

                              /usr/bin/boxgrinder-build:19:in `load'

                              /usr/bin/boxgrinder-build:19

                              E, [2012-03-08T14:39:10.880144 #14429] ERROR -- : An error occurred while uploading files.

                              • 12. Re: esx plugin, failing with load of 'main' plugin
                                mbabineau

                                Sergio,

                                I did some work to determine what was going on here. It turns out that the esx module dont handle the raw file that goes along with the vmdk file. It doesnt upload it to the server so when the vmkfstools goes to do the convert, it can't. It will say there is a file missing. I have done some work myself to get it to pull that raw file with it. Let me know if you need any more information. I didnt see any esx area to post this in so i figured i would attach to this.

                                 

                                ~Matt~