- Переименован пресет geop.yml в cod.yml - Обновлены все группы с geop на cod - Добавлена поддержка ARM64 для Astra Linux и RedOS - Создан Dockerfile.arm64 для RedOS с исправлением конфликтов пакетов - Улучшены разделители в логах Molecule - Зашифрован файл vault/secrets.yml - Обновлена роль devops с поддержкой vault - Добавлены шаблоны для SSH и sudoers конфигураций
		
			
				
	
	
		
			81 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # RedOS совместимый образ для ARM64
 | ||
| # Автор: Сергей Антропов
 | ||
| # Сайт: https://devops.org.ru
 | ||
| # Базируется на CentOS Stream для совместимости с ARM64
 | ||
| # ВАЖНО: Это эмуляция RedOS на CentOS Stream для ARM64
 | ||
| 
 | ||
| FROM quay.io/centos/centos:stream9
 | ||
| 
 | ||
| # Устанавливаем переменные окружения
 | ||
| ENV LANG=ru_RU.UTF-8
 | ||
| ENV LANGUAGE=ru_RU:ru
 | ||
| ENV LC_ALL=ru_RU.UTF-8
 | ||
| 
 | ||
| # Обновляем систему
 | ||
| RUN dnf update -y && dnf upgrade -y
 | ||
| 
 | ||
| # Устанавливаем локали
 | ||
| RUN dnf install -y glibc-langpack-ru glibc-locale-source && \
 | ||
|     localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 || true
 | ||
| 
 | ||
| # Устанавливаем systemd и необходимые пакеты
 | ||
| RUN dnf install -y --allowerasing \
 | ||
|     systemd \
 | ||
|     systemd-sysv \
 | ||
|     dbus \
 | ||
|     curl \
 | ||
|     wget \
 | ||
|     nano \
 | ||
|     python3 \
 | ||
|     python3-pip \
 | ||
|     sudo \
 | ||
|     ca-certificates \
 | ||
|     gnupg \
 | ||
|     && dnf clean all
 | ||
| 
 | ||
| # Устанавливаем yq (автоопределение архитектуры)
 | ||
| RUN ARCH=$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/') && \
 | ||
|     wget -qO /usr/local/bin/yq "https://github.com/mikefarah/yq/releases/latest/download/yq_linux_${ARCH}" && \
 | ||
|     chmod +x /usr/local/bin/yq
 | ||
| 
 | ||
| # Устанавливаем Docker для ARM64
 | ||
| RUN ARCH=$(uname -m) && \
 | ||
|     dnf install -y dnf-plugins-core && \
 | ||
|     dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && \
 | ||
|     dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin && \
 | ||
|     dnf clean all
 | ||
| 
 | ||
| # Устанавливаем Docker Compose
 | ||
| RUN curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose \
 | ||
|     && chmod +x /usr/local/bin/docker-compose
 | ||
| 
 | ||
| # Создаем файлы конфигурации для эмуляции RedOS
 | ||
| RUN echo "Red OS" > /etc/os-release && \
 | ||
|     echo "VERSION_ID=\"8.0\"" >> /etc/os-release && \
 | ||
|     echo "PRETTY_NAME=\"Red OS 8.0 (ARM64 Compatible)\"" >> /etc/os-release && \
 | ||
|     echo "ID=\"redos\"" >> /etc/os-release && \
 | ||
|     echo "ID_LIKE=\"rhel fedora\"" >> /etc/os-release && \
 | ||
|     echo "VERSION=\"8.0\"" >> /etc/os-release && \
 | ||
|     echo "VERSION_CODENAME=\"\"" >> /etc/os-release && \
 | ||
|     echo "PLATFORM_ID=\"platform:el8\"" >> /etc/os-release && \
 | ||
|     echo "HOME_URL=\"https://www.red-soft.ru/\"" >> /etc/os-release && \
 | ||
|     echo "BUG_REPORT_URL=\"https://www.red-soft.ru/support/\"" >> /etc/os-release && \
 | ||
|     echo "REDHAT_BUGZILLA_PRODUCT=\"Red OS\"" >> /etc/os-release && \
 | ||
|     echo "REDHAT_BUGZILLA_PRODUCT_VERSION=\"8.0\"" >> /etc/os-release && \
 | ||
|     echo "REDHAT_SUPPORT_PRODUCT=\"Red OS\"" >> /etc/os-release && \
 | ||
|     echo "REDHAT_SUPPORT_PRODUCT_VERSION=\"8.0\"" >> /etc/os-release
 | ||
| 
 | ||
| # Настраиваем systemd
 | ||
| RUN systemctl set-default multi-user.target
 | ||
| 
 | ||
| # Настраиваем sudoers для root и пользователей
 | ||
| RUN echo "root ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \
 | ||
|     echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ansible-test
 | ||
| 
 | ||
| # Создаем пользователя для Ansible
 | ||
| RUN useradd -m -s /bin/bash ansible \
 | ||
|     && echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
 | ||
| 
 | ||
| # Команда по умолчанию (система запускается от root для systemd)
 | ||
| CMD ["/sbin/init"]
 |