web-dev-qa-db-ja.com

jenkinsビルド中にAndroidエミュレーターを実行中

Jenkinsをインストールし、ビルド中にエミュレーターを実行してビルドジョブを構成しました。しかし、ジョブを実行すると、jenkinsユーザーにkvmを実行する権限がないというエラーメッセージが表示されます。どうすれば修正できますか。

$ Android list target
[Android] Using Android SDK: /opt/Android/sdk
$ adb start-server
* daemon not running. starting it now on port 5973 *
* daemon started successfully *
$ adb start-server
[Android] Starting Android emulator
[Android] Erasing existing emulator data...
$ emulator -ports 5971,5972 -prop persist.sys.language=en -prop persist.sys.country=US -avd hudson_en-US_160_1024x768_Android-15_x86 -no-snapshot-load -no-snapshot-save -wipe-data
emulator: ERROR: x86 emulation currently requires hardware acceleration!
Please ensure KVM is properly installed and usable.
CPU acceleration status: This user doesn't have permissions to use KVM (/dev/kvm).
[Android] Emulator did not appear to start; giving up
$ adb disconnect localhost:5972
[Android] Stopping Android emulator
$ adb kill-server

権限

$ ls -l /dev/kvm
crw-rw----+ 1 root root 10, 232 May  6 13:46 /dev/kvm

$ groups jenkins
jenkins : jenkins
15
Viktor K

私はなんとか問題を解決することができました。

  1. Qemu-KVMとcpu-checkerをインストールします

    apt-get install qemu-kvm cpu-checker

  2. KVMが利用可能かどうかを確認します(jenkinsユーザーとして)

    $ kvm-ok INFO: /dev/kvm exists KVM acceleration can be used

  3. グループkvmを作成し、このグループにjenkinsを追加します

    addgroup kvm usermod -a -G kvm jenkins

  4. /dev/kvmのグループ所有権を変更します

    chgrp kvm /dev/kvm

  5. Udevルールを作成する

    $ Sudo nano /etc/udev/rules.d/60-qemu-kvm.rules KERNEL=="kvm", GROUP="kvm", MODE="0660"

  6. リブート

31
Viktor K

私のCI(gitlab)では、これはUbuntuではありませんでした

usermod -a -G kvm gitlab-runner

またはジェンキンスと

usermod -a -G kvm jenkins
0
hannes ach