wilas / vbkick

Tool for building and maintaining VirtualBox VMs described as a code in a single definition file.
Other
8 stars 5 forks source link

Results of Boot2Docker test - problem with medium error. #54

Closed gregelin closed 10 years ago

gregelin commented 10 years ago

Testing Boot2Docker on OSX - June 1, 2014

Uninstall existing vbkick

mbair:vbkick greg$ ls
CHANGELOG.md        Makefile        docs            templates
CONTRIBUTE.md       README.md       examples        vbkick
LICENSE         convert_2_scancode.py   keys
mbair:vbkick greg$ sudo make uninstall
Password:
cd /usr/local/bin && rm -f vbkick && rm -f convert_2_scancode.py
cd /usr/local/man/man1 && rm -f vbkick.1
mbair:vbkick greg$

Install vbkick via curl installer; test install

curl -Lk https://raw.githubusercontent.com/wilas/vbkick/master/install.sh | sudo bash
mbair:vbkick greg$ curl -Lk https://raw.githubusercontent.com/wilas/vbkick/master/install.sh | sudo bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3167  100  3167    0     0   4175      0 --:--:-- --:--:-- --:--:--  4172
[INFO] Install succeeded.
mbair:vbkick greg$ vbkick
Desc: the automatic Virtualbox Guests and Vagrant Base Boxes builder

Usage: /usr/local/bin/vbkick ACTION VM_NAME (DEFINITION_FILE_NAME)

Available actions:
    build                 build VM
    postinstall           run postinstall scripts via ssh
    validate              run validate/feature scripts via ssh
    export                export VM and creates Vagrant VM_NAME.box
    update                run update scripts via ssh
    destroy               destroy VM
    ssh                   ssh to VM
    on                    turn on VM
    shutdown              shutdown VM
    help                  display this help and exit

Thought: Drawback of the grouped files is that you cannot git clone a single set of files. That could be mediated by having an curl install for each FILE_NAME

git clone https://github.com/wilas/vbkick-templates-forge.git
cp -R vbkick-templates-forge/Boot2Docker ./.
cd Boot2Docker

Results

mbair:virtualmachines greg$ git clone https://github.com/wilas/vbkick-templates-forge.git
Cloning into 'vbkick-templates-forge'...
remote: Counting objects: 164, done.
remote: Compressing objects: 100% (105/105), done.
remote: Total 164 (delta 41), reused 164 (delta 41)
Receiving objects: 100% (164/164), 1.31 MiB | 97.00 KiB/s, done.
Resolving deltas: 100% (41/41), done.
Checking connectivity... done.
mbair:virtualmachines greg$ cp -R vbkick-templates-forge/Boot2Docker ./.
mbair:virtualmachines greg$ cd Boot2Docker
mbair:Boot2Docker greg$ ls -alh
total 24
drwxr-xr-x   8 greg  admin   272B Jun  1 21:12 .
drwxr-xr-x  74 greg  admin   2.5K Jun  1 21:12 ..
-rw-r--r--   1 greg  admin   762B Jun  1 21:12 README.md
-rw-r--r--   1 greg  admin   1.5K Jun  1 21:12 common.cfg
-rw-r--r--   1 greg  admin   617B Jun  1 21:12 definition.cfg
drwxr-xr-x   4 greg  admin   136B Jun  1 21:12 play_docker
drwxr-xr-x   4 greg  admin   136B Jun  1 21:12 postinstall
drwxr-xr-x   5 greg  admin   170B Jun  1 21:12 validate

mbair:Boot2Docker greg$ vbkick validate -f definition.cfg INFO: Loading "definition.cfg" definition... grep: option requires an argument -- f usage: grep [-abcDEFGHhIiJLlmnOoPqRSsUVvwxZ] [-A num] [-B num] [-C[num]] [-e pattern] [-f file] [--binary-files=value] [--color=when] [--context[=num]] [--directories=action] [--label] [--line-buffered] [--null] [pattern] [file ...]

I guess I thought validate might check be like --dry-run

Building Boot2Docker

mbair:Boot2Docker greg$ vbkick build b2d
INFO: Loading "definition.cfg" definition...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  221k  100  221k    0     0   346k      0 --:--:-- --:--:-- --:--:--  346k
WARNING: CHECKSUM is different then expected !
Do you want continue? [y/N]N

Checksum not set in common.cfg

THought: I think I'd like to echo what is being downloaded

