fix: исправлены Dockerfile для systemd и molecule для тестирования
- Исправлены все Dockerfile (удален USER ansible перед CMD) Причина: systemd должен запускаться от root (PID 1) - Исправлены параметры в molecule/default/create.yml (environment → env для модуля community.docker.docker_container) - Добавлен -u root в Makefile для запуска контейнера - Добавлена переменная MOLECULE_EPHEMERAL_DIRECTORY - Удалена роль nginx из deploy.yml (не существует) Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
4
Makefile
4
Makefile
@@ -73,10 +73,12 @@ role:
|
||||
echo "🔧 Запуск ansible-controller контейнера..."; \
|
||||
docker run --rm --name $(CONTAINER_NAME) -v "$(PWD):/workspace" -w /workspace \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-u root \
|
||||
-e ANSIBLE_FORCE_COLOR=1 \
|
||||
-e MOLECULE_PRESET=$$PRESET \
|
||||
-e MOLECULE_EPHEMERAL_DIRECTORY=/tmp/molecule_workspace \
|
||||
$(DOCKER_IMAGE) \
|
||||
bash -c "cd molecule/default && ansible-playbook -i localhost, create.yml --connection=local && ansible-playbook -i /tmp/molecule_workspace/inventory/hosts.ini site.yml && ansible-playbook -i localhost, destroy.yml --connection=local" || echo "✅ Тестирование завершено"; \
|
||||
bash -c "mkdir -p /tmp/molecule_workspace/inventory && cd molecule/default && ansible-playbook -i localhost, create.yml --connection=local -e molecule_ephemeral_directory=/tmp/molecule_workspace && ansible-playbook -i /tmp/molecule_workspace/inventory/hosts.ini site.yml && ansible-playbook -i localhost, destroy.yml --connection=local -e molecule_ephemeral_directory=/tmp/molecule_workspace" || echo "✅ Тестирование завершено"; \
|
||||
fi;; \
|
||||
deploy) \
|
||||
echo "🚀 Развертывание ролей на реальные серверы..."; \
|
||||
|
||||
@@ -11,12 +11,3 @@
|
||||
tags:
|
||||
- ping
|
||||
- test
|
||||
|
||||
- name: Test nginx role
|
||||
hosts: all
|
||||
become: true
|
||||
roles:
|
||||
- nginx
|
||||
tags:
|
||||
- nginx
|
||||
- test
|
||||
|
||||
@@ -43,9 +43,5 @@ RUN systemctl set-default multi-user.target
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
# Команда по умолчанию (система запускается от root для systemd)
|
||||
CMD ["/sbin/init"]
|
||||
@@ -48,9 +48,5 @@ RUN systemctl set-default multi-user.target
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
# Команда по умолчанию (система запускается от root для systemd)
|
||||
CMD ["/sbin/init"]
|
||||
|
||||
@@ -53,9 +53,5 @@ RUN systemctl set-default multi-user.target
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
# Команда по умолчанию (система запускается от root для systemd)
|
||||
CMD ["/sbin/init"]
|
||||
|
||||
@@ -40,9 +40,5 @@ RUN systemctl set-default multi-user.target
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
# Команда по умолчанию (система запускается от root для systemd)
|
||||
CMD ["/sbin/init"]
|
||||
|
||||
@@ -48,9 +48,5 @@ RUN systemctl set-default multi-user.target
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
# Команда по умолчанию (система запускается от root для systemd)
|
||||
CMD ["/sbin/init"]
|
||||
|
||||
@@ -45,9 +45,5 @@ RUN systemctl set-default multi-user.target
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
# Команда по умолчанию (система запускается от root для systemd)
|
||||
CMD ["/sbin/init"]
|
||||
|
||||
@@ -40,9 +40,5 @@ RUN systemctl set-default multi-user.target
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
# Команда по умолчанию (система запускается от root для systemd)
|
||||
CMD ["/sbin/init"]
|
||||
|
||||
@@ -42,9 +42,5 @@ RUN systemctl set-default multi-user.target
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
# Команда по умолчанию (система запускается от root для systemd)
|
||||
CMD ["/sbin/init"]
|
||||
|
||||
@@ -48,9 +48,5 @@ RUN systemctl set-default multi-user.target
|
||||
RUN useradd -m -s /bin/bash ansible \
|
||||
&& echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
# Переключаемся на пользователя ansible
|
||||
USER ansible
|
||||
WORKDIR /home/ansible
|
||||
|
||||
# Команда по умолчанию
|
||||
# Команда по умолчанию (система запускается от root для systemd)
|
||||
CMD ["/sbin/init"]
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
tmpfs: "{{ systemd_defaults.tmpfs | default([]) }}"
|
||||
capabilities: "{{ systemd_defaults.capabilities | default([]) }}"
|
||||
published_ports: "{{ item.publish | default([]) }}"
|
||||
environment: "{{ item.env | default({}) }}"
|
||||
env: "{{ item.env | default({}) }}"
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
loop: "{{ hosts | selectattr('type','undefined') | list }}"
|
||||
@@ -86,7 +86,7 @@
|
||||
networks:
|
||||
- name: "{{ docker_network }}"
|
||||
privileged: true
|
||||
environment:
|
||||
env:
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
published_ports: "{{ item.publish | default([]) }}"
|
||||
volumes: "{{ (item.volumes | default([])) + [item.name + '-docker:/var/lib/docker'] }}"
|
||||
@@ -108,7 +108,7 @@
|
||||
tmpfs: "{{ systemd_defaults.tmpfs | default([]) }}"
|
||||
capabilities: "{{ systemd_defaults.capabilities | default([]) }}"
|
||||
published_ports: "{{ item.publish | default([]) }}"
|
||||
environment: "{{ item.env | default({}) }}"
|
||||
env: "{{ item.env | default({}) }}"
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
loop: "{{ hosts | selectattr('type','defined') | selectattr('type','equalto','dood') | list }}"
|
||||
|
||||
Reference in New Issue
Block a user