End-to-End Execution Guide

A fully automated workflow from a clean machine to a running cluster.

Step 1: Bootstrap the Control Node

From a clean Ubuntu machine that will act as your control node, clone the two Ansible repositories. Then, run the bootstrap script in each project directory. This only needs to be done once.

# Clone the repositories
git clone https://github.com/sddcinfo/ansible-provisioning-server.git
git clone https://github.com/sddcinfo/ansible-kubernetes-nodes.git

# Bootstrap the provisioning project
cd ansible-provisioning-server
./bootstrap.sh

# Bootstrap the Kubernetes project
cd ../ansible-kubernetes-nodes
./bootstrap.sh

Step 2: Configure Your Environment

Before running the playbooks, configure the variables to match your hardware in both projects as described in the previous documentation.

Step 3: Run the Provisioning Server Playbook

This command configures your central server and generates the necessary SSH keys for automation.

cd ../ansible-provisioning-server
ansible-playbook -i inventory site.yml

Step 4: Synchronize the SSH Keys

This is the new, automated step that replaces the manual copy-paste process. This playbook connects to the provisioning server, fetches the public keys, and injects them into the Kubernetes project.

cd ../ansible-kubernetes-nodes
ansible-playbook sync_keys.yml

Step 5: Boot the Bare-Metal Nodes

Power on your servers. They will automatically PXE boot and install Ubuntu. Monitor the progress on the live status page at http://10.10.1.1.

Step 6: Run the Kubernetes Cluster Playbook

Once the status page shows your nodes as "DONE", run the final playbook to configure the cluster.

ansible-playbook -i inventory.ini site.yml

After this playbook completes, your Kubernetes cluster will be fully operational.