diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 71b8288..b95bdf8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,6 +6,9 @@ stages: - build - readme +variables: + DOCKER_AUTH_CONFIG: ${_DOCKER_AUTH_CONFIG} + before_script: - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD - export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed -r 's#^release/##' | sed 's/\//_/g')" @@ -14,17 +17,23 @@ before_script: # Jobs for the develop and release branches. They should push to the private and public repos build_ubuntu_bionic: stage: build + image: ${ORG_NAME}/docker-buildx-private:develop + variables: + BUILD_PLATFORMS: "linux/amd64,linux/arm64" script: - - docker build -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core . - - docker push ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH - - docker push ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH - - docker push ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_BRANCH - - docker push ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH + # get qemu ready + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + # prep the buildx env + - docker buildx create --use + # build for multiple architectures + - docker buildx build --push --platform $BUILD_PLATFORMS -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core . only: - develop - /^release\/.*$/ except: - schedules + tags: + - aws-autoscale build_cuda_bionic: stage: build @@ -40,6 +49,20 @@ build_cuda_bionic: except: - schedules +build_nvidia_focal: + stage: build + script: + - docker build -t ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_BRANCH -t ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-nvidia-focal:$SANITIZED_BRANCH -t ${ORG_NAME}/core-nvidia-focal:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=ubuntu:20.04"" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core-nvidia . + - docker push ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_BRANCH + - docker push ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_ROLLING_BRANCH + - docker push ${ORG_NAME}/core-nvidia-focal:$SANITIZED_BRANCH + - docker push ${ORG_NAME}/core-nvidia-focal:$SANITIZED_ROLLING_BRANCH + only: + - develop + - /^release\/.*$/ + except: + - schedules + build_remnux_bionic: stage: build script: @@ -87,13 +110,22 @@ build_centos: # These jobs should run on the feature/bugfix branches - anything that is not the develop or release branches. It should only push images to the private repos build_ubuntu_bionic_dev: + image: ${ORG_NAME}/docker-buildx-private:develop stage: build + variables: + BUILD_PLATFORMS: "linux/amd64,linux/arm64" script: - - docker build -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core . - - docker push ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH + # get qemu ready + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + # prep the buildx env + - docker buildx create --use + # build for multiple architectures + - docker buildx build --push --platform $BUILD_PLATFORMS -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core . except: - develop - /^release\/.*$/ + tags: + - aws-autoscale build_cuda_bionic_dev: @@ -105,6 +137,15 @@ build_cuda_bionic_dev: - develop - /^release\/.*$/ +build_nvidia_focal_dev: + stage: build + script: + - docker build -t ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_BRANCH --build-arg BASE_IMAGE="ubuntu:20.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core-nvidia . + - docker push ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_BRANCH + except: + - develop + - /^release\/.*$/ + build_remnux_bionic_dev: stage: build script: @@ -137,12 +178,20 @@ build_centos_dev: # These jobs are for the "rolling" release of the images. They should only run for scheduled jobs and should only push the rolling tags build_ubuntu_bionic_scheduled: stage: build + image: ${ORG_NAME}/docker-buildx-private:develop + variables: + BUILD_PLATFORMS: "linux/amd64,linux/arm64" script: - - docker build -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core . - - docker push ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH - - docker push ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH + # get qemu ready + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + # prep the buildx env + - docker buildx create --use + # build for multiple architectures + - docker buildx build --push --platform $BUILD_PLATFORMS -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core . only: - schedules + tags: + - aws-autoscale build_cuda_bionic_schedules: stage: build @@ -153,6 +202,15 @@ build_cuda_bionic_schedules: only: - schedules +build_nvidia_focal_schedules: + stage: build + script: + - docker build -t ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-nvidia-focal:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE="ubuntu:20.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core-nvidia . + - docker push ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_ROLLING_BRANCH + - docker push ${ORG_NAME}/core-nvidia-focal:$SANITIZED_ROLLING_BRANCH + only: + - schedules + build_remnux_bionic_schedules: stage: build script: @@ -190,8 +248,8 @@ update_readmes: - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@${README_TEMPLATE_REPO} - sed -e "/{about}/r docs/$KASM_IMAGE/README.md" -e "/{about}/d" dockerhub-readme-template/TEMPLATE.md > docs/$KASM_IMAGE/FULL_README.md - cat docs/$KASM_IMAGE/FULL_README.md - - docker run -v $PWD:/workspace -e DOCKER_USERNAME="$README_USERNAME" -e DOCKER_PASSWORD="$README_PASSWORD" -e DOCKERHUB_REPOSITORY="${ORG_NAME}/$KASM_IMAGE-private" -e README_FILEPATH="/workspace/docs/$KASM_IMAGE/FULL_README.md" -e DESCRIPTION_FILEPATH="/workspace/docs/$KASM_IMAGE/description.txt" kasmweb/dockerhub-updater:latest - - docker run -v $PWD:/workspace -e DOCKER_USERNAME="$README_USERNAME" -e DOCKER_PASSWORD="$README_PASSWORD" -e DOCKERHUB_REPOSITORY="${ORG_NAME}/$KASM_IMAGE" -e README_FILEPATH="/workspace/docs/$KASM_IMAGE/FULL_README.md" -e DESCRIPTION_FILEPATH="/workspace/docs/$KASM_IMAGE/description.txt" kasmweb/dockerhub-updater:latest + - docker run -v $PWD:/workspace -e DOCKER_USERNAME="$README_USERNAME" -e DOCKER_PASSWORD="$README_PASSWORD" -e DOCKERHUB_REPOSITORY="${ORG_NAME}/$KASM_IMAGE-private" -e README_FILEPATH="/workspace/docs/$KASM_IMAGE/FULL_README.md" -e DESCRIPTION_FILEPATH="/workspace/docs/$KASM_IMAGE/description.txt" ${ORG_NAME}/dockerhub-updater:latest + - docker run -v $PWD:/workspace -e DOCKER_USERNAME="$README_USERNAME" -e DOCKER_PASSWORD="$README_PASSWORD" -e DOCKERHUB_REPOSITORY="${ORG_NAME}/$KASM_IMAGE" -e README_FILEPATH="/workspace/docs/$KASM_IMAGE/FULL_README.md" -e DESCRIPTION_FILEPATH="/workspace/docs/$KASM_IMAGE/description.txt" ${ORG_NAME}/dockerhub-updater:latest only: variables: @@ -199,4 +257,4 @@ update_readmes: - $README_PASSWORD parallel: matrix: - - KASM_IMAGE: [core-centos-7, core-kali-rolling, core-remnux-bionic, core-cuda-bionic, core-ubuntu-bionic] + - KASM_IMAGE: [core-centos-7, core-kali-rolling, core-remnux-bionic, core-cuda-bionic, core-ubuntu-bionic, core-nvidia-focal] diff --git a/dockerfile-kasm-core b/dockerfile-kasm-core index ef4aac4..68f39a0 100644 --- a/dockerfile-kasm-core +++ b/dockerfile-kasm-core @@ -2,22 +2,13 @@ ARG BASE_IMAGE="ubuntu:18.04" FROM $BASE_IMAGE AS install_tools ARG DISTRO=ubuntu -### Install common tools - -COPY ./src/ubuntu/install/tools $INST_SCRIPTS/tools/ -RUN bash $INST_SCRIPTS/tools/install_tools.sh && rm -rf $INST_SCRIPTS/tools/ - -FROM install_tools AS squid_builder - -### Build Squid -RUN wget 'https://kasmweb-build-artifacts.s3.amazonaws.com/kasm-squid-builder/a590f319f328a8a576cb966c2db5ec4a5b3b7b9b/output/kasm-squid-builder_ubuntu.tar.gz' -RUN tar -xzf kasm-squid-builder_ubuntu.tar.gz -C / - -FROM install_tools - MAINTAINER Kasm Tech "info@kasmweb.com" LABEL "com.kasmweb.image"="true" +### Install common tools +COPY ./src/ubuntu/install/tools $INST_SCRIPTS/tools/ +RUN bash $INST_SCRIPTS/tools/install_tools.sh && rm -rf $INST_SCRIPTS/tools/ + ### Environment config ARG START_XFCE4=0 ARG START_PULSEAUDIO=0 @@ -45,7 +36,7 @@ ENV DISPLAY=:1 \ VNC_RESOLUTION=1280x1024 \ VNC_PW=vncpassword \ VNC_VIEW_ONLY_PW=vncviewonlypassword \ - LD_LIBRARY_PATH=/usr/local/lib/ \ + LD_LIBRARY_PATH=/opt/libjpeg-turbo/lib64/:/usr/local/lib/ \ OMP_WAIT_POLICY=PASSIVE \ SHELL=/bin/bash \ START_XFCE4=$START_XFCE4 \ @@ -102,9 +93,6 @@ RUN bash $INST_SCRIPTS/audio_input/install_audio_input.sh && rm -rf $INST_SCRIPT COPY ./src/ubuntu/install/cursors $INST_SCRIPTS/cursors/ RUN bash $INST_SCRIPTS/cursors/install_cursors.sh && rm -rf $INST_SCRIPTS/cursors/ -### Copy built Squid -COPY --from=squid_builder /usr/local/squid /usr/local/squid - ### Install Squid COPY ./src/ubuntu/install/squid/install/ $INST_SCRIPTS/squid_install/ RUN bash $INST_SCRIPTS/squid_install/install_squid.sh && rm -rf $INST_SCRIPTS/squid_install/ diff --git a/dockerfile-kasm-core-gpu b/dockerfile-kasm-core-nvidia similarity index 86% rename from dockerfile-kasm-core-gpu rename to dockerfile-kasm-core-nvidia index 8e71bc8..c93bbc5 100644 --- a/dockerfile-kasm-core-gpu +++ b/dockerfile-kasm-core-nvidia @@ -1,9 +1,7 @@ -ARG BASE_IMAGE="nvidia/opengl:1.2-glvnd-runtime-ubuntu20.04" +ARG BASE_IMAGE="ubuntu:focal" FROM $BASE_IMAGE AS install_tools -ARG DISTRO=ubuntu ### Install common tools - COPY ./src/ubuntu/install/tools $INST_SCRIPTS/tools/ RUN bash $INST_SCRIPTS/tools/install_tools.sh && rm -rf $INST_SCRIPTS/tools/ @@ -52,8 +50,7 @@ ENV DISPLAY=:1 \ START_PULSEAUDIO=$START_PULSEAUDIO \ LANG=$LANG \ LANGUAGE=$LANGUAGE \ - LC_ALL=$LC_ALL \ - NVIDIA_DRIVER_CAPABILITIES=$NVIDIA_DRIVER_CAPABILITIES,graphics,compat32 + LC_ALL=$LC_ALL EXPOSE $VNC_PORT \ $NO_VNC_PORT \ @@ -63,6 +60,25 @@ EXPOSE $VNC_PORT \ WORKDIR $HOME RUN mkdir -p $HOME/Desktop +# NVIDIA SETUP +RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ + echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf +ENV LD_LIBRARY_PATH /usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}:/usr/local/nvidia/lib:/usr/local/nvidia/lib64 +ENV NVIDIA_DRIVER_CAPABILITIES=${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics,compat32,utility +RUN dpkg --add-architecture i386 && \ + apt-get update && apt-get install -y --no-install-recommends \ + libxau6 libxau6:i386 \ + libxdmcp6 libxdmcp6:i386 \ + libxcb1 libxcb1:i386 \ + libxext6 libxext6:i386 \ + libx11-6 libx11-6:i386 +RUN apt-get update && apt-get install -y --no-install-recommends \ + libglvnd0 libglvnd0:i386 \ + libgl1 libgl1:i386 \ + libglx0 libglx0:i386 \ + libegl1 libegl1:i386 \ + libgles2 libgles2:i386 +COPY src/ubuntu/install/nvidia/10_nvidia.json /usr/share/glvnd/egl_vendor.d/10_nvidia.json ### Install custom fonts COPY ./src/ubuntu/install/fonts $INST_SCRIPTS/fonts/ @@ -119,16 +135,11 @@ RUN rm -rf $INST_SCRIPTS/resources/ RUN chmod +x /etc/squid/kasm_squid_adapter RUN chmod +x /etc/squid/start_squid.sh && chmod 4755 /etc/squid/start_squid.sh -### Setup Container User - Libnss Wrapper -#COPY ./src/ubuntu/install/libnss $INST_SCRIPTS/libnss/ -#RUN bash $INST_SCRIPTS/libnss/libnss_wrapper.sh && rm -rf $INST_SCRIPTS/libnss/ - ### configure startup COPY ./src/common/scripts/kasm_hook_scripts $STARTUPDIR ADD ./src/common/startup_scripts $STARTUPDIR RUN bash $STARTUPDIR/set_user_permission.sh $STARTUPDIR $HOME - ### extra configurations needed per distro variant COPY ./src/ubuntu/install/extra $INST_SCRIPTS/extra/ RUN bash $INST_SCRIPTS/extra/$EXTRA_SH && rm -rf $INST_SCRIPTS/extra/ diff --git a/docs/core-nvidia-focal/README.md b/docs/core-nvidia-focal/README.md new file mode 100644 index 0000000..dfd1f55 --- /dev/null +++ b/docs/core-nvidia-focal/README.md @@ -0,0 +1,7 @@ +# About This Image + +This image contains a browser-accessible version of Ubuntu Focal Desktop with GPU Acceleration. Requires a compatible Nvidia + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://f.hubspotusercontent30.net/hubfs/5856039/dockerhub/image-screenshots/core-cuda-bionic.png "Image Screenshot" diff --git a/docs/core-nvidia-focal/description.txt b/docs/core-nvidia-focal/description.txt new file mode 100644 index 0000000..8651646 --- /dev/null +++ b/docs/core-nvidia-focal/description.txt @@ -0,0 +1 @@ +Base image for Kasm Workspaces with 3D GPU Acceleration for compatible Nvidia based GPUs. diff --git a/src/common/startup_scripts/vnc_startup.sh b/src/common/startup_scripts/vnc_startup.sh index 8926364..fbc2976 100644 --- a/src/common/startup_scripts/vnc_startup.sh +++ b/src/common/startup_scripts/vnc_startup.sh @@ -57,7 +57,7 @@ function start_kasmvnc (){ rm -rf $HOME/.vnc/*.pid - vncserver $DISPLAY -depth $VNC_COL_DEPTH -geometry $VNC_RESOLUTION -websocketPort $NO_VNC_PORT -cert ${HOME}/.vnc/self.pem -httpd ${KASM_VNC_PATH}/www -sslOnly -FrameRate=$MAX_FRAME_RATE -interface 0.0.0.0 $VNCOPTIONS + vncserver $DISPLAY -depth $VNC_COL_DEPTH -geometry $VNC_RESOLUTION -websocketPort $NO_VNC_PORT -cert ${HOME}/.vnc/self.pem -httpd ${KASM_VNC_PATH}/www -sslOnly -FrameRate=$MAX_FRAME_RATE -interface 0.0.0.0 $VNCOPTIONS $KASM_SVC_SEND_CUT_TEXT $KASM_SVC_ACCEPT_CUT_TEXT KASM_PROCS['kasmvnc']=$(cat $HOME/.vnc/*${DISPLAY_NUM}.pid) @@ -98,11 +98,11 @@ function start_audio_out (){ if [[ $DEBUG == true ]]; then echo 'Starting audio service in debug mode' - no_proxy=127.0.0.1 ffmpeg -f pulse -ar 44100 -i default -f mpegts -correct_ts_overflow 0 -codec:a mp2 -b:a 128k -ac 1 -muxdelay 0.001 http://127.0.0.1:8081/kasmaudio & + no_proxy=127.0.0.1 ffmpeg -f pulse -fragment_size ${PULSEAUDIO_FRAGMENT_SIZE:-2000} -ar 44100 -i default -f mpegts -correct_ts_overflow 0 -codec:a mp2 -b:a 128k -ac 1 -muxdelay 0.001 http://127.0.0.1:8081/kasmaudio & KASM_PROCS['kasm_audio_out']=$! else echo 'Starting audio service' - no_proxy=127.0.0.1 ffmpeg -v verbose -f pulse -ar 44100 -i default -f mpegts -correct_ts_overflow 0 -codec:a mp2 -b:a 128k -ac 1 -muxdelay 0.001 http://127.0.0.1:8081/kasmaudio > /dev/null 2>&1 & + no_proxy=127.0.0.1 ffmpeg -v verbose -f pulse -fragment_size ${PULSEAUDIO_FRAGMENT_SIZE:-2000} -ar 44100 -i default -f mpegts -correct_ts_overflow 0 -codec:a mp2 -b:a 128k -ac 1 -muxdelay 0.001 http://127.0.0.1:8081/kasmaudio > /dev/null 2>&1 & KASM_PROCS['kasm_audio_out']=$! echo -e "\n------------------ Started Audio Out ----------------------------" echo "Kasm Audio Out PID: ${KASM_PROCS['kasm_audio_out']}"; @@ -211,7 +211,7 @@ if [ -f "$custom_startup_script" ]; then exit 1 fi - "$custom_startup_script" || true + "$custom_startup_script" & fi # Monitor Kasm Services diff --git a/src/ubuntu/install/kasm_vnc/install_kasm_vnc.sh b/src/ubuntu/install/kasm_vnc/install_kasm_vnc.sh index 30d40c7..44b129f 100644 --- a/src/ubuntu/install/kasm_vnc/install_kasm_vnc.sh +++ b/src/ubuntu/install/kasm_vnc/install_kasm_vnc.sh @@ -1,26 +1,50 @@ #!/usr/bin/env bash set -e +install_libjpeg_turbo() { + local libjpeg_deb=libjpeg-turbo.deb + + wget "https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/output/${UBUNTU_CODENAME}/libjpeg-turbo_2.1.2_amd64.deb" -O "$libjpeg_deb" + apt-get install -y "./$libjpeg_deb" + rm "$libjpeg_deb" +} + echo "Install KasmVNC server" cd /tmp + +BUILD_ARCH=$(uname -p) +UBUNTU_CODENAME=$(grep -Po -m 1 "(?<=_CODENAME=)\w+" /etc/os-release) +COMMIT_ID="986c635cd3cbd468f5fd4a67ddaa9566b6e6e64f" +BRANCH="feature_KASM-2119_focal" +COMMIT_ID_SHORT=$(echo "${COMMIT_ID}" | cut -c1-6) + if [ "${DISTRO}" == "kali" ] ; then - BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/bcad19542e02921f1f275532cc7854559d737cb5/kasmvncserver_kali-rolling_0.9.3_master_bcad19_amd64.deb" + BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_kali-rolling_0.9.3_${BRANCH}_${COMMIT_ID_SHORT}_amd64.deb" elif [ "${DISTRO}" == "centos" ] ; then - BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/bcad19542e02921f1f275532cc7854559d737cb5/output/centos_core/kasmvncserver-0.9.1~beta-1.el7.x86_64.rpm" + BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/output/centos_core/kasmvncserver-0.9.1~beta-1.el7.x86_64.rpm" else - UBUNTU_CODENAME=$(grep -Po -m 1 "(?<=_CODENAME=)\w+" /etc/os-release) - BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/bcad19542e02921f1f275532cc7854559d737cb5/kasmvncserver_${UBUNTU_CODENAME}_0.9.3_master_bcad19_amd64.deb" + if [[ "${BUILD_ARCH}" =~ ^aarch64$ ]] ; then + BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_${UBUNTU_CODENAME}_0.9.3_${BRANCH}_${COMMIT_ID_SHORT}_arm64.deb" + elif [ "${UBUNTU_CODENAME}" == "bionic" ] ; then + BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_${UBUNTU_CODENAME}_0.9.3_${BRANCH}_${COMMIT_ID_SHORT}_libjpeg-turbo-latest_amd64.deb" + else + BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_${UBUNTU_CODENAME}_0.9.3_${BRANCH}_${COMMIT_ID_SHORT}_amd64.deb" + fi fi if [ "${DISTRO}" == "centos" ] ; then - wget $BUILD_URL -O kasmvncserver.rpm + wget "${BUILD_URL}" -O kasmvncserver.rpm yum localinstall -y kasmvncserver.rpm rm kasmvncserver.rpm else - wget $BUILD_URL -O kasmvncserver.deb + if [[ "${UBUNTU_CODENAME}" = "bionic" ]] && [[ ! "$BUILD_ARCH" =~ ^aarch64$ ]] ; then + install_libjpeg_turbo + fi + + wget "${BUILD_URL}" -O kasmvncserver.deb apt-get update apt-get install -y gettext ssl-cert diff --git a/src/ubuntu/install/nvidia/10_nvidia.json b/src/ubuntu/install/nvidia/10_nvidia.json new file mode 100644 index 0000000..10044b5 --- /dev/null +++ b/src/ubuntu/install/nvidia/10_nvidia.json @@ -0,0 +1,7 @@ +{ + "file_format_version" : "1.0.0", + "ICD" : { + "library_path" : "libEGL_nvidia.so.0" + } +} + diff --git a/src/ubuntu/install/squid/install/install_squid.sh b/src/ubuntu/install/squid/install/install_squid.sh index e8eafbd..1c95ee3 100644 --- a/src/ubuntu/install/squid/install/install_squid.sh +++ b/src/ubuntu/install/squid/install/install_squid.sh @@ -1,8 +1,18 @@ -# update squid conf with user info +#!/bin/bash set -ex ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g') +# intall squid +SQUID_COMMIT='6392f7dfb1040c67c0a5d5518abf508282523cc0' +SQUID_DISTRO=${DISTRO} +# currently all distros use the ubuntu build of squid except centos +if [ ! "${SQUID_DISTRO}" == "centos" ] ; then + SQUID_DISTRO="ubuntu" +fi +wget -qO- "https://kasmweb-build-artifacts.s3.amazonaws.com/kasm-squid-builder/${SQUID_COMMIT}/output/kasm-squid-builder_${SQUID_DISTRO}_${ARCH}.tar.gz" | tar -xzf - -C / + +# update squid conf with user info if [ "$DISTRO" = centos ]; then useradd --system --shell /usr/sbin/nologin --home-dir /bin proxy fi @@ -42,8 +52,7 @@ log_level: 5 sasldb_path: /etc/sasl2/memcached-sasldb2 EOL - -KASM_SQUID_ADAPTER=https://kasmweb-build-artifacts.s3.amazonaws.com/kasm_squid_adapter/d03389153257831e2378a3629c560e4d34f7e772/kasm_squid_adapter_${DISTRO/kali/ubuntu}_${ARCH}_develop.d03389.tar.gz +KASM_SQUID_ADAPTER=https://kasmweb-build-artifacts.s3.amazonaws.com/kasm_squid_adapter/faec132e9797ebf09cfa58bd59b60c77b0b1a64b/kasm_squid_adapter_${DISTRO/kali/ubuntu}_${ARCH}_develop.faec13.tar.gz wget -qO- ${KASM_SQUID_ADAPTER} | tar xz -C /etc/squid/ ls -la /etc/squid