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.