https://github.com/boot2docker/boot2docker/releases/download/v0.9.1/boot2docker.iso

vbkick build boot2docker caused a failed medium error. Inspection:

ls -alh iso/
total 0
drwxr-xr-x  3 greg  admin   102B Jun  1 21:23 .
drwxr-xr-x  9 greg  admin   306B Jun  1 21:15 ..
drwxr-xr-x  3 greg  admin   102B Jun  1 21:23 boot2docker-v0.9.1?INFO: Signal
mbair:Boot2Docker greg$ vbkick build boot2docker
boot2docker already exist

Some problems getting rid of the boot2docker bad iso. Finally deleted iso directory.

mbair:Boot2Docker greg$ ls -alh iso
total 0
drwxr-xr-x  3 greg  admin   102B Jun  1 21:23 .
drwxr-xr-x  9 greg  admin   306B Jun  1 21:15 ..
drwxr-xr-x  3 greg  admin   102B Jun  1 21:23 boot2docker-v0.9.1?INFO: Signal
mbair:Boot2Docker greg$ rm 'iso/boot2docker-v0.9.1
INFO: Signal'/'
> '
rm: iso/boot2docker-v0.9.1
INFO: Signal/
: No such file or directory
mbair:Boot2Docker greg$ rm 'iso/boot2docker-v0.9.1?INFO: Signal'
rm: iso/boot2docker-v0.9.1?INFO: Signal: No such file or directory
mbair:Boot2Docker greg$ rm 'iso/boot2docker-v0.9.1\rINFO: Signal'
rm: iso/boot2docker-v0.9.1\rINFO: Signal: No such file or directory
mbair:Boot2Docker greg$ rm 'iso/boot2docker-v0.9.1\nINFO: Signal'
rm: iso/boot2docker-v0.9.1\nINFO: Signal: No such file or directory
mbair:Boot2Docker greg$ rm -Rf iso
mbair:Boot2Docker greg$

vbkick-06-01-fatal-could not read from boot medium

Download https://github.com/boot2docker/boot2docker/releases/download/v0.9.1/boot2docker.iso separately and copied into iso directory.

mbair:Boot2Docker greg$ mkdir iso
mbair:Boot2Docker greg$ cp /Users/greg/Downloads/b
boot2docker.iso           boot2docker.iso.download/
mbair:Boot2Docker greg$ cp /Users/greg/Downloads/boot2docker.iso iso/
mbair:Boot2Docker greg$ ls -alh iso
total 45056
drwxr-xr-x  3 greg  admin   102B Jun  1 21:37 .
drwxr-xr-x  9 greg  admin   306B Jun  1 21:36 ..
-rw-r--r--@ 1 greg  admin    22M Jun  1 21:37 boot2docker.iso

Still problems with Failed medium message.

mbair:Boot2Docker greg$ vbkick build boot2docker
INFO: Loading "definition.cfg" definition...
WARNING: CHECKSUM is different then expected !
Do you want continue? [y/N]y
Virtual machine 'boot2docker' is created and registered.
UUID: 2aeaec60-8ef6-4953-b270-790f5b44ee69
Settings file: '/Users/greg/VirtualBox VMs/boot2docker/boot2docker.vbox'
Oracle VM VirtualBox Command Line Management Interface Version 4.3.12
(C) 2005-2014 Oracle Corporation
All rights reserved.

Usage:

VBoxManage storagectl       <uuid|vmname>
                            --name <name>
                            [--add ide|sata|scsi|floppy|sas]
                            [--controller LSILogic|LSILogicSAS|BusLogic|
                                          IntelAHCI|PIIX3|PIIX4|ICH6|I82078]
                            [--portcount <1-30>]
                            [--hostiocache on|off]
                            [--bootable on|off]
                            [--remove]

VBoxManage: error: Unknown option: --sataportcount
VBoxManage: error: Could not find a controller named 'SATA Controller'
0%...
Progress state: VBOX_E_FILE_ERROR
VBoxManage: error: Failed to create hard disk
VBoxManage: error: Could not create the medium storage unit '/Users/greg/VirtualBox VMs/boot2docker/boot2docker-2.vdi'.
VBoxManage: error: VDI: cannot create image '/Users/greg/VirtualBox VMs/boot2docker/boot2docker-2.vdi' (VERR_ALREADY_EXISTS)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component Medium, interface IMedium
VBoxManage: error: Context: "int handleCreateHardDisk(HandlerArg*)" at line 391 of file VBoxManageDisk.cpp
VBoxManage: error: Could not find a controller named 'SATA Controller'
Waiting for VM "boot2docker" to power on...
VM "boot2docker" has been successfully started.
Sleeping 10 seconds ...

