2017-03-01 8 views
2

私はコンコースを使って悪影響ボックスを構築しようとしています。私は、コンコースのライトパイプを構築するためにコンコースのビルドパイプラインで使用されているconcourse/buildbox-ciイメージを使用しています。ConcourseタスクでVirtualBoxを実行する

パッカーを実行する前に、バーチャルボックスデバイスをホストデバイスと一致するように作成しています。それでもビルドがで失敗パッカー:

==> virtualbox-iso: Error starting VM: VBoxManage error: VBoxManage: error: The virtual machine 'packer-virtualbox-iso-1488205144' has terminated unexpectedly during startup with exit code 1 (0x1) 
==> virtualbox-iso: VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine 
  • は、誰かがこの作業を持っていますか?
  • コンコースhetznerワーカーの設定はどこからでもアクセスできますか?

追加の構成情報:コンコースジョブコンテナ内

# ls -al /dev/vboxdrv /dev/vboxdrvu /dev/vboxnetctl 
crw------- 1 root root 10, 53 Feb 27 14:19 /dev/vboxdrv 
crw------- 1 root root 10, 52 Feb 27 14:19 /dev/vboxdrvu 
crw------- 1 root root 10, 51 Feb 27 14:19 /dev/vboxnetctl 

ワーカーホスト上:

# ls -al /dev/vbox* 
crw------- 1 root root 10, 53 Feb 24 09:40 /dev/vboxdrv 
crw------- 1 root root 10, 52 Feb 24 09:40 /dev/vboxdrvu 
crw------- 1 root root 10, 51 Feb 24 09:40 /dev/vboxnetctl 

コンコースの仕事:

jobs: 
    - name: mpf 
    serial_groups: [build] 
    plan: 
     - get: vagrant 
     trigger: true 
     - get: version 
     resource: version-mpf 
     - task: build 
     privileged: true 
     file: vagrant/ci/tasks/build.yml 
     tags: [vm-builder] 
     params: 
      TEMPLATE_FILE: virtualbox-mpf.json 

浮浪者/ CI /スクリプト/ build.sh:

#!/bin/bash -ex 

mknod -m 0600 /dev/vboxdrv c 10 53 
mknod -m 0600 /dev/vboxdrvu c 10 52 
mknod -m 0600 /dev/vboxnetctl c 10 51 

for name in $(VBoxManage list hostonlyifs | grep '^Name:' | awk '{print $NF}'); do 
    VBoxManage hostonlyif remove $name 
done 

VERSION=$(cat version/version) 

packer build -var 'version=${VERSION}' vagrant/packer/${TEMPLATE_FILE} 

浮浪者/ CI /タスク/ build.yml:

--- 
platform: linux 

image_resource: 
    type: docker-image 
    source: {repository: concourse/buildbox-ci} 

inputs: 
    - name: vagrant 
    - name: version 

outputs: 
    - name: build 

run: 
    path: vagrant/ci/scripts/build.sh 

答えて

2

は残念ながらHETZNER労働者の構成は基本的にはちょうど私たちは定期的にVirtualBoxをアップグレードされており、落ちるときに物を固定する。 (編集:私たちはまた、ホストとコンテナ(この場合はArch Linux)で同じOSディストリビューションを使用することを確かめます。

VirtualBoxのバージョンがコンテナ内のバージョンと一致していることを確認します(パッチバージョンまで)。

デバイスID(10,53および10,52および10,51)もホスト上のデバイスIDと一致する必要があります。これらは、VirtualBoxのバージョンによって異なります。

また、ネットワークネームスペースを使用しない特別なバックエンドを使用するようにしてください。これは、ホストオンリーネットワークが必要なVMをスピンアップする場合に重要です。

このすべてのことは難しいです。 :/

+0

現在、私はUbuntu 16.04をホ​​ストとコンテナで実行していますが、これはどちらでも動作しません。私は時間を見つけたらアーチでこれを再び設定しようとします。それまでは、ファイルの周りにssh/scpを使って何かを試してみるつもりです。あなたのお返事ありがとうございます、そして、コンコースに感謝します。大好きです! –

関連する問題