From bbc6889169f5be0b2da8e193295d1d781fe12949 Mon Sep 17 00:00:00 2001 From: Todd Densmore <469399+tdensmore@users.noreply.github.com> Date: Wed, 9 Aug 2023 13:42:19 +0200 Subject: [PATCH 1/2] Adding repos --- instruqt-opensource/README.md | 3 + instruqt-pocs/README.md | 0 .../project-dev/01-project/assignment.md | 130 +++++++++++ .../01-project/setup-git-jenkins-server | 1 + .../project-dev/01-project/setup-local-system | 55 +++++ .../project-dev/01-project/setup-xlrelease | 217 ++++++++++++++++++ .../project-dev/02-heresthequiz/assignment.md | 14 ++ .../assets/DeveloperExperienceproject.png | Bin 0 -> 33133 bytes .../project-dev/assets/demo_playbook.png | Bin 0 -> 33265 bytes .../project-dev/assets/git_credentials.png | Bin 0 -> 52717 bytes instruqt-pocs/project-dev/config.yml | 36 +++ instruqt-pocs/project-dev/track.yml | 25 ++ .../track_scripts/setup-ansibletower | 0 .../track_scripts/setup-git-jenkins-server | 70 ++++++ .../track_scripts/setup-local-system | 4 + .../project-dev/track_scripts/setup-xlrelease | 1 + 16 files changed, 556 insertions(+) create mode 100644 instruqt-opensource/README.md create mode 100644 instruqt-pocs/README.md create mode 100755 instruqt-pocs/project-dev/01-project/assignment.md create mode 100755 instruqt-pocs/project-dev/01-project/setup-git-jenkins-server create mode 100755 instruqt-pocs/project-dev/01-project/setup-local-system create mode 100755 instruqt-pocs/project-dev/01-project/setup-xlrelease create mode 100755 instruqt-pocs/project-dev/02-heresthequiz/assignment.md create mode 100644 instruqt-pocs/project-dev/assets/DeveloperExperienceproject.png create mode 100644 instruqt-pocs/project-dev/assets/demo_playbook.png create mode 100644 instruqt-pocs/project-dev/assets/git_credentials.png create mode 100644 instruqt-pocs/project-dev/config.yml create mode 100755 instruqt-pocs/project-dev/track.yml create mode 100755 instruqt-pocs/project-dev/track_scripts/setup-ansibletower create mode 100755 instruqt-pocs/project-dev/track_scripts/setup-git-jenkins-server create mode 100755 instruqt-pocs/project-dev/track_scripts/setup-local-system create mode 100755 instruqt-pocs/project-dev/track_scripts/setup-xlrelease diff --git a/instruqt-opensource/README.md b/instruqt-opensource/README.md new file mode 100644 index 0000000..60ac0af --- /dev/null +++ b/instruqt-opensource/README.md @@ -0,0 +1,3 @@ +# Instruqt Open Source + +This project contains working tracks for open source projects. \ No newline at end of file diff --git a/instruqt-pocs/README.md b/instruqt-pocs/README.md new file mode 100644 index 0000000..e69de29 diff --git a/instruqt-pocs/project-dev/01-project/assignment.md b/instruqt-pocs/project-dev/01-project/assignment.md new file mode 100755 index 0000000..f8235ec --- /dev/null +++ b/instruqt-pocs/project-dev/01-project/assignment.md @@ -0,0 +1,130 @@ +--- +slug: project +id: hxl3epr8t4ss +type: challenge +title: XL release, Ansible Tower, Git Server and Jenkins +notes: +- type: text + contents: | + # **Overview of Developer Experience project** + + ![DeveloperExperienceproject.png](../assets/DeveloperExperienceproject.png) +tabs: +- title: git-shell + type: terminal + hostname: git-jenkins-server +- title: Shell-Local + type: terminal + hostname: local-system +- title: ansible + type: service + hostname: ansibletower + path: / + port: 443 +- title: xlrelease + type: service + hostname: xlrelease + path: / + port: 5516 + url: http://signin.aws.amazon.com/ +- title: jenkins + type: website + url: http://git-jenkins-server.${_SANDBOX_ID}.instruqt.io:8080 + new_window: true +difficulty: basic +timelimit: 600 +--- +We have preprovisioned 4 VM's Git Server & Jenkins, XL release, Ansible Tower and Client server. + +Ansible Tower +=== + +- Login to Ansible Tower with credentials: **username:** `admin` , **password:** `password` +- Open credentials tab, Click on the `+` button to add new credentials and enter the follwing details: +- **NAME**: `git` +- **CREDENTIAL TYPE**: `Source Control` +- **USERNAME**: `gituser` +- **PASSWORD**: `password`, +- Click **Enter** button on keyboard after providing password +- Or else Click on **save** to save the details. +![image.png](../assets/image.png) +## Open projects tab, Click on the Demo Project and edit the follwing details: + +- **SCM URL**: +``` +http://gituser@[[ Instruqt-Var key="url" hostname="git-jenkins-server" ]]/project.git +``` +- **SCM CREDENTIAL**: `git` +![image.png](../assets/git_credentials.png) +- Click on **Save** +## Open Templates, Click on the Demo job template and edit the follwing details: +- Clicimage.pngk on **PLAYBOOK** dropdown and select the playbook (demo_playbook.yml) +![](../assets/git_credentials.png) +- As of now we had a demo_playbook.yml pushed in repo, So Add it to Start the **JOB** using the **Template** + + +XL release steps +=== + +- Open **XL release** in **tabs** with credentials: **username:** `admin` , **password:** `admin` +- click on **folder** +- click on **Samples & Tutorials** +![image.png](../assets/image.png) +- Click on **template** with named **Applications/XL_Test** which we have created as a sample template +- Now click on **Jenkins task** which is added already. +![image.png](../assets/image.png) +- Now click on `Config`. +- **Select Server**: `Jenkins Server` from dropdown menu +- **Job**: `JenkinsTestJob` +![image.png](../assets/image.png) + +Now close the window. + +**Next we need to create a trigger**. + +- Click on **Triggers** in left side panel. +![image.png](../assets/image.png) +- Click on Add **Trigger**. +- Update the mandatory fields like **Title**, +- Select **trigger type** as `Git: Poll`, +- **Pole interval** : `5`, +- Select your **Repository** (here we have created a Git connection with name `Git Server`). +- **Branch**: master +![image.png](../assets/image.png) +![image.png](../assets/image.png) +- Select your **template:** Applications/XL_Test and **folder:** Samples & Tutorials +- Enter mandatory field **Release Title** (as per your choice) +- **click** on Save +![image.png](../assets/image.png) + + + Workflow +=== + +Go to the **Shell_local** tab +- cd project/ +- Make some changes in `demo_playbook.yml` using +``` +vi demo_playbook.yml +``` +After you made changes, then push to the git server +``` +git add . +git commit -m "First commit" +git push origin master +``` + +Now check the flow on XL release, Jenkins and Ansible Tower. +Open **Jenkins** in **tabs** with credentials: **username:** `admin` , **password:** `admin` +XL release trigger jenkins when there is a commit in git repo, jenkins builds job and deploys to ansible tower. + +Outputs should look like: +- In **Jenkins:** +![image.png](../assets/image.png) +- In **Ansible:** +**Jobs:** +![image.png](../assets/image.png) +**Dashboard:** +![image.png](../assets/image.png) +- In **XL Release:** +![image.png](../assets/image.png) \ No newline at end of file diff --git a/instruqt-pocs/project-dev/01-project/setup-git-jenkins-server b/instruqt-pocs/project-dev/01-project/setup-git-jenkins-server new file mode 100755 index 0000000..9128109 --- /dev/null +++ b/instruqt-pocs/project-dev/01-project/setup-git-jenkins-server @@ -0,0 +1 @@ +agent variable set url $HOSTNAME.$_SANDBOX_ID.instruqt.io \ No newline at end of file diff --git a/instruqt-pocs/project-dev/01-project/setup-local-system b/instruqt-pocs/project-dev/01-project/setup-local-system new file mode 100755 index 0000000..f5d44aa --- /dev/null +++ b/instruqt-pocs/project-dev/01-project/setup-local-system @@ -0,0 +1,55 @@ +#!/bin/bash +set -euxo pipefail + +echo "Running track setup script" + +# Wait for the Instruqt host bootstrap to finish. +until [ -f /opt/instruqt/bootstrap/host-bootstrap-completed ] +do + sleep 1 +done + +# Here we are installing the nginx package. The noninteractive setting ensures +# that the apt command won't stop and ask for user input. +apt -y update +DEBIAN_FRONTEND=noninteractive apt -y install nginx vim + +cat >/root/project/demo_playbook.yml <<\EOF +# Adding a demo playbook +--- +- name: demo playbook + hosts: all + tasks: + - name: Hello Message + debug: + msg: "Hello instruqt customer" +EOF +cd project/ +git add . +git commit -m "Demo playbook" +git push origin master +#cat ~/.ssh/id_rsa.pub | ssh root@git "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keysnew && cat >> ~/.ssh/authorized_keysnew" +#cat ~/.ssh/id_rsa.pub | ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null root@git "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keysnewtest && cat >> ~/.ssh/authorized_keysnewtest" + + + +# # Remove the default nginx landing page and replace +# # it with something more useful. +# rm /var/www/html/index.nginx-debian.html +# cat >> /var/www/html/index.html <<-EOF +# +# Meow! +# +#
+# +#
+#

