User Tools

Site Tools


devsecops_и_промышленные_решения

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devsecops_и_промышленные_решения [2025/12/14 20:06]
val [2.2 Развертывание GitLab]
devsecops_и_промышленные_решения [2025/12/25 16:08] (current)
val [2.1 Развертывание Keycloak]
Line 65: Line 65:
 ==== 1.3 Развертывание FreeIPA ==== ==== 1.3 Развертывание FreeIPA ====
  
-  * Развертывание FreeIPA [[Решение FreeIPA#С использованием docker compose]] ​? попробовать ​из репозитория вендора,​ для решения проблемы ​доступа ​к ДНС ​из других контейнеров на этой системе?​ или убрать на gate.isp.un A запись server.corpX.un+  * Развертывание FreeIPA [[Решение FreeIPA#С использованием docker compose]] ​(docker ​из репозитория вендора,​ для решения проблемы клиента ​ДНС)
  
 ==== 1.4 Развертывание Kubernetes ==== ==== 1.4 Развертывание Kubernetes ====
Line 91: Line 91:
   * [[Система Kubernetes#​Подготовка к развертыванию через Kubespray]]   * [[Система Kubernetes#​Подготовка к развертыванию через Kubespray]]
   * Развертывание Kubernetes через Kubespray ([[Система Kubernetes#​Вариант 2 (docker)]])   * Развертывание Kubernetes через Kubespray ([[Система Kubernetes#​Вариант 2 (docker)]])
- 
-==== 1.5 (??? может в k8s?) Развертывание GitLab ==== 
- 
-  * FreeIPA [[Решение FreeIPA#​Создание ключа и сертификата для gitlab на той же системе]] 
-  * Инструмент GitLab [[Инструмент GitLab|Установка через docker-compose]] ​ 
-<​code>​ 
-# cat docker-compose.yml 
-... 
-    userns_mode:​ '​host'​ 
-... 
-        external_url '​https://​server.corpX.un:​4443'​ 
-... 
-      - '​4443:​4443'​ 
-... 
-</​code>​ 
- 
-  * Создать УЗ student через [[Инструмент GitLab#REST API интерфейс]] ​ ??? Может это в ДЕВОПС2 а здесь интегрировать с KC?  
- 
-  * ??? Может, не понадобится,​ или не сразу 
-<​code>​ 
-bash -c ' 
-scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube1:/​usr/​local/​share/​ca-certificates/​ 
-ssh kube1 update-ca-certificates 
-ssh kube1 systemctl restart containerd 
-scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube2:/​usr/​local/​share/​ca-certificates/​ 
-ssh kube2 update-ca-certificates 
-ssh kube2 systemctl restart containerd 
-scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube3:/​usr/​local/​share/​ca-certificates/​ 
-ssh kube3 update-ca-certificates 
-ssh kube3 systemctl restart containerd 
-scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube4:/​usr/​local/​share/​ca-certificates/​ 
-ssh kube4 update-ca-certificates 
-ssh kube4 systemctl restart containerd 
-' 
- 
-kubeN# 
-crictl pull server.corpX.un:​5000/​student/​gowebd 
-crictl images 
-crictl rmi server.corpX.un:​5000/​student/​gowebd 
-</​code>​ 
  
 ==== 1.5 Установка и инициализация компьютеров пользователей ==== ==== 1.5 Установка и инициализация компьютеров пользователей ====
Line 150: Line 110:
   * [[Система Kubernetes#​MetalLB]]   * [[Система Kubernetes#​MetalLB]]
   * [[Система Kubernetes#​Установка Helm]]   * [[Система Kubernetes#​Установка Helm]]
-  * [[Система Kubernetes#​ingress-nginx]]+  * [[Система Kubernetes#​ingress-nginx]] ​(не DaemonSet)
  
   * [[Решение FreeIPA#​Создание ключа и сертификата для стороннего сервиса]]   * [[Решение FreeIPA#​Создание ключа и сертификата для стороннего сервиса]]
Line 162: Line 122:
   * Сервис Keycloak в [[Сервис Keycloak#​Kubernetes]] (версия 25.2.0, tls: true, postgresql.enabled:​ false, externalDatabase.host:​ "​my-pgcluster-rw.my-pgcluster-ns"​)   * Сервис Keycloak в [[Сервис Keycloak#​Kubernetes]] (версия 25.2.0, tls: true, postgresql.enabled:​ false, externalDatabase.host:​ "​my-pgcluster-rw.my-pgcluster-ns"​)
  
-  * [[Сервис Keycloak#​Базовая конфигурация]]+  * [[Сервис Keycloak#​Базовая конфигурация]] ​(только realm, преподавателю можно user2)
  
   * [[Авторизация с использованием LDAP сервера]] (демонстрирует преподаватель,​ можно с gate)   * [[Авторизация с использованием LDAP сервера]] (демонстрирует преподаватель,​ можно с gate)
Line 189: Line 149:
 </​code>​ </​code>​
  
-  * Инструмент GitLab [[Инструмент GitLab#​Установка через docker-compose]] + %s/server.co/gitlab.co/+  * Инструмент GitLab [[Инструмент GitLab#​Установка через docker-compose]] + %s/server.corpX/gitlab.corpX/
-  * Инструмент GitLab [[Инструмент GitLab#​Клиент OpenID]] +
 <​code>​ <​code>​
-kube1:​~/​gitlab#​ cat docker-compose.yml +...
-</​code><​code>​ +
-services: +
-  gitlab:+
     privileged: true     privileged: true
-    image: '​gitlab/​gitlab-ce:​18.6.2-ce.0' +... 
-#    image: ​'gitlab/​gitlab-ce:latest+      ​- ​'22:22
-    ​restart:​ always +... 
-    hostname: '​gitlab.corpX.un' +     '/etc/gitlab:/etc/​gitlab'​ 
-    environment:​ +...
-      ​GITLAB_ROOT_PASSWORD:​ "​strongpassword"​ +
-      GITLAB_OMNIBUS_CONFIG:​ | +
-        prometheus_monitoring['enable'​] = false +
-        gitlab_rails['​registry_enabled'​] = true +
-        gitlab_rails['​registry_host'​] = "​gitlab.corpX.un"​ +
-        external_url '​https:​//gitlab.corpX.un'​ +
-        registry_external_url 'https://gitlab.corpX.un:​5000+
-        ​gitlab_rails['​registry_port'​] = "​5050"​ +
-        registry['​registry_http_addr'​] = "127.0.0.1:​5050"​ +
-    ports: +
-      - '​443:​443'​ +
-      - '​2222:​22'​ +
-      - '​5000:​5000'​ +
-    volumes: +
-      - vol1:/​var/​opt/​gitlab +
-    shm_size: '​256m'​ +
-volumes: +
-  vol1:+
 </​code>​ </​code>​
 +  * Инструмент GitLab [[Инструмент GitLab#​Клиент OpenID]] + %s/​^/​8пробелов/​
  
   * [[Система Kubernetes#​kompose]]   * [[Система Kubernetes#​kompose]]
Line 229: Line 167:
  
 kube1:​~/​gitlab#​ cat vol1-persistentvolumeclaim.yaml kube1:​~/​gitlab#​ cat vol1-persistentvolumeclaim.yaml
 +</​code><​code>​
 ... ...
       storage: 2000Mi       storage: 2000Mi
 +</​code><​code>​
 kube1:​~/​gitlab#​ cat gitlab-deployment.yaml kube1:​~/​gitlab#​ cat gitlab-deployment.yaml
 +</​code><​code>​
 ... ...
           image: ...           image: ...
Line 244: Line 184:
                   mkdir -p /​etc/​gitlab/​trusted-certs/​                   mkdir -p /​etc/​gitlab/​trusted-certs/​
                   cp /​etc/​gitlab/​tmp/​ca.crt /​etc/​gitlab/​trusted-certs/​ca.crt                   cp /​etc/​gitlab/​tmp/​ca.crt /​etc/​gitlab/​trusted-certs/​ca.crt
- 
 ...    ...   
           volumeMounts:​           volumeMounts:​
Line 257: Line 196:
               mountPath: /​etc/​gitlab/​tmp/​ca.crt               mountPath: /​etc/​gitlab/​tmp/​ca.crt
 ... ...
 +      hostname: gitlab
       volumes:       volumes:
         - name: secret-tls-volume         - name: secret-tls-volume
Line 262: Line 202:
             secretName: gitlab-tls             secretName: gitlab-tls
 ... ...
 +</​code><​code>​
 kube1:​~/​gitlab#​ cat gitlab-service.yaml kube1:​~/​gitlab#​ cat gitlab-service.yaml
 +</​code><​code>​
 ... ...
 spec:  spec: 
Line 269: Line 210:
   type: LoadBalancer    type: LoadBalancer
 ... ...
 +</​code><​code>​
 kube1:​~/​gitlab#​ kubectl -n my-gitlab-ns apply -f vol1-persistentvolumeclaim.yaml,​gitlab-service.yaml,​gitlab-deployment.yaml kube1:​~/​gitlab#​ kubectl -n my-gitlab-ns apply -f vol1-persistentvolumeclaim.yaml,​gitlab-service.yaml,​gitlab-deployment.yaml
 +
 +kube1:​~/​gitlab#​ kubectl -n my-gitlab-ns logs pods/​gitlab-<​TAB>​ -f
 </​code>​ </​code>​
  
 +  * Создать УЗ user1 через [[Инструмент GitLab#REST API интерфейс]] и связать через [[Инструмент GitLab#​Клиент OpenID]]
  
 +==== 2.3 Стратегии развертывания и масштабирование нагрузки ====
  
-  * Стратегии ​развертывания и масштабирование ​нагрузки +  * Добавляем корпоративный сертификат в кластер kubernetes 
-  * ArgoCD и универсальный Helm Chart+<​code>​ 
 +server# 
 + 
 +bash -c ' 
 +scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube1:/​usr/​local/​share/​ca-certificates/​ 
 +ssh kube1 update-ca-certificates 
 +ssh kube1 systemctl restart containerd 
 +scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube2:/​usr/​local/​share/​ca-certificates/​ 
 +ssh kube2 update-ca-certificates 
 +ssh kube2 systemctl restart containerd 
 +scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube3:/​usr/​local/​share/​ca-certificates/​ 
 +ssh kube3 update-ca-certificates 
 +ssh kube3 systemctl restart containerd 
 +scp /​opt/​freeipa-data/​etc/​ipa/​ca.crt kube4:/​usr/​local/​share/​ca-certificates/​ 
 +ssh kube4 update-ca-certificates 
 +ssh kube4 systemctl restart containerd 
 +
 +</​code>​ 
 + 
 +  * [[Система Kubernetes#​Управление ​образами]] 
 + 
 +  * [[Стратегии деплоя в Kubernetes]] 
 + 
 +==== 2.4 ArgoCD и универсальный Helm Chart ====
  
 ===== Модуль 3: Безопасность в DevOps ===== ===== Модуль 3: Безопасность в DevOps =====
Line 314: Line 282:
   * Брокеры сообщения (Kafka или RabbitMQ)   * Брокеры сообщения (Kafka или RabbitMQ)
   * Service Mesh (Istio)   * Service Mesh (Istio)
 +
 +
devsecops_и_промышленные_решения.1765731992.txt.gz · Last modified: 2025/12/14 20:06 by val