The platform enforces absolute isolation across the execution grid. By decoupling execution tools from the host operating system, target nodes require no pre-installed development packages, language runtimes, or custom binaries.
Instead, a target node simply needs a standardized, hardened container runtime base. All pipeline jobs, testing loops, and orchestration scripts run inside purpose-built, disposable container environments.
The transition from a raw compute template to an active, containerized execution worker follows a strict, repeatable path:
graph TD
A[Packer vSphere Build<br/><code>vm-templates / Golden Base</code>] --> B[Enable Docker Engine<br/><code>site.yml: bootstrap_docker</code>]
B --> C[Hydrate Service Stack<br/><code>site.yml: bootstrap_docker_stack</code>]
C --> D[Layered Agent Invocation<br/><code>jenkins-docker-agent / runner</code>]
style A fill:#f1f5f9,stroke:#cbd5e1,stroke-width:2px;
style B fill:#f1f5f9,stroke:#cbd5e1,stroke-width:2px;
style C fill:#f1f5f9,stroke:#cbd5e1,stroke-width:2px;
style D fill:#f1f5f9,stroke:#cbd5e1,stroke-width:2px;
bootstrap_docker)site.yml -> --tags bootstrap-dockeroverlay2) and secures local container sockets. This establishes the absolute maximum requirements permitted on a host node.bootstrap_docker_stack)site.yml -> --tags bootstrap-docker-stackvm-templates)github.com/lj020326/vm-templatesjenkins-docker-agent)github.com/lj020326/jenkins-docker-agentdocker-ansible-runner)github.com/lj020326/docker-ansible-runnersite.yml, it executes within this wrapper, ensuring identical results whether run from an operator’s workstation or a remote automated agent.This configuration block shows how the generic bootstrap_docker_stack role parses a unified variable matrix to stand up an execution runner cluster with secure credentials, completely eliminating manual setup steps:
# Inside inventory/group_vars/automation_runners.yml
docker_stack_name: "jenkins-agent-grid"
docker_stack_type: "swarm" # Options: standalone | swarm
docker_stack_secrets:
- secret_name: "jenkins-agent-secret"
secret_value: "{{ vault_jenkins_agent_token }}"
secret_type: "text"
docker_stack_services:
- service_name: "ansible-worker-node"
image: "lj020326/jenkins-docker-agent:latest"
replicas: 4
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- "JENKINS_URL=[https://jenkins.local.dettonville.cloud](https://jenkins.local.dettonville.cloud)"
secrets:
- "jenkins-agent-secret"
ansible-playbook -i inventory/hosts site.yml \
--tags "bootstrap-docker,bootstrap-docker-stack" \
--limit "runner_hosts"
ansible-playbook -i inventory/hosts site.yml \
--tags "bootstrap-docker-stack" \
--list-tasks