@@ -211,6 +211,74 @@ jobs:
211211 echo "=== New Docker transport inventory.yaml ==="
212212 cat ./inventory.yaml
213213 echo ::endgroup::
214+ - name : Prepare containers for Bolt tasks
215+ run : |
216+ echo ::group::prepare_containers
217+ for container in $(docker ps --format "{{.Names}}" | grep -v NAMES); do
218+ echo "=== Preparing container: $container ==="
219+
220+ # Install required packages for Amazon Linux 2023
221+ echo "Installing required packages:"
222+ docker exec $container yum update -y || echo "yum update failed"
223+ docker exec $container yum install -y \
224+ curl \
225+ wget \
226+ ca-certificates \
227+ hostname \
228+ procps-ng \
229+ util-linux \
230+ systemd \
231+ openssh-server \
232+ openssh-clients \
233+ tar \
234+ gzip \
235+ which \
236+ net-tools || echo "Package installation failed"
237+
238+ # Ensure hostname command works
239+ echo "Testing hostname command:"
240+ docker exec $container hostname || echo "hostname command failed"
241+ docker exec $container hostname -f || echo "hostname -f command failed"
242+
243+ # Ensure /tmp directory exists and has correct permissions
244+ echo "Creating and setting permissions for /tmp directory:"
245+ docker exec $container mkdir -p /tmp
246+ docker exec $container chmod 1777 /tmp
247+ docker exec $container ls -ld /tmp
248+
249+ # Ensure /var/tmp exists with correct permissions
250+ echo "Creating and setting permissions for /var/tmp directory:"
251+ docker exec $container mkdir -p /var/tmp
252+ docker exec $container chmod 1777 /var/tmp
253+ docker exec $container ls -ld /var/tmp
254+
255+ # Create a test file to verify write permissions
256+ echo "Testing write permissions:"
257+ docker exec $container touch /var/tmp/test_write_permissions || echo "Failed to create test file"
258+ docker exec $container rm -f /var/tmp/test_write_permissions || echo "Failed to remove test file"
259+
260+ # Ensure other required directories exist
261+ echo "Creating other required directories:"
262+ docker exec $container mkdir -p /var/log
263+ docker exec $container mkdir -p /etc/puppetlabs
264+ docker exec $container mkdir -p /opt/puppetlabs
265+
266+ # Set up proper hostname resolution
267+ echo "Setting up hostname resolution:"
268+ container_hostname=$(docker exec $container hostname)
269+ docker exec $container bash -c "echo '127.0.0.1 $container_hostname' >> /etc/hosts"
270+
271+ # Check available disk space
272+ echo "Disk space check:"
273+ docker exec $container df -h /var/tmp || echo "Cannot check disk space"
274+
275+ # Test basic commands that PE installer might need
276+ echo "Testing basic commands:"
277+ docker exec $container which curl || echo "curl not found"
278+ docker exec $container which tar || echo "tar not found"
279+ docker exec $container which systemctl || echo "systemctl not found"
280+ done
281+ echo ::endgroup::
214282 - name : Debug container setup
215283 run : |
216284 echo ::group::debug_container_setup
@@ -326,45 +394,6 @@ jobs:
326394 done || echo "Password authentication failed"
327395 done
328396 echo ::endgroup::
329- - name : Prepare containers for Bolt tasks
330- run : |
331- echo ::group::prepare_containers
332- for container in $(docker ps --format "{{.Names}}" | grep -v NAMES); do
333- echo "=== Preparing container: $container ==="
334-
335- # Install required packages
336- echo "Installing required packages:"
337- docker exec $container apt-get update || echo "apt-get update failed"
338- docker exec $container apt-get install -y curl wget ca-certificates || echo "Package installation failed"
339-
340- # Ensure /tmp directory exists and has correct permissions
341- echo "Creating and setting permissions for /tmp directory:"
342- docker exec $container mkdir -p /tmp
343- docker exec $container chmod 1777 /tmp
344- docker exec $container ls -ld /tmp
345-
346- # Ensure /var/tmp exists with correct permissions
347- echo "Creating and setting permissions for /var/tmp directory:"
348- docker exec $container mkdir -p /var/tmp
349- docker exec $container chmod 1777 /var/tmp
350- docker exec $container ls -ld /var/tmp
351-
352- # Create a test file to verify write permissions
353- echo "Testing write permissions:"
354- docker exec $container touch /var/tmp/test_write_permissions || echo "Failed to create test file"
355- docker exec $container rm -f /var/tmp/test_write_permissions || echo "Failed to remove test file"
356-
357- # Ensure other required directories exist
358- echo "Creating other required directories:"
359- docker exec $container mkdir -p /var/log
360- docker exec $container mkdir -p /etc/puppetlabs
361- docker exec $container mkdir -p /opt/puppetlabs
362-
363- # Check available disk space
364- echo "Disk space check:"
365- docker exec $container df -h /var/tmp || echo "Cannot check disk space"
366- done
367- echo ::endgroup::
368397 - name : Install PE on test cluster
369398 timeout-minutes : 120
370399 run : |
0 commit comments