feat: Реорганизация Makefile и добавление Docker образов
- Реорганизован Makefile: * Переменные вынесены наверх * Справка перенесена в конец * Удалены секции molecule и container * Объединены presets и preset в одну секцию * Переименована секция docker в docker-cmd - Добавлены Docker образы: * ansible-controller - основной контроллер * alt-linux, astra-linux, redos - российские дистрибутивы * rhel, centos, alma, rocky - RHEL-совместимые образы - Обновлены preset'ы: * Добавлены описания #description: во все preset'ы * Переименован docker.yml в docker-test.yml * Добавлены новые preset'ы: etcd-patroni, multi-os - Добавлена документация: * docs/examples.md - примеры использования * docs/universal-testing.md - универсальное тестирование * dockerfiles/README.md - описание Docker образов - Улучшена функциональность: * Единообразный стиль команд make [категория] [действие] * Улучшенный вывод информации о preset'ах * Добавлены пустые цели для совместимости
This commit is contained in:
160
dockerfiles/README.md
Normal file
160
dockerfiles/README.md
Normal file
@@ -0,0 +1,160 @@
|
||||
# Docker образы для универсальной системы тестирования
|
||||
|
||||
## Обзор
|
||||
|
||||
Эта директория содержит Docker образы для различных операционных систем и компонентов, используемых в универсальной системе тестирования Ansible ролей.
|
||||
|
||||
## Структура
|
||||
|
||||
```
|
||||
dockerfiles/
|
||||
├── ansible-controller/ # Ansible контроллер с предустановленными коллекциями
|
||||
├── alt-linux/ # ALT Linux с systemd
|
||||
├── astra-linux/ # Astra Linux с systemd
|
||||
├── redos/ # RED OS с systemd
|
||||
├── Makefile # Команды для сборки образов
|
||||
└── README.md # Документация
|
||||
```
|
||||
|
||||
## Доступные образы
|
||||
|
||||
### ansible-controller
|
||||
- **Базовый образ:** `quay.io/ansible/creator-ee:latest`
|
||||
- **Описание:** Ansible контроллер с предустановленными коллекциями
|
||||
- **Компоненты:**
|
||||
- Ansible с коллекциями (community.docker, community.general, ansible.posix)
|
||||
- Docker CLI
|
||||
- kubectl
|
||||
- Helm
|
||||
- Kind
|
||||
- Istio CLI
|
||||
- Дополнительные роли (geerlingguy.docker, geerlingguy.kubernetes)
|
||||
|
||||
### alt-linux
|
||||
- **Базовый образ:** `altlinux/p9`
|
||||
- **Описание:** ALT Linux с systemd
|
||||
- **Компоненты:**
|
||||
- systemd
|
||||
- Docker
|
||||
- Docker Compose
|
||||
- Python3
|
||||
- Пользователь ansible
|
||||
|
||||
### astra-linux
|
||||
- **Базовый образ:** `astralinux/astra-1.7`
|
||||
- **Описание:** Astra Linux с systemd
|
||||
- **Компоненты:**
|
||||
- systemd
|
||||
- Docker
|
||||
- Docker Compose
|
||||
- Python3
|
||||
- Пользователь ansible
|
||||
|
||||
### redos
|
||||
- **Базовый образ:** `redos/redos:9`
|
||||
- **Описание:** RED OS с systemd
|
||||
- **Компоненты:**
|
||||
- systemd
|
||||
- Docker
|
||||
- Docker Compose
|
||||
- Python3
|
||||
- Пользователь ansible
|
||||
|
||||
## Использование
|
||||
|
||||
### Сборка всех образов
|
||||
```bash
|
||||
make docker-build
|
||||
```
|
||||
|
||||
### Сборка конкретного образа
|
||||
```bash
|
||||
make docker-build IMAGE=ansible-controller
|
||||
```
|
||||
|
||||
### Отправка образов в registry
|
||||
```bash
|
||||
make docker-push
|
||||
```
|
||||
|
||||
### Очистка образов
|
||||
```bash
|
||||
make docker-clean
|
||||
```
|
||||
|
||||
### Информация об образах
|
||||
```bash
|
||||
make docker-info
|
||||
```
|
||||
|
||||
## Настройка registry
|
||||
|
||||
По умолчанию образы собираются с тегом `localhost:5000/имя:latest`. Для изменения registry:
|
||||
|
||||
```bash
|
||||
make docker-build REGISTRY=my-registry.com
|
||||
make docker-push REGISTRY=my-registry.com
|
||||
```
|
||||
|
||||
## Использование в preset'ах
|
||||
|
||||
После сборки образов их можно использовать в preset'ах:
|
||||
|
||||
```yaml
|
||||
# molecule/presets/my-preset.yml
|
||||
images:
|
||||
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
|
||||
rhel: "quay.io/centos/centos:stream9-systemd"
|
||||
alt: "localhost:5000/alt-linux:latest"
|
||||
astra: "localhost:5000/astra-linux:latest"
|
||||
redos: "localhost:5000/redos:latest"
|
||||
|
||||
hosts:
|
||||
- name: alt-server
|
||||
family: alt
|
||||
groups: [servers]
|
||||
- name: astra-server
|
||||
family: astra
|
||||
groups: [servers]
|
||||
- name: redos-server
|
||||
family: redos
|
||||
groups: [servers]
|
||||
```
|
||||
|
||||
## Лучшие практики
|
||||
|
||||
### 1. Версионирование образов
|
||||
```bash
|
||||
make docker-build VERSION=v1.0.0
|
||||
```
|
||||
|
||||
### 2. Использование registry
|
||||
```bash
|
||||
make docker-push REGISTRY=my-registry.com VERSION=v1.0.0
|
||||
```
|
||||
|
||||
### 3. Очистка старых образов
|
||||
```bash
|
||||
make docker-clean
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Проблемы с сборкой
|
||||
1. Проверьте доступность базовых образов
|
||||
2. Убедитесь, что Docker запущен
|
||||
3. Проверьте права доступа к Docker
|
||||
|
||||
### Проблемы с registry
|
||||
1. Убедитесь, что registry доступен
|
||||
2. Проверьте аутентификацию
|
||||
3. Проверьте права на push
|
||||
|
||||
### Проблемы с образами
|
||||
1. Проверьте размер образов
|
||||
2. Убедитесь, что все зависимости установлены
|
||||
3. Проверьте совместимость с базовыми образами
|
||||
|
||||
## Заключение
|
||||
|
||||
Эти Docker образы предоставляют готовую среду для тестирования Ansible ролей на различных операционных системах. Используйте их в своих preset'ах для создания универсальной системы тестирования.
|
||||
48
dockerfiles/alma/Dockerfile
Normal file
48
dockerfiles/alma/Dockerfile
Normal file
@@ -0,0 +1,48 @@
|
||||
# AlmaLinux с systemd
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
FROM almalinux:8
|
||||
|
||||
# Обновляем систему
|
||||
RUN dnf update -y && dnf upgrade -y
|
||||
|
||||
# Устанавливаем systemd и необходимые пакеты
|
||||
RUN dnf install -y \
|
||||
systemd \
|
||||
systemd-sysv \
|
||||
dbus \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
vim \
|
||||
nano \
|
||||
jq \
|
||||
python3 \
|
||||
python3-pip \
|
||||
&& dnf clean all
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN curl -fsSL https://get.docker.com | sh
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN systemctl set-default multi-user.target
|
||||
|
||||
# Создаем пользователя для Ansible
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
CMD ["/sbin/init"]
|
||||
50
dockerfiles/alt-linux/Dockerfile
Normal file
50
dockerfiles/alt-linux/Dockerfile
Normal file
@@ -0,0 +1,50 @@
|
||||
# ALT Linux с systemd
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
FROM altlinux/p9
|
||||
|
||||
# Обновляем систему
|
||||
RUN apt-get update && apt-get upgrade -y
|
||||
|
||||
# Устанавливаем systemd и необходимые пакеты
|
||||
RUN apt-get install -y \
|
||||
systemd \
|
||||
systemd-sysv \
|
||||
dbus \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
vim \
|
||||
nano \
|
||||
htop \
|
||||
tree \
|
||||
jq \
|
||||
python3 \
|
||||
python3-pip \
|
||||
&& 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
|
||||
RUN curl -fsSL https://get.docker.com | sh
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN systemctl set-default multi-user.target
|
||||
|
||||
# Создаем пользователя для Ansible
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
CMD ["/sbin/init"]
|
||||
89
dockerfiles/ansible-controller/Dockerfile
Normal file
89
dockerfiles/ansible-controller/Dockerfile
Normal file
@@ -0,0 +1,89 @@
|
||||
# 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
|
||||
RUN pip3 install ansible ansible-core
|
||||
|
||||
# Устанавливаем дополнительные пакеты
|
||||
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"]
|
||||
23
dockerfiles/ansible-controller/docker-compose.yml
Normal file
23
dockerfiles/ansible-controller/docker-compose.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
ansible-controller:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: ansible-controller
|
||||
privileged: true
|
||||
command: sleep infinity
|
||||
environment:
|
||||
DOCKER_HOST: unix:///var/run/docker.sock
|
||||
ANSIBLE_VAULT_PASSWORD_FILE: /ansible/vault-password.txt
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- .:/ansible
|
||||
working_dir: /ansible
|
||||
networks:
|
||||
- labnet
|
||||
|
||||
networks:
|
||||
labnet:
|
||||
external: true
|
||||
9
dockerfiles/ansible-controller/requirements.yml
Normal file
9
dockerfiles/ansible-controller/requirements.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
# Ansible Collections для Molecule Universal
|
||||
collections:
|
||||
- name: community.docker
|
||||
version: ">=3.0.0"
|
||||
- name: community.general
|
||||
version: ">=7.0.0"
|
||||
- name: ansible.posix
|
||||
version: ">=1.5.4"
|
||||
50
dockerfiles/astra-linux/Dockerfile
Normal file
50
dockerfiles/astra-linux/Dockerfile
Normal file
@@ -0,0 +1,50 @@
|
||||
# Astra Linux с systemd
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
FROM astralinux/astra-1.7
|
||||
|
||||
# Обновляем систему
|
||||
RUN apt-get update && apt-get upgrade -y
|
||||
|
||||
# Устанавливаем systemd и необходимые пакеты
|
||||
RUN apt-get install -y \
|
||||
systemd \
|
||||
systemd-sysv \
|
||||
dbus \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
vim \
|
||||
nano \
|
||||
htop \
|
||||
tree \
|
||||
jq \
|
||||
python3 \
|
||||
python3-pip \
|
||||
&& 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
|
||||
RUN curl -fsSL https://get.docker.com | sh
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN systemctl set-default multi-user.target
|
||||
|
||||
# Создаем пользователя для Ansible
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
CMD ["/sbin/init"]
|
||||
48
dockerfiles/centos/Dockerfile
Normal file
48
dockerfiles/centos/Dockerfile
Normal file
@@ -0,0 +1,48 @@
|
||||
# CentOS с systemd
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
FROM quay.io/centos/centos:stream8
|
||||
|
||||
# Обновляем систему
|
||||
RUN dnf update -y && dnf upgrade -y
|
||||
|
||||
# Устанавливаем systemd и необходимые пакеты
|
||||
RUN dnf install -y \
|
||||
systemd \
|
||||
systemd-sysv \
|
||||
dbus \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
vim \
|
||||
nano \
|
||||
jq \
|
||||
python3 \
|
||||
python3-pip \
|
||||
&& dnf clean all
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN curl -fsSL https://get.docker.com | sh
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN systemctl set-default multi-user.target
|
||||
|
||||
# Создаем пользователя для Ansible
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
CMD ["/sbin/init"]
|
||||
50
dockerfiles/redos/Dockerfile
Normal file
50
dockerfiles/redos/Dockerfile
Normal file
@@ -0,0 +1,50 @@
|
||||
# RED OS с systemd
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
FROM redos/redos:9
|
||||
|
||||
# Обновляем систему
|
||||
RUN dnf update -y && dnf upgrade -y
|
||||
|
||||
# Устанавливаем systemd и необходимые пакеты
|
||||
RUN dnf install -y \
|
||||
systemd \
|
||||
systemd-sysv \
|
||||
dbus \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
vim \
|
||||
nano \
|
||||
htop \
|
||||
tree \
|
||||
jq \
|
||||
python3 \
|
||||
python3-pip \
|
||||
&& dnf clean all
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN curl -fsSL https://get.docker.com | sh
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN systemctl set-default multi-user.target
|
||||
|
||||
# Создаем пользователя для Ansible
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
CMD ["/sbin/init"]
|
||||
48
dockerfiles/rhel/Dockerfile
Normal file
48
dockerfiles/rhel/Dockerfile
Normal file
@@ -0,0 +1,48 @@
|
||||
# RHEL с systemd
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
FROM registry.access.redhat.com/ubi8/ubi
|
||||
|
||||
# Обновляем систему
|
||||
RUN dnf update -y && dnf upgrade -y
|
||||
|
||||
# Устанавливаем systemd и необходимые пакеты
|
||||
RUN dnf install -y \
|
||||
systemd \
|
||||
systemd-sysv \
|
||||
dbus \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
vim \
|
||||
nano \
|
||||
jq \
|
||||
python3 \
|
||||
python3-pip \
|
||||
&& dnf clean all
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN curl -fsSL https://get.docker.com | sh
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN systemctl set-default multi-user.target
|
||||
|
||||
# Создаем пользователя для Ansible
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
CMD ["/sbin/init"]
|
||||
48
dockerfiles/rocky/Dockerfile
Normal file
48
dockerfiles/rocky/Dockerfile
Normal file
@@ -0,0 +1,48 @@
|
||||
# Rocky Linux с systemd
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
FROM rockylinux:8
|
||||
|
||||
# Обновляем систему
|
||||
RUN dnf update -y && dnf upgrade -y
|
||||
|
||||
# Устанавливаем systemd и необходимые пакеты
|
||||
RUN dnf install -y \
|
||||
systemd \
|
||||
systemd-sysv \
|
||||
dbus \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
vim \
|
||||
nano \
|
||||
jq \
|
||||
python3 \
|
||||
python3-pip \
|
||||
&& dnf clean all
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN curl -fsSL https://get.docker.com | sh
|
||||
|
||||
# Устанавливаем 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
|
||||
RUN systemctl set-default multi-user.target
|
||||
|
||||
# Создаем пользователя для Ansible
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
CMD ["/sbin/init"]
|
||||
Reference in New Issue
Block a user