Обновление проекта

This commit is contained in:
Сергей Антропов
2025-10-27 20:06:32 +03:00
parent d7397fe7fe
commit 5ea320ce9a
5 changed files with 124 additions and 40 deletions

View File

@@ -601,6 +601,23 @@ docker:
--push \
.; \
echo "✅ Astra Linux для ARM64 собран и отправлен";; \
build-redos-arm64) \
echo "🔨 Сборка RedOS для ARM64 (совместимый образ)..."; \
echo "📋 Платформы: linux/amd64,linux/arm64"; \
echo "📋 Builder: $(DOCKER_BUILDX_BUILDER)"; \
echo "📋 Registry: $(DOCKER_REGISTRY)"; \
echo "⚠️ ВНИМАНИЕ: Используется совместимый образ на базе CentOS Stream 9"; \
echo ""; \
$(MAKE) docker setup-builder; \
cd dockerfiles/redos && \
docker buildx build \
--platform linux/amd64,linux/arm64 \
--tag $(DOCKER_REGISTRY):redos-arm64-latest \
--tag $(DOCKER_REGISTRY):redos-latest \
--file Dockerfile.arm64 \
--push \
.; \
echo "✅ RedOS для ARM64 собран и отправлен";; \
setup-builder) \
echo "🔧 Настройка multi-arch builder в контейнере..."; \
if $(MAKE) docker-check-builder >/dev/null 2>&1; then \
@@ -870,6 +887,16 @@ docker-get-base-tag:
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
docker pull $$BASE_IMAGE >/dev/null 2>&1 || echo "⚠️ Не удалось загрузить $$BASE_IMAGE" >&2; \
TAG="latest";; \
astra-linux-arm64) \
BASE_IMAGE="debian:bookworm-slim"; \
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
docker pull $$BASE_IMAGE >/dev/null 2>&1 || echo "⚠️ Не удалось загрузить $$BASE_IMAGE" >&2; \
TAG="latest";; \
redos-arm64) \
BASE_IMAGE="quay.io/centos/centos:stream9"; \
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
docker pull $$BASE_IMAGE >/dev/null 2>&1 || echo "⚠️ Не удалось загрузить $$BASE_IMAGE" >&2; \
TAG="latest";; \
rhel) \
BASE_IMAGE="registry.access.redhat.com/ubi8/ubi"; \
echo "📦 Загрузка базового образа $$BASE_IMAGE..." >&2; \
@@ -964,6 +991,16 @@ docker-build-image:
echo "📋 Registry: $(DOCKER_REGISTRY)"; \
echo "⚠️ ВНИМАНИЕ: Базовый образ поддерживает только AMD64"; \
echo "=========================================="; \
elif [ "$(IMAGE)" = "astra-linux-arm64" ] || [ "$(IMAGE)" = "redos-arm64" ]; then \
PLATFORMS="linux/amd64,linux/arm64"; \
echo ""; \
echo "=========================================="; \
echo "🔨 СБОРКА ОБРАЗА: $(DOCKER_REGISTRY):$(IMAGE)-$$TAG"; \
echo "📋 Платформы: $$PLATFORMS (AMD64 + ARM64)"; \
echo "📋 Тег: $$TAG"; \
echo "📋 Registry: $(DOCKER_REGISTRY)"; \
echo "⚠️ ВНИМАНИЕ: Совместимый образ с поддержкой ARM64"; \
echo "=========================================="; \
else \
PLATFORMS="$(DOCKER_PLATFORMS)"; \
echo ""; \
@@ -975,13 +1012,33 @@ docker-build-image:
echo "=========================================="; \
fi; \
echo ""; \
cd dockerfiles/$(IMAGE) && \
docker buildx build \
--platform $$PLATFORMS \
--tag $(DOCKER_REGISTRY):$(IMAGE)-$$TAG \
--tag $(DOCKER_REGISTRY):$(IMAGE)-latest \
--push \
.; \
if [ "$(IMAGE)" = "astra-linux-arm64" ]; then \
cd dockerfiles/astra-linux && \
docker buildx build \
--platform $$PLATFORMS \
--tag $(DOCKER_REGISTRY):$(IMAGE)-$$TAG \
--tag $(DOCKER_REGISTRY):$(IMAGE)-latest \
--file Dockerfile.arm64 \
--push \
.; \
elif [ "$(IMAGE)" = "redos-arm64" ]; then \
cd dockerfiles/redos && \
docker buildx build \
--platform $$PLATFORMS \
--tag $(DOCKER_REGISTRY):$(IMAGE)-$$TAG \
--tag $(DOCKER_REGISTRY):$(IMAGE)-latest \
--file Dockerfile.arm64 \
--push \
.; \
else \
cd dockerfiles/$(IMAGE) && \
docker buildx build \
--platform $$PLATFORMS \
--tag $(DOCKER_REGISTRY):$(IMAGE)-$$TAG \
--tag $(DOCKER_REGISTRY):$(IMAGE)-latest \
--push \
.; \
fi; \
echo ""; \
echo "✅ УСПЕШНО: $(DOCKER_REGISTRY):$(IMAGE)-$$TAG собран и отправлен"; \
echo "=========================================="

View File

