- Обновлены Dockerfiles для Ubuntu и Debian по аналогии с astra-linux - Упрощена структура: убраны лишние компоненты (kubectl, helm, kind, ansible) - Установка Docker из официального репозитория вместо пакетов дистрибутива - Добавлен systemd-sysv для корректной работы systemd - Пользователь ansible создается и используется как основной - CMD изменен на /sbin/init для запуска systemd - Добавлена информация о make docker build-image в help - Обновлен общий help (make help) с кратким описанием команды - Обновлен docker help (make docker) с подробной информацией и примерами - Показывается список доступных образов и поддерживаемых платформ - Исправлена установка ansible-lint в ansible-controller Dockerfile - Команда lint теперь использует файл .ansible-lint через volume
90 lines
2.7 KiB
Docker
90 lines
2.7 KiB
Docker
# Ansible Controller с предустановленными коллекциями
|
||
# Автор: Сергей Антропов
|
||
# Сайт: https://devops.org.ru
|
||
|
||
FROM ubuntu:22.04
|
||
|
||
# Обновляем систему
|
||
RUN apt-get update && apt-get upgrade -y && apt-get clean
|
||
|
||
# Устанавливаем Python и Ansible
|
||
RUN apt-get install -y \
|
||
python3 \
|
||
python3-pip \
|
||
python3-venv \
|
||
python3-dev \
|
||
build-essential \
|
||
&& apt-get clean
|
||
|
||
# Устанавливаем Ansible и ansible-lint
|
||
RUN pip3 install ansible ansible-core ansible-lint
|
||
|
||
# Устанавливаем дополнительные пакеты
|
||
RUN apt-get install -y \
|
||
curl \
|
||
wget \
|
||
git \
|
||
vim \
|
||
nano \
|
||
htop \
|
||
tree \
|
||
jq \
|
||
&& apt-get clean
|
||
|
||
# Устанавливаем yq
|
||
RUN wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_arm64 \
|
||
&& chmod +x /usr/local/bin/yq
|
||
|
||
# Устанавливаем Docker CLI
|
||
RUN apt-get install -y docker.io docker-compose
|
||
|
||
# Устанавливаем kubectl
|
||
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
|
||
&& chmod +x kubectl \
|
||
&& mv kubectl /usr/local/bin/
|
||
|
||
# Устанавливаем Helm
|
||
RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||
|
||
# Устанавливаем Kind
|
||
RUN curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-amd64 \
|
||
&& chmod +x ./kind \
|
||
&& mv ./kind /usr/local/bin/
|
||
|
||
## Устанавливаем Istio CLI
|
||
#RUN curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.22.1 sh - \
|
||
# && mv istio-1.22.1/bin/istioctl /usr/local/bin/ \
|
||
# && rm -rf istio-1.22.1
|
||
|
||
# Копируем requirements.yml
|
||
COPY requirements.yml /tmp/requirements.yml
|
||
|
||
# Устанавливаем Ansible коллекции
|
||
RUN ansible-galaxy collection install -r /tmp/requirements.yml
|
||
|
||
# Создаем пользователя ansible
|
||
RUN useradd -m -s /bin/bash ansible \
|
||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||
|
||
# Создаем рабочую директорию
|
||
WORKDIR /ansible
|
||
|
||
# Устанавливаем права
|
||
RUN chown -R ansible:ansible /ansible
|
||
|
||
# Переключаемся на пользователя ansible
|
||
USER ansible
|
||
|
||
# Устанавливаем дополнительные роли
|
||
RUN ansible-galaxy install geerlingguy.docker \
|
||
&& ansible-galaxy install geerlingguy.kubernetes
|
||
|
||
# Настройки для работы с Docker
|
||
ENV DOCKER_HOST=unix:///var/run/docker.sock
|
||
ENV ANSIBLE_FORCE_COLOR=1
|
||
ENV ANSIBLE_STDOUT_CALLBACK=yaml
|
||
ENV ANSIBLE_CALLBACKS_ENABLED=profile_tasks
|
||
|
||
# Команда по умолчанию
|
||
CMD ["sleep", "infinity"]
|