feat: Реорганизация проекта и восстановление ролей

- Восстановлены команды make role в Makefile
- Создана папка ci-cd/ для CI/CD конфигурации
- Перенесены GitLab файлы в ci-cd/
- Перенесены Dockerfile'ы в ci-cd/dockerfiles/
- Удален корневой requirements.yml
- Удалена пустая папка vars/
- Создана документация ci-cd/README.md
- Обновлен README.md с информацией о CI/CD

Изменения:
- Восстановлены команды: make role list|create|edit|test|lint|deploy|info
- Создана структура ci-cd/ с GitLab CI/CD
- Перенесены Dockerfile'ы для разных ОС
- Добавлена документация по CI/CD
- Обновлена структура проекта в README.md

Новая структура:
- ci-cd/ - CI/CD конфигурация
- ci-cd/gitlab/ - GitLab Runner
- ci-cd/dockerfiles/ - Dockerfile'ы
- ci-cd/.gitlab-ci.yml - GitLab CI/CD
- ci-cd/README.md - документация CI/CD

Преимущества:
- Организованная структура проекта
- Восстановлена функциональность ролей
- Готовые примеры CI/CD
- Документация по настройке
- Разделение ответственности

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-10-22 14:46:44 +03:00
parent a875a874e9
commit d6bc3f1f31
17 changed files with 244 additions and 32 deletions

View File

@@ -0,0 +1,40 @@
# Используем готовый образ с Ansible
FROM geerlingguy/docker-ubuntu2204-ansible:latest
# Добавляем метаданные
LABEL maintainer="Сергей Антропов <sergey@antropoff.ru>"
LABEL description="Этот Dockerfile создан для внедрения подхода IaC в Ansible."
LABEL version="0.1"
LABEL contact.website="https://devops.org.ru"
# Устанавливаем переменные окружения
ENV PYTHONUNBUFFERED=1
ENV EDITOR=nano
# Устанавливаем дополнительные зависимости Python для Molecule
RUN pip install --upgrade pip && \
pip install \
molecule \
molecule-docker \
ansible-lint \
yamllint \
docker \
&& rm -rf /root/.cache/pip
# Создаем рабочую директорию
WORKDIR /ansible
# Копируем файлы проекта
COPY . /ansible/
# Устанавливаем права на выполнение (если папка scripts существует)
RUN if [ -d /ansible/scripts ]; then chmod +x /ansible/scripts/*.sh; fi
# Устанавливаем пользователя
USER root
# Открываем порт для SSH
EXPOSE 22
# Команда по умолчанию
CMD ["/bin/bash"]

View File

@@ -0,0 +1,54 @@
# Сборка контейнера с systemd для удобного тестирования ролей Ansible через Molecule
# Используем официальный образ Fedora
FROM quay.io/fedora/python-312
USER root
# Обновляем пакеты и устанавливаем systemd и необходимые пакеты
RUN dnf update -y && \
dnf install -y --nodocs --setopt=install_weak_deps=False \
systemd rsync \
git \
openssh \
gcc \
libffi-devel \
openssl-devel \
make \
sudo \
openssh-clients \
less \
ca-certificates \
curl \
gnupg2 \
nano \
sshpass \
redhat-lsb-core \
&& dnf clean all && \
rm -rf /var/cache/dnf /tmp/* /var/tmp/*
# Устанавливаем 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
# Устанавливаем Python пакеты для Ansible
RUN pip install --upgrade pip && \
pip install \
ansible \
ansible-vault \
molecule \
molecule-docker \
ansible-lint \
yamllint \
docker \
&& rm -rf /root/.cache/pip
# Настраиваем окружение для systemd
ENV container=docker
STOPSIGNAL SIGRTMIN+3
# Создаем необходимые директории для systemd
VOLUME [ "/sys/fs/cgroup" ]
# Запускаем systemd при старте контейнера
CMD ["/sbin/init"]

View File

@@ -0,0 +1,62 @@
# Сборка контейнера с systemd для удобного тестирования ролей Ansible через Molecule
# Используем готовый образ с Ansible (более старый, но стабильный)
FROM geerlingguy/docker-ubuntu2004-ansible:latest
# Устанавливаем переменные окружения
ENV DEBIAN_FRONTEND=noninteractive
ENV container=docker
# Устанавливаем дополнительные пакеты для тестирования
RUN apt-get update && \
apt-get install -y --no-install-recommends \
systemd \
systemd-sysv \
rsync \
git \
ssh \
gcc \
libffi-dev \
libssl-dev \
make \
sudo \
sshpass \
openssh-client \
nano \
less \
ca-certificates \
curl \
gnupg \
lsb-release \
&& rm -rf /var/lib/apt/lists/*
# Устанавливаем Python пакеты для Ansible с обновлением зависимостей
RUN pip install --upgrade pip && \
pip install --upgrade \
requests \
PyYAML \
ansible-core \
&& pip install \
ansible \
"ansible-vault<4.0.0" \
molecule \
molecule-docker \
ansible-lint \
yamllint \
docker \
&& rm -rf /root/.cache/pip
# Устанавливаем 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
# Указываем, что контейнер использует systemd в качестве init-системы
ENV container=docker
STOPSIGNAL SIGRTMIN+3
# Создаем необходимые директории для systemd
VOLUME [ "/sys/fs/cgroup" ]
# Запускаем systemd при старте контейнера
CMD ["/sbin/init"]