Fix ansible-lint config and migrate CentOS container to SSH-based testing

This commit is contained in:
Sebastian Palencsár
2025-06-19 05:38:27 +02:00
parent a70960b81b
commit 3e61be570f
2 changed files with 28 additions and 14 deletions

View File

@@ -39,10 +39,6 @@ rules:
comments: comments:
min-spaces-from-content: 1 min-spaces-from-content: 1
# Use specific Ansible version for linting
supported_ansible_versions:
- ">=6.0"
# Offline mode (don't check for newer ansible-lint versions) # Offline mode (don't check for newer ansible-lint versions)
offline: false offline: false

View File

@@ -204,7 +204,7 @@ jobs:
mkdir -p test-inventory mkdir -p test-inventory
cat > test-inventory/hosts <<EOF cat > test-inventory/hosts <<EOF
[wordpress_servers] [wordpress_servers]
test-centos ansible_connection=docker ansible_docker_extra_args="--user=root" test-centos ansible_host=localhost ansible_port=2223 ansible_user=testuser ansible_ssh_private_key_file=~/.ssh/id_rsa ansible_ssh_common_args='-o StrictHostKeyChecking=no'
EOF EOF
- name: Build CentOS test container - name: Build CentOS test container
@@ -212,27 +212,45 @@ jobs:
docker build -t test-centos:stream9 -f- . <<EOF docker build -t test-centos:stream9 -f- . <<EOF
FROM quay.io/centos/centos:stream9 FROM quay.io/centos/centos:stream9
RUN dnf update -y && dnf install -y \ RUN dnf update -y && dnf install -y \
python3 python3-pip sudo openssh-server systemd \ python3 python3-pip sudo openssh-server curl \
&& dnf clean all && dnf clean all
RUN useradd -m -s /bin/bash testuser && \ RUN useradd -m -s /bin/bash testuser && \
echo 'testuser ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers echo 'testuser ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
CMD ["/sbin/init"] # Configure SSH
RUN mkdir /var/run/sshd
RUN echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
RUN echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config
RUN echo 'PubkeyAuthentication yes' >> /etc/ssh/sshd_config
RUN ssh-keygen -A
EXPOSE 22
# Start SSH service in foreground to keep container running
CMD ["/usr/sbin/sshd", "-D"]
EOF EOF
- name: Run CentOS test container - name: Run CentOS test container
run: | run: |
# Generate SSH key (reuse from Ubuntu test)
mkdir -p ~/.ssh
if [ ! -f ~/.ssh/id_rsa ]; then
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
fi
# Start container
docker run -d --name test-centos \ docker run -d --name test-centos \
--privileged \ -p 2223:22 \
--tmpfs /tmp \
--tmpfs /run \
--tmpfs /run/lock \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
test-centos:stream9 test-centos:stream9
# Wait for container to be ready # Wait for SSH to be ready
sleep 10 sleep 10
# Check if container is running # Copy SSH key to container
docker exec test-centos mkdir -p /home/testuser/.ssh
docker cp ~/.ssh/id_rsa.pub test-centos:/home/testuser/.ssh/authorized_keys
docker exec test-centos chown -R testuser:testuser /home/testuser/.ssh
docker exec test-centos chmod 700 /home/testuser/.ssh
docker exec test-centos chmod 600 /home/testuser/.ssh/authorized_keys
# Test if container is running
if ! docker ps | grep -q test-centos; then if ! docker ps | grep -q test-centos; then
echo "CentOS container failed to start, checking logs:" echo "CentOS container failed to start, checking logs:"
docker logs test-centos docker logs test-centos