From bd79380d1c899e11abb1b843b23a0a1159251960 Mon Sep 17 00:00:00 2001 From: Daniel Mikula Date: Mon, 22 May 2023 16:02:11 +0200 Subject: [PATCH] docker setup --- Dockerfile | 8 ++++ README.md | 32 +++++++++++--- script.sh | 96 ---------------------------------------- setup.sh | 128 ----------------------------------------------------- 4 files changed, 34 insertions(+), 230 deletions(-) create mode 100644 Dockerfile delete mode 100644 script.sh delete mode 100755 setup.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4ebf610 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM jenkins/jenkins:lts-jdk11 +USER root +RUN apt-get update && apt-get install -y lsb-release +RUN curl -fsSlo /usr/share/keyrings/docker-archive-keyring.asc https://download.docker.com/linux/debian/gpg +RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.asc] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/resources.list.d/docker.list +RUN apt-get update && apt-get install -y docker-ce-cli +USER jenkins +RUN jenkins-plugin-cli --plugins "blueocean:1.25.3 docker-workflow:1.28" \ No newline at end of file diff --git a/README.md b/README.md index 8067471..77c1009 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,34 @@ -# k3s and Application Installer +# Local Jenkins Setup -Installs k3s and a application on target machine. -For now only application ```sock_shop``` is supported. +Creates a Jenkins image and launches a local Jenkins container for pipeline development Usage: ``` -./setup.sh -a sock_shop +docker build -t jenkins-blueocean:2.332.3-1 . ``` -Help: +Create network ``` -./setup.sh -h +docker network create jenkins +``` + +Run the container: +``` +docker run --name jenkins-blueocean --restart=on-failure --detach \ + --network jenkins --env DOCKER_HOST=tcp://docker:2376 \ + --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \ + --publish 8080:8080 --publish 50000:50000 \ + --volume jenkins-data:/var/jenkins_home \ + --volume jenkins-docker-certs:/certs/client:ro \ + myjenkins-blueocean:2.332.3-1 +``` + +Get Jenkins Password +``` +docker exec jenkins-blueocean cat /var/jenkins_home/secrets/initialAdminPassword +``` + +Connect to Jenkins: +``` +https://localhost:8080/ ``` \ No newline at end of file diff --git a/script.sh b/script.sh deleted file mode 100644 index d8e05e5..0000000 --- a/script.sh +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/sh - - -# Author : NTT Data AG -# Date : 11-05-2023 - - -# update resources -function update { - -} - - -# install necessary packages -function install_resources { - sudo dnf install -y container-selinux - sudo dnf install -y https://rpm.rancher.io/k3s/stable/common/centos/8/noarch/k3s-selinux-1.2-2.el8.noarch.rpm -} - - -# install k3s -# docs: https://docs.k3s.io/installation/configuration -function get_k3s { - sudo curl -sfL https://get.k3s.io | INSTALL_K3S_SYMLINK="skip" K3S_KUBECONFIG_MODE="644" INSTALL_K3S_EXEC="--disable=traefik" sh - - export KUBECONFIG=/etc/rancher/k3s/k3s.yaml - k3s kubectl get pods -A -} - - -# fetch helm resources -# docs: https://helm.sh/docs/intro/install/ -function install_helm { - curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 - chmod 700 get_helm.sh - ./get_helm.sh -} - - -git -https://www.liquidweb.com/kb/how-to-install-and-configure-git-on-fedora-22/#:~:text=1%20Introduction.%20Git%20is%20a%20widely%20adopted%2C%20distributed,for%20git.%20Using%20the%20%E2%80%93global%20option...%20More%20 - -sudo dnf -y update -sudo dnf -y install git - - -checkout sockshop -https://microservices-demo.github.io/deployment/kubernetes-start.html - -git clone https://github.com/microservices-demo/microservices-demo.git -k3s kubectl create namespace sock-shop -k3s kubectl apply -f complete-demo.yaml - - -other -k3s kubectl get pods -n sock-shop - - - -function get_k3s { - -  write_progress "Installing K3s (${K3SVERSION}) with NGINX instead of Traefik Ingress" - -  curl -sfL https://get.k3s.io | INSTALL_K3S_CHANNEL="${K3SVERSION}" INSTALL_K3S_SYMLINK="skip" K3S_KUBECONFIG_MODE="644" INSTALL_K3S_EXEC="--disable=traefik" sh - - - - - -  # set the kubeconfig - -  export KUBECONFIG=/etc/rancher/k3s/k3s.yaml - -  kubectl get pods -A - - - - -  # install ingress nginx - -  helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx - -  helm repo update - - - - -  echo "####### EW " - -  helm install ingress-nginx ingress-nginx/ingress-nginx --version="${NGINX_INGRESS_VERSION}" - - - - -  # wait for nginx to be ready - - -} \ No newline at end of file diff --git a/setup.sh b/setup.sh deleted file mode 100755 index 7a153d7..0000000 --- a/setup.sh +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/sh - -# Author : NTT Data AG -# Date : 11-05-2023 - -helm_install=false -app_name="" - -# fetch helm resources -# docs: https://helm.sh/docs/intro/install/ -install_helm () { - # curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 - # chmod 700 get_helm.sh - # ./get_helm.sh - echo "Helm not support yet." - exit 1 -} - -# install resources -# TODO: check if this works -install_k3s () { - sudo dnf install -y container-selinux - sudo dnf install -y https://rpm.rancher.io/k3s/stable/common/centos/8/noarch/k3s-selinux-1.2-2.el8.noarch.rpm - - get_k3s -} - -# install k3s -# docs: https://docs.k3s.io/installation/configuration -get_k3s () { - sudo curl -sfL https://get.k3s.io | INSTALL_K3S_SYMLINK="skip" K3S_KUBECONFIG_MODE="644" INSTALL_K3S_EXEC="--disable=traefik" sh - - export KUBECONFIG=/etc/rancher/k3s/k3s.yaml - kubectl get pods -A -} - -# install git -install_git () { - sudo dnf -y update - sudo dnf -y install git -} - -install_sock_shop () { - git clone https://github.com/microservices-demo/microservices-demo.git - cd microservices-demo/deploy/kubernetes - kubectl create namespace sock-shop - kubectl apply -f complete-demo.yaml - echo "Getting Pods from sock-shop namespace" - kubectl get pods -n sock-shop - # TODO: create check if list with pods returns and if they are ready -} - -show_help() { - cat < Specify the app name -EOF -} - -show_allowed_apps () { - cat <