Files
ansible-playbooks/behemoth-containers.yaml
2025-11-28 17:26:03 -08:00

51 lines
1.5 KiB
YAML

---
- name: Rebuild Behemoth Containers
hosts: all
become: yes
tasks:
- name: Get Build File Listing
shell: "ls -lR /opt/containers/*/build.sh | cut -b 41- | cut -d '/' -f 1-4"
register: behemoth_container_output
- name: Get Name Listing
shell: "ls -lR /opt/containers/*/build.sh | cut -b 41- | cut -d '/' -f 4"
register: folder_name_output
- name: Combine folder names and paths into a list of dictionaries
set_fact:
behemoth_containers: "{{ behemoth_containers | default([]) + [{'folder_name': item[0], 'folder_path': item[1]}] }}"
loop: "{{ folder_name_output.stdout_lines | zip(behemoth_container_output.stdout_lines) }}"
loop_control:
label: "{{ item[0] }}"
- name: Build images
docker_image:
name: "{{ item.folder_name }}"
source: build
build:
path: "{{ item.folder_path }}"
state: present
tag: latest
loop: "{{ behemoth_containers }}"
register: build_output
ignore_errors: true
- name: Output Debug
debug:
msg:
- "Container name: {{item.item.folder_name}}"
- "Build Environment: {{item.item.folder_path}}"
- "Container Size: {{ (item.image.Size / 1048576 | float) | round(2) }} MB"
- "{{ 'Image updated' if item.changed else 'No Change Made' }}"
- "{{ 'Warning: Failure Detected' if item.failed else 'No Failure Detected' }}"
loop: "{{ build_output.results }}"
loop_control:
label: "{{ item.item.folder_name }}"
...