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:
40
ci-cd/dockerfiles/Dockerfile
Normal file
40
ci-cd/dockerfiles/Dockerfile
Normal 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"]
|
||||
54
ci-cd/dockerfiles/Dockerfile-CentOS
Normal file
54
ci-cd/dockerfiles/Dockerfile-CentOS
Normal 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"]
|
||||
62
ci-cd/dockerfiles/Dockerfile-Ubuntu
Normal file
62
ci-cd/dockerfiles/Dockerfile-Ubuntu
Normal 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"]
|
||||
Reference in New Issue
Block a user