IBM Bob Use Case · Arrow Experience Center

Project Atlas:
Multi-Cloud Fabric

One command deploys a complete application across AWS, Azure, and vCenter simultaneously — with HashiCorp Vault, Terraform, and Ansible working in concert. Zero hardcoded secrets. Zero manual steps.

HashiCorp Vault Terraform Ansible AWS · Azure · vCenter Frank Welder · Arrow ECS

The Numbers

1
Command to Deploy
3
Cloud Platforms
5–10 min
Zero to Running
0
Hardcoded Secrets
90%
Time Saved

What Bob Built

Project Atlas is a multi-cloud automation platform that orchestrates HashiCorp Vault, Terraform, and Ansible into a seamless deployment pipeline. Bob didn't just write scripts — Bob designed an entire automation architecture where each tool plays its precise role, and the whole system is held together by a single intelligent wrapper.

atlas deploy # Bob orchestrates: # ✓ Vault authentication + dynamic credential retrieval # ✓ Terraform provisions VMs across AWS + Azure + vCenter # ✓ Ansible inventory auto-generated from Terraform outputs # ✓ Ansible playbooks configure all systems # ✓ Application deployed and running — 5–10 minutes

How Bob Designed the Architecture

Act 1

The Vault Integration — Zero Secrets in Code

The core challenge: deploying to three cloud providers means managing AWS access keys, Azure credentials, and vCenter passwords. The naive approach puts them in environment variables or config files. Bob rejected that entirely.

Bob's Design

Every single credential is retrieved dynamically from Vault at runtime. Terraform pulls secrets at plan/apply time — no secrets in Git, no secrets in env vars, full audit trail through Vault's access logs.

data "vault_generic_secret" "aws_creds" { path = "aec-credentials/aws/aec-admin" } provider "aws" { access_key = data.vault_generic_secret.aws_creds.data["access_key"] secret_key = data.vault_generic_secret.aws_creds.data["secret_key"] # Credentials never touch disk or version control
Act 2

The Multi-Cloud Terraform — One Config, Three Providers

Each cloud has different APIs, resource types, and networking models. Bob designed unified Terraform modules that abstract away provider differences while preserving cloud-specific optimizations — same user, same SSH key, consistent configuration everywhere.

locals { common_user = "fwelder" ssh_key = data.vault_generic_secret.ssh_keys.data["public_key"] } # AWS EC2 · Azure VM · vCenter VM — same locals, three providers resource "aws_instance" "atlas" { user_data = local.cloud_init_config } resource "azurerm_virtual_machine" "atlas" { custom_data = local.cloud_init_config } resource "vsphere_virtual_machine" "atlas" { # same pattern }
Act 3

The Ansible Automation — Inventory Generated, Not Managed

After Terraform provisions infrastructure, the IPs are unknown until runtime. Manual Ansible inventory management is error-prone and breaks repeatability. Bob's solution: Terraform generates the Ansible inventory automatically as part of its apply output.

resource "local_file" "ansible_inventory" { content = templatefile("inventory.tpl", { aws_ip = aws_instance.atlas.public_ip azure_ip = azurerm_public_ip.atlas.ip_address vcenter_ip = vsphere_virtual_machine.atlas.default_ip_address }) filename = "../ansible/inventory/hosts.yml" } # Ansible always has exactly the right inventory — zero manual steps
Act 4

The Wrapper Script — One Command, Full Lifecycle

Even with all three tools automated, running them in the right order with the right error handling requires orchestration. Bob created manage-atlas.sh — an intelligent wrapper that handles authentication, deployment, configuration, verification, and cleanup with built-in error recovery.

./manage-atlas.sh deploy # 1. Verify Vault authentication # 2. terraform plan (preview changes) # 3. terraform apply (provision infrastructure) # 4. Generate Ansible inventory from outputs # 5. Run Ansible playbooks (configure all systems) # 6. Display connection endpoints # Built-in state lock detection and recovery

Progressive Demo Suite

Bob designed Atlas as a progression — three demo versions for different audiences and engagement depths, each building on the same Vault-first foundation.

v2.0 — Simple Web
10–15 minutes

Three identical static websites across AWS, Azure, and vCenter. Perfect for demonstrating the pattern without complexity overhead.

v2.1 — Three-Tier App
20–30 minutes

Real e-commerce app — web tier (AWS), API tier (Azure), database tier (vCenter). All talking across clouds. Production-realistic.

v2.1.5 — Hybrid Cloud
25–35 minutes

Traditional VMs + Red Hat OpenShift on IBM Fusion HCI. Demonstrates the migration path from legacy to cloud-native.

v2.2 — Microservices
30–45 minutes

5+ containerized microservices, API gateway, service mesh, message queues. Cloud-native architecture for advanced audiences.

Outcomes

Single command deploys across 3 cloud providers
Zero long-lived secrets — all credentials dynamic via Vault
Terraform generates Ansible inventory automatically
90% time savings vs manual multi-cloud deployment
100% configuration consistency across all platforms
4 progressive demo versions for any audience depth

Atlas is part of the R Co AEC ecosystemSee the platform foundation that Atlas underpins at rcoace.com.