Налаштування середовища розробки - vit-um/DevOps GitHub Wiki

Налаштування середовища розробки під Windows та VSCode

wsl --install
apt-get update
apt-get install wget ca-certificates
code .
  • Встановлюємо та налаштовуємо Git
sudo apt-get install git
git config --global user.name "Vitalii Umanets"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
  • Встановлюємо компілятор Go for Linux:
wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.21..linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
  • Встановлюємо всі тулзи для Go, що можуть стати в нагоді:
    Ctr+Shift+P -> Go: Install/Update Tools
  • Встановлюємо Git Graph з магазину доповнень VSCode
  • Встановимо оболонку zsh
$ sudo apt install zsh
  • Для візуалізації взаємодії з git рекомендовано використовувати oh-my-zsh
$ wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
$ sh install.sh
  • Налаштуємо зручну утиліту для відображення поточного кластеру та namespace
$ git clone https://github.com/jonmosco/kube-ps1.git

$ nano ~/.zshrc  

source ~/kube-ps1/kube-ps1.sh
PROMPT='$(kube_ps1)'$PROMPT
alias k=kubectl 
alias tf=terraform

autoload -U +X bashcompinit && bashcompinit
complete -o nospace -C /usr/bin/terraform terraform

$ source ~/.zshrc
(⎈|gke_devops-55250_us-central1-a_demo:N/A)➜  demo 

$ source <(kubectl completion zsh)
$ kubectl completion zsh > "${fpath[1]}/_kubectl"

$ k create ns demo
namespace/demo created

$ k config set-context --current --namespace demo      
Context "gke_devops-55250_us-central1-a_demo" modified.
(⎈|gke_devops-55250_us-central1-a_demo:demo)➜  demo 

Встановлення необхідних програм на сервер з Ubuntu

  1. Оновіть пакети:
sudo apt-get update
sudo apt-get upgrade
  1. Встановіть Docker:
sudo apt-get install docker.io
  1. Встановіть пакети Kubernetes:
sudo -s
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg


# Create a new sources.list file for Kubernetes
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null

# Update the package lists
sudo apt-get update

sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt-get install -y kubelet kubeadm kubectl

Встановлення пакетного менеджера Helm на локальну машину з Ubuntu 22.04.1 LTS

$ 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
Downloading https://get.helm.sh/helm-v3.13.1-linux-amd64.tar.gz
Verifying checksum... Done.
Preparing to install helm into /usr/local/bin
helm installed into /usr/local/bin/helm

$ helm version
version.BuildInfo{Version:"v3.13.1", GitCommit:"3547a4b5bf5edb5478ce352e18858d8a552a4110", GitTreeState:"clean", GoVersion:"go1.20.8"}

Корисні інструменти

Kubernetes CLI To Manage Your Clusters
kube-ps1: Kubernetes prompt for bash and zsh
kubectx and kubens
Google Cloud Pricing Calculator

Корисні команди

# Ця команда використовує флаги  -d  і  -f  для рекурсивного видалення директорій і файлів без підтвердження. Вона видалить всі файли, які не відстежуються Git. 
git clean -df  

# Для перейменування гілки в Git ви можете використовувати команду  git branch  разом з опцією  -m 
git branch -m стара_гілка нова_гілка

# Створити нову гілку та перейти в неї для подальшої роботи з поточними файлами
git checkout -b Task13

# Запушити створену гілку на віддалений репозиторій 
git push --set-upstream origin Task13

# Клонувати всі гілки репозиторію 
git clone --recursive https://github.com/den-vasyliev/tf-fluxcd-flux-bootstrap.git 

# Порівняти файл variables.tf в різних гілках репозиторію
git diff main gke_auth -- variables.tf

# Додати тег до поточного коміту
git tag v1               

# Запушити доданий тег на віддалений репозиторій 
git push origin v1 

# Видалити віддалену гілку репозиторій 
git branch -d vit-src
git push origin --delete vit-src

# Дізнатись назву тегу та хеш останнього коміту  
echo $(git describe --tags --abbrev=0)-$(git rev-parse --short HEAD)

# Базова назва репо без кінцівки
basename -s .git $(git remote get-url origin) && git remote get-url origin

# Запустити застосунок в контейнері, передавши йому змінну оточення та аргумент "go" для виконання  
docker run  -e TELE_TOKEN=$TELE_TOKEN umanetsvitaliy/kbot:v1.4.5-309ec09-linux-amd64 go