在jenkins构建期间运行android emulator

在jenkins构建期间运行android emulator,jenkins,android-emulator,continuous-integration,kvm,Jenkins,Android Emulator,Continuous Integration,Kvm,我已经安装了Jenkins,并在构建期间配置了一个运行emulator的构建作业。但当我执行作业时,会收到错误消息,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 succes

我已经安装了Jenkins,并在构建期间配置了一个运行emulator的构建作业。但当我执行作业时,会收到错误消息,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

我已经设法解决了这个问题

  • 安装Qemu KVM和cpu检查器:
    sudo apt安装qemu kvm cpu检查器
  • 检查KVM是否可用(作为
    jenkins
    user):
    $kvm正常

    信息:/dev/kvm存在
    可以使用kvm加速
  • 创建组kvm并将
    jenkins
    添加到此组:
    addgroup kvm

    usermod-a-G kvm-jenkins
  • 更改
    /dev/kvm
    的组所有权:
    chgrp kvm/dev/kvm
  • 创建udev规则:
    $sudo nano/etc/udev/rules.d/60 qemu kvm.rules

    KERNEL==“kvm”,GROUP=“kvm”,MODE=“0660”
  • 重新启动
  • 在我的CI(gitlab)上,Ubuntu上没有这个

    usermod -a -G kvm gitlab-runner
    
    还是和詹金斯一起

    usermod -a -G kvm jenkins
    

    运行
    kvm ok
    并查看输出。是否
    INFO:/dev/kvm存在可以使用kvm加速
    INFO:CPU不支持kvm扩展不能使用kvm加速
    ?也可能是
    进入您的BIOS设置并启用虚拟化技术
    ,然后您应该按照上面所说的那样做:)正如您所展示的,只有
    root
    有权访问
    /dev/kvm
    ,并且
    jenkins
    不在
    root
    组中。请参阅。在ubuntu中,您还应该将
    jenkins
    用户添加到
    libvirt
    组中。