Meow World!

+#
Welcome to the Meow World application. Meow! =^._.^=
+# +#
+# +# +# EOF + +# # Start up the nginx service. +# service nginx start diff --git a/instruqt-pocs/project-dev/01-project/setup-xlrelease b/instruqt-pocs/project-dev/01-project/setup-xlrelease new file mode 100755 index 0000000..ca45cd3 --- /dev/null +++ b/instruqt-pocs/project-dev/01-project/setup-xlrelease @@ -0,0 +1,217 @@ +#!/bin/bash +# +# This is a sample setup script. Rename this file to setup-$CONTAINER +# (where $container is the name of the container as defined in your config.yml), +# and replace this content with your own script. +# +# This script will be run when you setup the challenge. +# +# Remember that the exit code is important. See the documentation +# for more information. +# +echo "waiting 180 seconds for cloud-init to update /etc/apt/sources.list" +timeout 180 /bin/bash -c \ + 'until stat /var/lib/cloud/instance/boot-finished 2>/dev/null; do echo waiting ...; sleep 1; done' +# Added sleep to make sure apt is unlocked +echo "Sleeping to make sure we are started" +sleep 30 + +# Get temporary license +# curl -o license.json --user instruqt:nk60kjLvnjIN -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"firstName":"Instruqt","lastName":"User","company":"Training","email":"instruqt@company.com"}' https://download.xebialabs.com/api/temporary/xl-release +# Temporarily disabled checking of SSL Cert, as it is expired +curl -k -o license.json --user instruqt:nk60kjLvnjIN -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"firstName":"Instruqt","lastName":"User","company":"Training","email":"instruqt@company.com"}' https://download.xebialabs.com/api/temporary/xl-release +# Alternative Server +# curl -o license.json --user instruqt:nk60kjLvnjIN -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"firstName":"Instruqt","lastName":"User","company":"Training","email":"instruqt@company.com"}' https://download2.xebialabs.com/api/temporary/xl-release +cat license.json | jq -r .license > /opt/xlr/server/conf/xl-release-license.lic + +# Add hotfixes for Reporting data +svn export https://github.com/xebialabs/instruqt-trainings.git/trunk/topic-xl-release-training/track-xlrelease-end-user-training/artifacts/resources/hotfix +svn export https://github.com/xebialabs/instruqt-trainings.git/trunk/topic-xl-release-training/track-xlrelease-end-user-training/artifacts/resources/hotfix-plugins + +cp hotfix/fix-release-risks-and-progress.jar /opt/xlr/server/hotfix/lib/ +cp hotfix-plugins/workaround-for-fixing-tile-legends.jar /opt/xlr/server/hotfix/plugins/ +chown -R xlrelease:xlrelease /opt/xlr/server/hotfix/* +rm -rf hotfix +rm -rf hotfix-plugins + +chown -R xlrelease:xlrelease /opt/xlr/server + +# Restart XL Release +systemctl restart xl-release +rm license.json +# Check if XL Release is up +echo "Check XL Release Status" +while ! nc -z localhost 5516; do echo "Port 5516 not open" && sleep 1; done +echo "Port is open, continuing" + +# Set Archiving to 0 Days +curl -f http://admin:admin@localhost:5516/settings/ci/Configuration/settings/ArchivingSettings -X PUT \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + -d '{"id":"Configuration/settings/ArchivingSettings", + "type":"xlrelease.ArchivingSettings", + "releaseAgeToDeleteFromJcr":0, + "preArchivingEnabled":true}' + + echo " Test" + + ############# Git and Jenkins connections to XL release +#!/bin/bash + +# Set the SANDBOX_ID environment variable +#export SANDBOX_ID="a5mq9l7jyhiy" +SANDBOX_ID=$(echo ${_SANDBOX_ID}) + +# Define the Git server cURL command +git_curl_command=$(cat <vq_jR4;d7an8^UCFO+o%|*C@3hlotKqT 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 literal 0 HcmV?d00001 diff --git a/instruqt-pocs/project-dev/assets/demo_playbook.png b/instruqt-pocs/project-dev/assets/demo_playbook.png new file mode 100644 index 0000000000000000000000000000000000000000..33555854163c75d7ea7adb4ec4ee97741265a5d0 GIT binary patch literal 33265 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