Same error again. Trying different name for vm.

Same error. Trying to download medium again. The download was only 23 MB.

Redownloading and getting another 23MB file.

gregelin commented 10 years ago

Tried a wget download.

mbair:Boot2Docker greg$ wget https://github.com/boot2docker/boot2docker/releases/download/v0.9.1/boot2docker.iso
--2014-06-01 21:44:04--  https://github.com/boot2docker/boot2docker/releases/download/v0.9.1/boot2docker.iso
Resolving github.com... 192.30.252.129
Connecting to github.com|192.30.252.129|:443... connected.
ERROR: cannot verify github.com's certificate, issued by `/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA':
  Unable to locally verify the issuer's authority.
To connect to github.com insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.
mbair:Boot2Docker greg$ wget --no-check-certificate https://github.com/boot2docker/boot2docker/releases/download/v0.9.1/boot2docker.iso
--2014-06-01 21:44:22--  https://github.com/boot2docker/boot2docker/releases/download/v0.9.1/boot2docker.iso
Resolving github.com... 192.30.252.129
Connecting to github.com|192.30.252.129|:443... connected.
WARNING: cannot verify github.com's certificate, issued by `/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA':
  Unable to locally verify the issuer's authority.
HTTP request sent, awaiting response... 302 Found
Location: https://s3.amazonaws.com/github-cloud/releases/14930729/3e9f66d0-dbe8-11e3-9065-e02be36aed78.iso?response-content-disposition=attachment%3B%20filename%3Dboot2docker.iso&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1401673522&Signature=u%2BjwoQd5ca2on7N5keZc%2B1mYuKQ%3D [following]
--2014-06-01 21:44:22--  https://s3.amazonaws.com/github-cloud/releases/14930729/3e9f66d0-dbe8-11e3-9065-e02be36aed78.iso?response-content-disposition=attachment%3B%20filename%3Dboot2docker.iso&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1401673522&Signature=u%2BjwoQd5ca2on7N5keZc%2B1mYuKQ%3D
Resolving s3.amazonaws.com... 176.32.99.202
Connecting to s3.amazonaws.com|176.32.99.202|:443... connected.
WARNING: cannot verify s3.amazonaws.com's certificate, issued by `/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)10/CN=VeriSign Class 3 Secure Server CA - G3':
  Unable to locally verify the issuer's authority.
