2 Commits

Author SHA1 Message Date
trustdev_admin 7cb18c11ea Refactor docs 2026-07-15 18:27:28 +03:00
trustdev_admin f8a3fc4cd3 add docs and config in container, refactor dockerfile and pipline 2026-07-11 17:57:58 +03:00
12 changed files with 180 additions and 36 deletions
@@ -22,6 +22,7 @@ jobs: # Список выполняемых джоб
filters: |
src:
- 'requirements.txt'
- 'dockerfile'
need-deploy: # джоба проверки изменений в файлах. При изменении пулит новые файлы и перезапускает контейнер
runs-on: ubuntu-latest
@@ -85,7 +86,4 @@ jobs: # Список выполняемых джоб
username: ${{ secrets.USER }}
key: ${{ secrets.KEY }}
script: |
cd /home/ubadmin/mkdocs
git pull origin main
sudo docker compose down
sudo docker compose up -d --build
sudo docker run -p 8000:8000 gitea.trastinfo.ru/sailor/mkdocs:latest
-3
View File
@@ -2,8 +2,5 @@ services:
mkdocks:
image: gitea.trastinfo.ru/sailor/mkdocs:latest
restart: always
volumes:
- ./mkdocs.yml:/mkdocs/mkdocs.yml
- ./docs:/mkdocs/docs
ports:
- "8000:8000"
+2
View File
@@ -7,6 +7,8 @@ RUN apk add --update --no-cache --virtual .build-deps gcc musl-dev &&\
apk del .build-deps &&\
rm ./requirements.txt
WORKDIR /mkdocs
COPY mkdocs.yml /mkdocs/mkdocs.yml
COPY docs/* /mkdocs/docs/
CMD ["mkdocs", "serve", "-a", "0.0.0.0:8000"]
-2
View File
@@ -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
+27
View File
@@ -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
+21
View File
@@ -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
-27
View File
@@ -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
+24
View File
@@ -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
```
+42
View File
@@ -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 и настраиваем учетку и тд.
+50
View File
@@ -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"