@@ -161,9 +161,9 @@
capabilities: "{{ systemd_defaults.capabilities | default([]) }}"
published_ports: "{{ item.publish | default([]) }}"
env: "{{ item.env | default({}) }}"
# Специальные настройки для Astra Linux и RedOS (для совместимости с amd64 базовыми образами)
# Специальные настройки для Astra Linux и RedOS
security_opts: "{{ ['seccomp=unconfined', 'apparmor=unconfined'] if item.family in ['astra', 'redos'] else [] }}"
platform: "{{ 'linux/amd64' if item.family in ['astra', 'redos', 'alt10', 'alt9'] else omit }}"
platform: "{{ item.docker_platform | default(item.platform) | default(omit) }}"
state: started
restart_policy: unless-stopped
loop: "{{ hosts | selectattr('type','undefined') | list }}"
@@ -313,6 +313,7 @@
capabilities: "{{ systemd_defaults.capabilities | default([]) }}"
published_ports: "{{ item.publish | default([]) }}"
env: "{{ item.env | default({}) }}"
platform: "{{ item.docker_platform | default(item.platform) | default(omit) }}"
state: started
restart_policy: unless-stopped
loop: "{{ hosts | selectattr('type','defined') | selectattr('type','equalto','dood') | list }}"

View File

@@ -3,18 +3,18 @@
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
# Описание: Пресет для тестирования ролей на различных ОС
# Использует образы Ubuntu, Debian, Alt, Astra и RedOS
# Использует образы Ubuntu, Debian, Alt, Astra, RedOS (все ARM64)
docker_network: labnet
generated_inventory: "{{ molecule_ephemeral_directory }}/inventory/hosts.ini"
# Используем стабильные образы Ubuntu, Debian, Alt, Astra и RedOS (ARM64)
# Используем стабильные образы Ubuntu, Debian, Alt, Astra, RedOS (все ARM64)
images:
ubuntu: "inecs/ansible-lab:ubuntu22-latest"
debian: "inecs/ansible-lab:debian12-latest"
alt: "inecs/ansible-lab:alt10-latest"
astra: "inecs/ansible-lab:astra-latest-arm64" # ARM64 образ
redos: "inecs/ansible-lab:redos-latest-arm64" # ARM64 образ
astra: "inecs/ansible-lab:astra-linux-arm64-latest" # ARM64 образ
redos: "inecs/ansible-lab:redos-arm64-latest" # ARM64 образ
# Настройки для ARM64
# Используем нативные ARM64 образы

View File

@@ -97,6 +97,27 @@ devops_os_config:
# Специфичные настройки для российских ОС
devops_russian_os_config:
clearlinux: # Astra Linux определяется как clearlinux
package_manager: "apt"
user_management: "useradd"
group_management: "groupadd"
sudo_group: "sudo"
additional_groups:
- "sudo"
- "docker"
- "systemd-journal"
packages:
- "sudo"
- "curl"
- "wget"
- "mc"
- "nano"
- "tar"
- "gzip"
services:
- "ssh"
sudoers_path: "/etc/sudoers.d"
ssh_config_path: "/etc/ssh/sshd_config"
astra:
package_manager: "apt"
user_management: "useradd"
@@ -139,6 +160,27 @@ devops_russian_os_config:
- "sshd"
sudoers_path: "/etc/sudoers.d"
ssh_config_path: "/etc/ssh/sshd_config"
altlinux: # Alt Linux определяется как altlinux
package_manager: "apt"
user_management: "useradd"
group_management: "groupadd"
sudo_group: "sudo"
additional_groups:
- "sudo"
- "docker"
- "systemd-journal"
packages:
- "sudo"
- "curl"
- "wget"
- "mc"
- "nano"
- "tar"
- "gzip"
services:
- "ssh"
sudoers_path: "/etc/sudoers.d"
ssh_config_path: "/etc/ssh/sshd_config"
alt:
package_manager: "apt"
user_management: "useradd"

View File

@@ -1,27 +1,11 @@
$ANSIBLE_VAULT;1.1;AES256
65336338343362663234333233316130353361323735626262643363303837616230393738643434
6565613531303166306365366239626439666530326135330a663565366663363938373765376633
64633734363436613039323235386364373961643164346530663835313333376132313036303430
6631353831646664320a333936353334313364623039313939663131636466363263303330643630
35666561316266313135346534393863616433636363663564303830636438306238633738386665
66383939653238646337653966326364663863353739313936663363353961663163613239346534
64383063323839646434333461616336653635336438666132353363333538663933623039323463
62663933663038623536376137666639666639353961333666303233336137343831666338323162
36626665363333623238333138356538326334646532313639383535313863353230623262666337
66393762363931376638666633303134383838346132626337313436313334363030663436616438
63643438636535396432633432613238623731613931356137623161643564376330313861653161
35353530313833656130396362613036313163623731303830663537363830636631366332616163
36663533643463353861333461363538663830343338646237646633383064626539396264626230
65376238353833313065336632393662316137393065383261383663373261363137376234386264
35393265303633306262376534656665376330633535613964666662346462663834316435633664
35396339386466346634323666653732653232306364616165653633336364363336666433353861
62653831316638376261313739343266333039326666386461323035343761303032323666643831
34326661366362353561323237353637336430636664653730626431613535313865643530666239
30373362623965613765343965626663643936656134363761386232623935313065393235313735
62643061303534323637616230646330313962306664396139316437626436343938373435623939
61663434373739323662386534353662653933326464396461623564333965376331373736383064
38356465623464383437363735313662353565313131393036326535326231306465613562663363
61393833346138646238646132653962613033396561343237636636663633396165643266366665
39373565646264326166653936623766326436616362653130323835303633383334393561343565
34613932363539656537346537653836393537376463363830396534366238376436393537363736
6230383066326331643162356139643663373535633230636539
---
# Vault файл с секретными переменными для роли devops
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
# Пароль для пользователя devops
vault_devops_password: "123123"
# SSH публичный ключ для пользователя devops
vault_devops_ssh_public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7vbqajDhA... devops@devops.org.ru"