HTTP request sent, awaiting response... 200 OK
Length: 23068672 (22M) [application/octet-stream]
Saving to: `3e9f66d0-dbe8-11e3-9065-e02be36aed78.iso?response-content-disposition=attachment; filename=boot2docker.iso&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1401673522&Signature=u+jwoQd5ca2on7N5keZc+1mYuKQ='

30% [================>                                       ] 7,040,222    136K/s  eta 2m 31s  ^C
mbair:Boot2Docker greg$ ls
3e9f66d0-dbe8-11e3-9065-e02be36aed78.iso?response-content-disposition=attachment; filename=boot2docker.iso&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1401673522&Signature=u+jwoQd5ca2on7N5keZc+1mYuKQ=
README.md
common.cfg
definition.cfg
iso
play_docker
postinstall
validate
mbair:Boot2Docker greg$ rm 3e9f66d0-dbe8-11e3-9065-e02be36aed78.iso\?response-content-disposition\=attachment\;\ filename\=boot2docker.iso\&AWSAccessKeyId\=AKIAISTNZFOVBIJMK3TQ\&Expires\=1401673522\&Signature\=u+jwoQd5ca2on7N5keZc+1mYuKQ\=
mbair:Boot2Docker greg$ ls
README.md   definition.cfg  play_docker validate
common.cfg  iso     postinstall
mbair:Boot2Docker greg$
wilas commented 10 years ago

You are using stable version again, which is broken since virtualbox v4.3.X - solved in #32 and mentioned in #41. Please try vbkick from the master branch. If everything will be working for you then I'm going to make v0.7 release today/tomorrow.

From README.md: Stable:

curl -Lk https://raw.githubusercontent.com/wilas/vbkick/master/install.sh | sudo bash

Development = Master:

curl -Lk https://raw.githubusercontent.com/wilas/vbkick/master/install.sh | sudo STABLE=0 bash

So using curl installer please use at the moment that command:

curl -Lk https://raw.githubusercontent.com/wilas/vbkick/master/install.sh | sudo STABLE=0 bash
gregelin commented 10 years ago

@wilas I uninstalled and installed master.

Install vbkick via curl installer dev branch; test install

curl -Lk https://raw.githubusercontent.com/wilas/vbkick/master/install.sh | sudo STABLE=0 bash

mbair:vbkick greg$ curl -Lk https://raw.githubusercontent.com/wilas/vbkick/master/install.sh | sudo bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3167  100  3167    0     0   4175      0 --:--:-- --:--:-- --:--:--  4172
[INFO] Install succeeded.
mbair:virtualmachines greg$ vbkick
Description: the automatic Virtualbox Guests and Vagrant Base Boxes builder

Usage: vbkick <command> <VM_NAME> [<args>]
    version               Print the version and exit
    help                  Print this help

Common commands:
    build                 Build the new VM
    postinstall           Run postinstall scripts via SSH
    play                  Run play commands via SSH
    validate              Run validate scripts via SSH
    update                Run update scripts via SSH
    export                Exports the VM and creates a Vagrant box - VM_NAME.box
    destroy               Shut down and deletes the VM
    ssh                   Connect to the VM via SSH
    on                    Turn on the VM
    shutdown              Shut down the VM
    clone                 Clone the VM
    lssnap                List all snapshots for a given VM
    snap                  Take a new VM snapshot
    resnap                Restore the VM snapshot
    delsnap               Delete the VM snapshot
    list                  List all VirtualBox machines with the state

For help on any individual command run 'vbkick <command> -h'

Building Boot2Docker

mbair:Boot2Docker greg$ vbkick build boot2docker
[INFO] Loading "definition.cfg" definition...
curl: (3) [globbing] error: bad range specification after pos 70
[ERROR] https://github.com/boot2docker/boot2docker/releases/download/v0.9.1
[INFO] Signal handler - cleanup before exiting.../boot2docker.iso status code is . Terminating...
[INFO] Signal handler - cleanup before exiting...
gregelin commented 10 years ago

Getting iso https://github.com/boot2docker/boot2docker/releases/download/v0.9.1/boot2docker.iso

eventually retrieved via browser.

mbair:Boot2Docker greg$ ls iso
mbair:Boot2Docker greg$ curl https://github.com/boot2docker/boot2docker/releases/download/v0.9.1/boot2docker.iso
<html><body>You are being <a href="https://s3.amazonaws.com/github-cloud/releases/14930729/3e9f66d0-dbe8-11e3-9065-e02be36aed78.iso?response-content-disposition=attachment%3B%20filename%3Dboot2docker.iso&amp;AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&amp;Expires=1401691963&amp;Signature=pAuwDaPQrWAwDZJT5QrGbPQJlX0%3D">redirected</a>.</body></html>mbair:Boot2Docker greg$
mbair:Boot2Docker greg$ ls
README.md   definition.cfg  play_docker validate
common.cfg  iso     postinstall
mbair:Boot2Docker greg$ cp /Users/greg/Downloads/boot2docker.iso iso/
mbair:Boot2Docker greg$ ls iso
boot2docker.iso

Worked.

mbair:Boot2Docker greg$ vbkick build boot2docker
[INFO] Loading "definition.cfg" definition...
Virtual machine 'boot2docker' is created and registered.
UUID: 4d39af3e-e3c5-46a4-8828-d8bb39d50f74
Settings file: '/Users/greg/VirtualBox VMs/boot2docker/boot2docker.vbox'
0%...
Progress state: VBOX_E_FILE_ERROR
VBoxManage: error: Failed to create hard disk
VBoxManage: error: Could not create the medium storage unit '/Users/greg/VirtualBox VMs/boot2docker/boot2docker-2.vdi'.
VBoxManage: error: VDI: cannot create image '/Users/greg/VirtualBox VMs/boot2docker/boot2docker-2.vdi' (VERR_ALREADY_EXISTS)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component Medium, interface IMedium
VBoxManage: error: Context: "int handleCreateHardDisk(HandlerArg*)" at line 391 of file VBoxManageDisk.cpp
Waiting for VM "boot2docker" to power on...
VM "boot2docker" has been successfully started.
[INFO] Sending keyboard scancodes:
[INFO] Sleeping 10 seconds ...
wilas commented 10 years ago

1) problem with getting boot2docker iso Could you please run these commands:

curl -Lks "https://api.github.com/repos/boot2docker/boot2docker/releases" | grep -o -m 1 "\"tag_name\":[ ]*\"[a-z0-9.]*\""
curl -Lks "https://api.github.com/repos/boot2docker/boot2docker/releases" | grep -o -m 1 "\"tag_name\":[ ]*\"[a-z0-9.]*\"" | cut -d':' -f 2 | tr -d ' "'
curl -Lks "https://api.github.com/repos/boot2docker/boot2docker/releases" | grep "\"tag_name\":[ ]*\"[a-z0-9.]*\"" | sed 's/.*\(v[0-9.][0-9.]*\).*/\1/g' | head -1

Or better try a fresh Boot2Docker template - git pull in your local forge repo.

2) build problem You need to destroy old boot2docker VM. You may need manually remove the already existing disk: /Users/greg/VirtualBox VMs/boot2docker/boot2docker-2.vdi The v0.6 was less atomic and failure during the VM creation wasn't autoclean.

BTW: base on boot_file="%SRCPATH%/boot2docker-${latest_release}.iso" from the definition file manually downloaded iso should be named as iso/boot2docker-v0.9.1.iso

gregelin commented 10 years ago

commands run:

mbair:tmp greg$ curl -Lks "https://api.github.com/repos/boot2docker/boot2docker/releases" | grep -o -m 1 "\"tag_name\":[ ]*\"[a-z0-9.]*\""
"tag_name": "v0.9.1"
mbair:tmp greg$ curl -Lks "https://api.github.com/repos/boot2docker/boot2docker/releases" | grep -o -m 1 "\"tag_name\":[ ]*\"[a-z0-9.]*\"" | cut -d':' -f 2 | tr -d ' "'
v0.9.1
mbair:tmp greg$ curl -Lks "https://api.github.com/repos/boot2docker/boot2docker/releases" | grep "\"tag_name\":[ ]*\"[a-z0-9.]*\"" | sed 's/.*\(v[0-9.][0-9.]*\).*/\1/g' | head -1
v0.9.1
gregelin commented 10 years ago

Worked!

mbair:virtualmachines greg$ cd vbkick-templates-forge/
mbair:vbkick-templates-forge greg$ ls
Boot2Docker DebianJessie    DebianSid   LICENSE     Mer     NemoMobile  PlasmaActive    README.md   SmartOS     Ubuntu14.04
mbair:vbkick-templates-forge greg$ git pull
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 8 (delta 6), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.
From https://github.com/wilas/vbkick-templates-forge
   370d349..ac0bd95  master     -> origin/master
Updating 370d349..ac0bd95
Fast-forward
 Boot2Docker/common.cfg | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
mbair:vbkick-templates-forge greg$ cd ../Boot2Docker/
mbair:Boot2Docker greg$ vbkick destroy boot2docker
[ERROR] 'boot2docker' doesn't exist
mbair:Boot2Docker greg$ # manually deleted in VBox ui.
mbair:Boot2Docker greg$ ls ~/.V
.vagrant.d/   .viminfo      .virtualenvs/
mbair:Boot2Docker greg$ ls /Users/greg/VirtualBox\ VMs/
b2d                             newVM
govready-centos6.5_x86-64-min                   
mbair:Boot2Docker greg$ cd ..
mbair:virtualmachines greg$ rm -rf Boot2Docker/
mbair:virtualmachines greg$ cp -R vbkick-templates-forge/Boot2Docker ./
mbair:virtualmachines greg$ cd Boot2Docker/
mbair:Boot2Docker greg$ ls
README.md   common.cfg  definition.cfg  play_docker postinstall validate
mbair:Boot2Docker greg$ vbkick build boot2docker
[INFO] Loading "definition.cfg" definition...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   344  100   344    0     0   1477      0 --:--:-- --:--:-- --:--:--  1482
100 22.0M  100 22.0M    0     0  1503k      0  0:00:14  0:00:14 --:--:-- 1620k
Virtual machine 'boot2docker' is created and registered.
UUID: 77bd658c-6408-46b8-809c-330636988836
Settings file: '/Users/greg/VirtualBox VMs/boot2docker/boot2docker.vbox'
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: a0aaae44-d55d-4957-af28-f18d32aaa01c
Waiting for VM "boot2docker" to power on...
VM "boot2docker" has been successfully started.
[INFO] Sending keyboard scancodes:
[INFO] Sleeping 10 seconds ...
mbair:Boot2Docker greg$