Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7cb18c11ea | |||
| f8a3fc4cd3 |
@@ -22,6 +22,7 @@ jobs: # Список выполняемых джоб
|
|||||||
filters: |
|
filters: |
|
||||||
src:
|
src:
|
||||||
- 'requirements.txt'
|
- 'requirements.txt'
|
||||||
|
- 'dockerfile'
|
||||||
|
|
||||||
need-deploy: # джоба проверки изменений в файлах. При изменении пулит новые файлы и перезапускает контейнер
|
need-deploy: # джоба проверки изменений в файлах. При изменении пулит новые файлы и перезапускает контейнер
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -85,7 +86,4 @@ jobs: # Список выполняемых джоб
|
|||||||
username: ${{ secrets.USER }}
|
username: ${{ secrets.USER }}
|
||||||
key: ${{ secrets.KEY }}
|
key: ${{ secrets.KEY }}
|
||||||
script: |
|
script: |
|
||||||
cd /home/ubadmin/mkdocs
|
sudo docker run -p 8000:8000 gitea.trastinfo.ru/sailor/mkdocs:latest
|
||||||
git pull origin main
|
|
||||||
sudo docker compose down
|
|
||||||
sudo docker compose up -d --build
|
|
||||||
@@ -2,8 +2,5 @@ services:
|
|||||||
mkdocks:
|
mkdocks:
|
||||||
image: gitea.trastinfo.ru/sailor/mkdocs:latest
|
image: gitea.trastinfo.ru/sailor/mkdocs:latest
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
|
||||||
- ./mkdocs.yml:/mkdocs/mkdocs.yml
|
|
||||||
- ./docs:/mkdocs/docs
|
|
||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
@@ -7,6 +7,8 @@ RUN apk add --update --no-cache --virtual .build-deps gcc musl-dev &&\
|
|||||||
apk del .build-deps &&\
|
apk del .build-deps &&\
|
||||||
rm ./requirements.txt
|
rm ./requirements.txt
|
||||||
WORKDIR /mkdocs
|
WORKDIR /mkdocs
|
||||||
|
COPY mkdocs.yml /mkdocs/mkdocs.yml
|
||||||
|
COPY docs/* /mkdocs/docs/
|
||||||
CMD ["mkdocs", "serve", "-a", "0.0.0.0:8000"]
|
CMD ["mkdocs", "serve", "-a", "0.0.0.0:8000"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
Ты devops инженер. Твоя основная специальность это автоматизация и настройка серверов.
|
|
||||||
Ты занят настройкой opensearch.
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
@startuml
|
||||||
|
top to bottom direction
|
||||||
|
|
||||||
|
cloud "Интернет" as Internet
|
||||||
|
|
||||||
|
rectangle "Proxy" as Proxy
|
||||||
|
rectangle "K8s" as K8s
|
||||||
|
rectangle "Docker" as Docker
|
||||||
|
Internet -- Proxy
|
||||||
|
Proxy -- K8s
|
||||||
|
Proxy -down- Docker
|
||||||
|
@enduml
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
@startuml
|
||||||
|
!theme bluegray
|
||||||
|
|
||||||
|
title Схема доступа к VM через Proxy
|
||||||
|
cloud "Интернет" as Internet
|
||||||
|
node "Proxy" as proxy
|
||||||
|
|
||||||
|
node "Master-1" as m1
|
||||||
|
node "Master-2" as m2
|
||||||
|
node "Master-3" as m3
|
||||||
|
|
||||||
|
node "Worker-1" as w1
|
||||||
|
node "Worker-2" as w2
|
||||||
|
node "Worker-3" as w3
|
||||||
|
|
||||||
|
node "Docker" as d1
|
||||||
|
Internet -down- proxy
|
||||||
|
proxy -down- m1
|
||||||
|
proxy -down- m2
|
||||||
|
proxy -down- m3
|
||||||
|
|
||||||
|
proxy -down- w1
|
||||||
|
proxy -down- w2
|
||||||
|
proxy -down- w3
|
||||||
|
|
||||||
|
proxy -down- d1
|
||||||
|
@enduml
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Архитектура моей лаборатории
|
||||||
|
Моя лаборатория - это мой мини прокет по освоению новых для меня технологий.
|
||||||
|
## На чем развернуто
|
||||||
|
У меня есть 2 стенда:
|
||||||
|
1) Домашний ПК
|
||||||
|
2) Виртуалки в клауде
|
||||||
|
Что дома, что в клауде используется Proxmox для виртуализации. Приложения разворачиваются в kubernetes. На отдельной ВМ крутятся БД. Стенды по содержанию идентичны
|
||||||
|
Схема стенда ./docs/sailor-lab/scema-sailor-lab-components.puml
|
||||||
|
Все виртуалки созданы Terraform через API Proxmox
|
||||||
|
## Стек
|
||||||
|
### Compute
|
||||||
|
- K8s
|
||||||
|
### Monitoring
|
||||||
|
- Prometheus
|
||||||
|
- Grafana
|
||||||
|
### DevOps
|
||||||
|
- Gitea
|
||||||
|
### Backup
|
||||||
|
- Restic
|
||||||
|
### Docs
|
||||||
|
- Mkdocs
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
@startuml
|
|
||||||
!theme bluegray
|
|
||||||
|
|
||||||
title Схема доступа к Vm через Proxy
|
|
||||||
|
|
||||||
node "Proxy" as proxy
|
|
||||||
|
|
||||||
node "Master-1" as m1
|
|
||||||
node "Master-2" as m2
|
|
||||||
node "Master-3" as m3
|
|
||||||
|
|
||||||
node "Worker-1" as w1
|
|
||||||
node "Worker-2" as w2
|
|
||||||
node "Worker-3" as w3
|
|
||||||
|
|
||||||
node "Docker" as d1
|
|
||||||
|
|
||||||
proxy -down-> m1
|
|
||||||
proxy -down-> m2
|
|
||||||
proxy -down-> m3
|
|
||||||
|
|
||||||
proxy -down-> w1
|
|
||||||
proxy -down-> w2
|
|
||||||
proxy -down-> w3
|
|
||||||
|
|
||||||
proxy -down-> d1
|
|
||||||
@enduml
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# Registry and local push
|
||||||
|
Gitea позволяет хранить свои образы контейнеров. Это позволяет не прибегать к dockerhub и не ставить еще и отдельную хранилку образов. Эта функция включена по умолчанию в новых версиях.
|
||||||
|
Для того что бы запушить образ требуется авторизоваться в регистри. Для этого нам требуется сгенерить токен доступа для регистри.
|
||||||
|
Что бы сгенерить токен переходим в настройки нашей Учетки (не репозитория) https://gitea.trastinfo.ru/user/settings/applications
|
||||||
|
Далее нажимаем создать новый токен. Пишем имя токена и выбираем доступа для токена. Для пайплайна нам требуется доступ к чтению repository и чтение\запись к package (Это как раз и есть registry)
|
||||||
|
Логинимся в gita
|
||||||
|
```
|
||||||
|
docker login gitea.trastinfo.ru --username sailor --password 5968ad45678afc6dc2f41b2ff389ca10fc982170
|
||||||
|
```
|
||||||
|
gitea.trastinfo.ru - Наша gitea
|
||||||
|
--username sailor - Юзер под которым логинемся
|
||||||
|
--password 5968ad45678afc6dc2f41b2ff389ca10fc982170 вместо пароля ставим токен, который мы сгенерили
|
||||||
|
Собираем образ. Есть две особенности на которые надо обратить внимание:
|
||||||
|
- Именование образов
|
||||||
|
- слеш (/) при указании тега
|
||||||
|
Именование образов имеет формат {registry}/{owner}/{image}:{tag}
|
||||||
|
|
||||||
|
```
|
||||||
|
docker build -t gitea.trastinfo.ru/sailor/sailor-doc:0.01 -f dockerfile
|
||||||
|
```
|
||||||
|
После билда пушим образ
|
||||||
|
```
|
||||||
|
docker push gitea.trastinfo.ru/sailor/sailor-doc:0.01
|
||||||
|
```
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
# NPM
|
||||||
|
Краткая инструкция как поднять и настроить NPM
|
||||||
|
Ссылки
|
||||||
|
Гайд с оф сайта https://nginxproxymanager.com/guide/
|
||||||
|
Гитхаб https://github.com/NginxProxyManager/nginx-proxy-manager
|
||||||
|
Для начала заходим на сервак и ставим докер.
|
||||||
|
```
|
||||||
|
curl https://get.docker.com | sh -
|
||||||
|
```
|
||||||
|
Далее создаем директорию под NPM. Директорию лучше не называть npm, что бы не путать с пакетным менджером
|
||||||
|
```
|
||||||
|
mkdir proxy && cd proxy
|
||||||
|
```
|
||||||
|
Создаем compose.yaml
|
||||||
|
```
|
||||||
|
nano compose.yaml
|
||||||
|
```
|
||||||
|
И записываем туда конфиг для композа
|
||||||
|
```
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: 'jc21/nginx-proxy-manager:2.15.1' #Можно посмотреть севужую версию на https://github.com/NginxProxyManager/nginx-proxy-manager
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
TZ: "Europe/Moscow"
|
||||||
|
ports:
|
||||||
|
- '80:80'
|
||||||
|
- '81:81' #Порт веб панели администратора, лучше поменять на свой
|
||||||
|
- '443:443'
|
||||||
|
volumes: #Директории для сертов и данных, создадутся в рабочем каталоге
|
||||||
|
- ./data:/data
|
||||||
|
- ./letsencrypt:/etc/letsencrypt
|
||||||
|
```
|
||||||
|
Разрешаем трафик по этим портам
|
||||||
|
```
|
||||||
|
sudo iptables -A INPUT -p tcp -i eth0 --dport 80,443,81 -j ACCEPT
|
||||||
|
```
|
||||||
|
Поднимаем контейнер композом
|
||||||
|
```
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
Заходим в вебку админа по ip-server:81 и настраиваем учетку и тд.
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: mkdocs
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: sailor-mkdocs
|
||||||
|
labels:
|
||||||
|
app: sailor-mkdocs
|
||||||
|
service: sailor-mkdocs
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 8080
|
||||||
|
targetPort: 8000
|
||||||
|
selector:
|
||||||
|
app: sailor-mkdocs
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: sailor-mkdocs
|
||||||
|
namespace: mkdocs
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: sailor-mkdocs
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: sailor-mkdocs
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: worker-2
|
||||||
|
containers:
|
||||||
|
- name: mkdocs
|
||||||
|
image: gitea.trastinfo.ru/sailor/mkdocs:7c2e6b6ecc3e32e5e4f59e6628af0a87d3acb005
|
||||||
|
ports:
|
||||||
|
- containerPort: 8000
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "256Mi"
|
||||||
|
cpu: "250m"
|
||||||
Reference in New Issue
Block a user