>t_8Idi6JjsI&G|PornqQxg6co77GV zpMsTVpN#l47h0C=CVe~F*f*PAHHGw5QwYT1hw|SgntGNP>f9c^(M%xxaRIAgmOS^J z{FBvm60YxKdY;r;Ga+eF;0s`V@gOGxB+gRM5DpcjKhR6i+H=sgDl6~nOW?EL_e2tNZ=1WuR|YczpL--0Dz&sO@q zB(t<7d+!hXM)|@LnA@%=KRI!xpD*k=4Xl{vM?6|`Kl~IcoQi!J?s1}c^cnor3kiwW&EnAjJj3uyf%$E3Ul-ugDxS++@7rMcwkxcAtaF%rhQpVTB?^KU~4d@36ItyUo;&}g@x zeCf69*K%tIx&tOE(KmF6BAFcgJ1f6+(%rvmR~(`e6%vcs$(Bo9@x5)DGZ2!8Mn@Ja z2h+jYKL5Gz{{?-|y%|Ai(zxQrE@tVVCfsyTlnE8S;(&4`{a$U!rZy(a@8KYVGavFo zSU7m4$q^Ck3MrC!uMXxMZGFdzhCvF}gM|Aatihn2Y6a%sbKH+kh%2tofMjhlH z49sx4VbjT+zQ010%H8RT>C4mI9Zjg@A7I+%8X(t8^HwPx-E&PZZ$0l7>xpY-KnbPj z{Af0(>&}sTfv%TWoa0rpAjKaWj_U9bU>fQvfMRULeYfm9(wa?FIpDh#PU@$z>am6D zj4u{{%gfQChsLuVf1O1JL+G5}G*<$LKmfyN6VQ3m{K!Bo-~9 zyZ12dJrq9_>s<)M9s-Jc3=!ApF(oQWX>%77^KPw61(Ffmkp%SY*PHzb${t9#fptrd z1yj?v$Ym|T#isKH+D3;-f!3_Fk>1ATgelY^s1D8Q*0?084m1<*WpZSEH^*p)?)T zV6>pm_85w3)^u@}RMqM2nAwG%u_3`7^V-9g?RJ?BHNPg>V0z*VgI79x6o{kTH`3wl z#XK&$wmt+~my_ucDdtKP%>B?_;(?55YCFe|O4?|P2yivP-@S%q$nx7sR%b&ys~#Y6 znl}tL?LCOq)r&!1H2PK}H;B5X+lkVpns72xnyRTp;^M1BERI4FhJdftn*s7r?jFL* z6AMRknv|hUA2WP5l!0Ynhe6;AW8<)B+i$lc-<;ENRuI7@?A@=ShqwHq*|?YG`nk?# zf`2RPuHTQUC�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 T={Zb&1{~rd(%@ntUElu!VwDs% literal 0 HcmV?d00001 diff --git a/instruqt-pocs/project-dev/config.yml b/instruqt-pocs/project-dev/config.yml new file mode 100644 index 0000000..12fcc61 --- /dev/null +++ b/instruqt-pocs/project-dev/config.yml @@ -0,0 +1,36 @@ +version: "3" +virtualmachines: +- name: xlrelease + image: instruqt-xebialabs/xlrelease-22-3-x + shell: /usr/bin/start.sh + machine_type: n1-highcpu-8 + allow_external_ingress: + - http + - https + - high-ports +- name: ansibletower + image: instruqt/ansible-tower + shell: /bin/bash + machine_type: n1-standard-2 + allow_external_ingress: + - http + - https + - high-ports +- name: git-jenkins-server + image: instruqt-support/jenkinsproject + shell: /bin/bash + machine_type: n1-standard-2 + allow_external_ingress: + - http + - https + - high-ports +- name: local-system + image: ubuntu-os-cloud/ubuntu-2004-lts + shell: /bin/bash + machine_type: n1-standard-1 + allow_external_ingress: + - http + - https + - high-ports +secrets: +- name: HTTP_SECRET diff --git a/instruqt-pocs/project-dev/track.yml b/instruqt-pocs/project-dev/track.yml new file mode 100755 index 0000000..f0de48c --- /dev/null +++ b/instruqt-pocs/project-dev/track.yml @@ -0,0 +1,25 @@ +slug: project-dev +id: x5pgbznec6ns +title: Project-Dev +teaser: project-dev +description: |- + # In this track, XL Release monitors git commits. When a commit is made on the git server, XL Release initiates a release and calls Jenkins. + # Jenkins task creates an app and deploys it to the Ansible tower. +icon: https://cdn.instruqt.com/img/logo/instruqt_isotype_indigo.svg +tags: +- xlr +- jenkins +- ansible +- git +owner: instruqt-support +developers: +- harpreet@instruqt.com +maintenance: true +show_timer: true +skipping_enabled: true +timelimit: 36000 +lab_config: + overlay: false + width: 33 + position: right +checksum: "3601476797991513166" diff --git a/instruqt-pocs/project-dev/track_scripts/setup-ansibletower b/instruqt-pocs/project-dev/track_scripts/setup-ansibletower new file mode 100755 index 0000000..e69de29 diff --git a/instruqt-pocs/project-dev/track_scripts/setup-git-jenkins-server b/instruqt-pocs/project-dev/track_scripts/setup-git-jenkins-server new file mode 100755 index 0000000..df3aea5 --- /dev/null +++ b/instruqt-pocs/project-dev/track_scripts/setup-git-jenkins-server @@ -0,0 +1,70 @@ +#!/bin/bash +set -euxo pipefail + +echo "Running track setup script" + +# Wait for the Instruqt host bootstrap to finish. +until [ -f /opt/instruqt/bootstrap/host-bootstrap-completed ] +do + sleep 1 +done + +password=$HTTP_SECRET +# Configure Nginx +rm /etc/nginx/sites-enabled/default +nginx -s reload + +####### Install Git +sudo useradd -s /bin/bash -d /home/git/ -m -G sudo git +sudo mkdir /home/git/.ssh/ +sudo chmod 0700 /home/git/.ssh/ +KEY=$(cat ~/.ssh/id_rsa.pub) +echo "$KEY" +sudo -- sh -c "echo '$KEY' > /home/git/.ssh/authorized_keys" +sudo chown -R git:git /home/git/.ssh/ +sudo mkdir /home/git/project.git +sudo chmod 0700 /home/git/project.git/ +sudo -- sh -c "cd /home/git/project.git ; git init --bare" +sudo chown -R git:git /home/git/project.git/ + +####### +sudo apt update +sudo apt install -y build-essential net-tools curl git software-properties-common nginx git fcgiwrap apache2-utils unzip +mkdir /var/www/html/myrepo ; cd /var/www/html/myrepo ; mkdir project.git +cd project.git ; git --bare init +git update-server-info +chown -R www-data:www-data /var/www/html/myrepo ; chmod -R 755 /var/www/html/myrepo + +echo "$password" | htpasswd -c -i /var/www/html/myrepo/htpasswd gituser +cat >> /etc/nginx/conf.d/git-jenkins-server.${_SANDBOX_ID}.instruqt.io.conf <<-EOF +server { + listen 80 default_server; + listen [::]:80 default_server; + root /var/www/html/myrepo; + server_name git-jenkins-server.${_SANDBOX_ID}.instruqt.io; + index index.html index.htm index.git-jenkins-server.dxuowdcjuw4e.instruqt.io.html; + + location / { + try_files \$uri \$uri/ =404; + } + + location ~ (/.*) { + client_max_body_size 0; + auth_basic "Git Login"; + auth_basic_user_file "/var/www/html/myrepo/htpasswd"; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; + fastcgi_param GIT_HTTP_EXPORT_ALL ""; + fastcgi_param GIT_PROJECT_ROOT /var/www/html/myrepo; + fastcgi_param REMOTE_USER \$remote_user; + fastcgi_param PATH_INFO \$1; + fastcgi_pass unix:/var/run/fcgiwrap.socket; + } +} +EOF + +nginx -t +systemctl restart nginx + + + diff --git a/instruqt-pocs/project-dev/track_scripts/setup-local-system b/instruqt-pocs/project-dev/track_scripts/setup-local-system new file mode 100755 index 0000000..28de828 --- /dev/null +++ b/instruqt-pocs/project-dev/track_scripts/setup-local-system @@ -0,0 +1,4 @@ +mkdir project ; cd project ; git init +git config --global user.email "user1@yourdomain.com" +git config --global user.name "user1" +git remote add origin http://gituser:password@git-jenkins-server.${_SANDBOX_ID}.instruqt.io/project.git \ No newline at end of file diff --git a/instruqt-pocs/project-dev/track_scripts/setup-xlrelease b/instruqt-pocs/project-dev/track_scripts/setup-xlrelease new file mode 100755 index 0000000..8ace5a1 --- /dev/null +++ b/instruqt-pocs/project-dev/track_scripts/setup-xlrelease @@ -0,0 +1 @@ +apt-get install jq -y \ No newline at end of file From 675c53a6884fe9fc747750c5a669d9e8a844a07f Mon Sep 17 00:00:00 2001 From: Todd Densmore <469399+tdensmore@users.noreply.github.com> Date: Wed, 9 Aug 2023 13:57:00 +0200 Subject: [PATCH 2/2] Added milvus --- .../01-building-an-image/assignment.md | 50 ++++++++++++++++ .../01-building-an-image/check-docker-vm | 7 +++ .../01-building-an-image/setup-docker-vm | 14 +++++ .../01-building-an-image/solve-docker-vm | 6 ++ .../02-running-a-container/assignment.md | 59 +++++++++++++++++++ .../02-running-a-container/check-docker-vm | 10 ++++ .../02-running-a-container/solve-docker-vm | 6 ++ instruqt-opensource/learn-milvus/config.yml | 6 ++ instruqt-opensource/learn-milvus/track.yml | 22 +++++++ .../track_scripts/setup-docker-vm | 11 ++++ 10 files changed, 191 insertions(+) create mode 100755 instruqt-opensource/learn-milvus/01-building-an-image/assignment.md create mode 100755 instruqt-opensource/learn-milvus/01-building-an-image/check-docker-vm create mode 100755 instruqt-opensource/learn-milvus/01-building-an-image/setup-docker-vm create mode 100755 instruqt-opensource/learn-milvus/01-building-an-image/solve-docker-vm create mode 100755 instruqt-opensource/learn-milvus/02-running-a-container/assignment.md create mode 100755 instruqt-opensource/learn-milvus/02-running-a-container/check-docker-vm create mode 100755 instruqt-opensource/learn-milvus/02-running-a-container/solve-docker-vm create mode 100644 instruqt-opensource/learn-milvus/config.yml create mode 100755 instruqt-opensource/learn-milvus/track.yml create mode 100755 instruqt-opensource/learn-milvus/track_scripts/setup-docker-vm diff --git a/instruqt-opensource/learn-milvus/01-building-an-image/assignment.md b/instruqt-opensource/learn-milvus/01-building-an-image/assignment.md new file mode 100755 index 0000000..fe9ef29 --- /dev/null +++ b/instruqt-opensource/learn-milvus/01-building-an-image/assignment.md @@ -0,0 +1,50 @@ +--- +slug: building-an-image +id: erdmilpgrbpe +type: challenge +title: Building a container image +teaser: Learn how to build an image using a Dockerfile +notes: +- type: text + contents: | + # Learn about Docker + + Docker is an open platform for developing, shipping, and running applications. + Docker enables you to separate your applications from your infrastructure so + you can deliver software quickly. Containers run anywhere! + + In this first challenge, you'll create a container image. Please wait while we + boot a virtual machine for you. +tabs: +- title: Terminal + type: terminal + hostname: docker-vm +- title: Editor + type: code + hostname: docker-vm + path: /app +difficulty: basic +timelimit: 600 +--- + +๐Ÿงช Build a Docker image +======================= + +Use this command to build a Docker image using the Dockerfile in +this directory: + +``` +docker build -t my-service . +``` + +๐Ÿ’ก Source editor +================ + +Did you notice the tab with the source code editor, next to +the terminal? + +๐Ÿ Finish +========= + +To complete the +challenge, press **Check**." diff --git a/instruqt-opensource/learn-milvus/01-building-an-image/check-docker-vm b/instruqt-opensource/learn-milvus/01-building-an-image/check-docker-vm new file mode 100755 index 0000000..3903f21 --- /dev/null +++ b/instruqt-opensource/learn-milvus/01-building-an-image/check-docker-vm @@ -0,0 +1,7 @@ +#!/bin/bash +set -euxo pipefail + +if ! docker image ls | grep "my-service"; then + fail-message "Couldn't find an image with the name my-service" + exit 1 +fi \ No newline at end of file diff --git a/instruqt-opensource/learn-milvus/01-building-an-image/setup-docker-vm b/instruqt-opensource/learn-milvus/01-building-an-image/setup-docker-vm new file mode 100755 index 0000000..d1395ce --- /dev/null +++ b/instruqt-opensource/learn-milvus/01-building-an-image/setup-docker-vm @@ -0,0 +1,14 @@ +#!/bin/bash +set -euxo pipefail + +echo "Running challenge setup script on host docker-vm" + +# Initialize the home directory with the Dockerfile +mkdir /app +touch /app/Dockerfile +set-workdir /app + +# Create the Dockerfile +cat <> /app/Dockerfile +FROM nginx +EOF diff --git a/instruqt-opensource/learn-milvus/01-building-an-image/solve-docker-vm b/instruqt-opensource/learn-milvus/01-building-an-image/solve-docker-vm new file mode 100755 index 0000000..767638c --- /dev/null +++ b/instruqt-opensource/learn-milvus/01-building-an-image/solve-docker-vm @@ -0,0 +1,6 @@ +#!/bin/bash +set -euxo pipefail + +echo "Running challenge solve script on host docker-vm" + +docker build -t my-service /app \ No newline at end of file diff --git a/instruqt-opensource/learn-milvus/02-running-a-container/assignment.md b/instruqt-opensource/learn-milvus/02-running-a-container/assignment.md new file mode 100755 index 0000000..05abe36 --- /dev/null +++ b/instruqt-opensource/learn-milvus/02-running-a-container/assignment.md @@ -0,0 +1,59 @@ +--- +slug: running-a-container +id: lwhlbafmwvb2 +type: challenge +title: Starting a container +teaser: Start the container image you've just built +notes: +- type: text + contents: | + # Starting a container image + + Container images can be started any where a container runtime is installed. +tabs: +- title: Terminal + type: terminal + hostname: docker-vm +- title: nginx + type: service + hostname: docker-vm + port: 80 +difficulty: basic +timelimit: 600 +--- + +๐Ÿš€ Let's run it +=============== + +Now that you have built a container image, you can run it. + +๐Ÿ‘จโ€๐Ÿ’ป Step 01 - Start container +============================ + +Run the following command to start the container: + +``` +docker run --name some-container -p 80:80 -d my-service +``` + +๐Ÿ‘€ Step 02 - NGINX tab +====================== + +Check the nginx tab (next the the terminal tab) to verify if the container is running. +You should see a "Welcome to nginx" message + +โœ… Step 03 - Verify the container +================================= + +To verify if the container is running using the command line, run this command: + +``` +docker container ls +``` + +๐Ÿ Finish +========= + +## Check + +To complete this track, press **Check** diff --git a/instruqt-opensource/learn-milvus/02-running-a-container/check-docker-vm b/instruqt-opensource/learn-milvus/02-running-a-container/check-docker-vm new file mode 100755 index 0000000..f306a11 --- /dev/null +++ b/instruqt-opensource/learn-milvus/02-running-a-container/check-docker-vm @@ -0,0 +1,10 @@ +#!/bin/bash +set -euxo pipefail + +echo "Running challenge check script on host docker-vm" + +if ! docker container ls | grep -q "my-service"; then + fail-message "There is no running container 'my-service'. Did you run it?" + exit 1 +fi + diff --git a/instruqt-opensource/learn-milvus/02-running-a-container/solve-docker-vm b/instruqt-opensource/learn-milvus/02-running-a-container/solve-docker-vm new file mode 100755 index 0000000..ecfc0d6 --- /dev/null +++ b/instruqt-opensource/learn-milvus/02-running-a-container/solve-docker-vm @@ -0,0 +1,6 @@ +#!/bin/bash +set -euxo pipefail + +echo "Running challenge solve script on host docker-vm" + +docker run --name my-service -p 80:80 -d my-service diff --git a/instruqt-opensource/learn-milvus/config.yml b/instruqt-opensource/learn-milvus/config.yml new file mode 100644 index 0000000..5964641 --- /dev/null +++ b/instruqt-opensource/learn-milvus/config.yml @@ -0,0 +1,6 @@ +version: "3" +virtualmachines: +- name: docker-vm + image: instruqt/docker-2010 + shell: /bin/bash + machine_type: n1-standard-1 diff --git a/instruqt-opensource/learn-milvus/track.yml b/instruqt-opensource/learn-milvus/track.yml new file mode 100755 index 0000000..4484810 --- /dev/null +++ b/instruqt-opensource/learn-milvus/track.yml @@ -0,0 +1,22 @@ +slug: learn-milvus +id: ww8aaffptmba +title: Learn Milvus +teaser: Use a virtual machine (VM) as a sandbox host +description: |- + This template shows you how to use a Virtual Machine (VM). VMs can be used when you need more compute and memory or for running Docker containers. + + **This track demonstrates how to:** + - Provision virtual machine sandbox host using a predefined Compute Engine image + - Use the Docker daemon on the sandbox host to build and run container images + - Add check and solve scripts + - Add simple assets (a Dockerfile) to the sandbox host +icon: https://cdn.instruqt.com/assets/templates/docker.png +tags: [] +owner: instruqt-demos +developers: +- todd@instruqt.com +lab_config: + overlay: false + width: 33 + position: right +checksum: "1467653403314078352" diff --git a/instruqt-opensource/learn-milvus/track_scripts/setup-docker-vm b/instruqt-opensource/learn-milvus/track_scripts/setup-docker-vm new file mode 100755 index 0000000..2389580 --- /dev/null +++ b/instruqt-opensource/learn-milvus/track_scripts/setup-docker-vm @@ -0,0 +1,11 @@ +#!/bin/bash +set -euxo pipefail + +echo "Running track setup script on host docker-vm" + +# Wait for the Instruqt host bootstrap to finish +until [ -f /opt/instruqt/bootstrap/host-bootstrap-completed ] +do + sleep 1 +done +