Update docs and roles for agent on all nodes

- Switch compute-blade-agent deployment from workers to all nodes
  (control-plane and workers)
- Use /usr/bin/compute-blade-agent instead of /usr/local/bin
- Update verification scripts to reference /usr/bin/compute-blade-agent
- Update docs to refer to all nodes across Deployment Guide, Checklist,
  and Getting Started
- Change site.yml to install on all hosts instead of just workers
- Align example commands to the all-nodes workflow
This commit is contained in:
2026-01-12 08:54:41 +01:00
parent 2beb6aadfe
commit fd7c9239b5
7 changed files with 71 additions and 65 deletions

View File

@@ -1,6 +1,6 @@
# Compute Blade Agent Deployment Guide
Quick reference for deploying and managing the Compute Blade Agent in your k3s-ansible cluster.
Quick reference for deploying and managing the Compute Blade Agent on all nodes in your k3s-ansible cluster (control-plane and worker nodes).
## Quick Start
@@ -49,28 +49,28 @@ cm4-04 ansible_host=192.168.30.104 ansible_user=pi
### Check Service Status
```bash
ssh pi@<worker-ip>
ssh pi@<node-ip>
sudo systemctl status compute-blade-agent
```
### View Logs
```bash
ssh pi@<worker-ip>
ssh pi@<node-ip>
sudo journalctl -u compute-blade-agent -f
```
### Check Installation
```bash
ssh pi@<worker-ip>
/usr/local/bin/compute-blade-agent --version
ssh pi@<node-ip>
/usr/bin/compute-blade-agent --version
ls -la /etc/compute-blade-agent/
```
## File Locations
- **Binary**: `/usr/local/bin/compute-blade-agent`
- **Binary**: `/usr/bin/compute-blade-agent`
- **Config**: `/etc/compute-blade-agent/config.yaml`
- **Systemd Service**: `/etc/systemd/system/compute-blade-agent.service`
- **Logs**: `journalctl -u compute-blade-agent`
@@ -81,7 +81,7 @@ Configure via `BLADE_` prefixed environment variables:
```bash
export BLADE_CONFIG_PATH=/etc/compute-blade-agent/config.yaml
/usr/local/bin/compute-blade-agent
/usr/bin/compute-blade-agent
```
## Monitoring
@@ -146,7 +146,7 @@ sudo systemctl restart compute-blade-agent
```bash
# SSH to node
ssh pi@<worker-ip>
ssh pi@<node-ip>
# Check if uninstall script exists
ls -la /usr/local/bin/*compute-blade*
@@ -163,14 +163,14 @@ ansible-playbook site.yml --tags compute-blade-agent
### From Single Node
```bash
ssh pi@<worker-ip>
ssh pi@<node-ip>
sudo bash /usr/local/bin/k3s-uninstall-compute-blade-agent.sh
```
### From All Worker Nodes
### From All Nodes
```bash
ansible worker -m shell -a "bash /usr/local/bin/k3s-uninstall-compute-blade-agent.sh" --become
ansible k3s_cluster -m shell -a "bash /usr/local/bin/k3s-uninstall-compute-blade-agent.sh" --become
```
## Features

View File

@@ -1,4 +1,4 @@
# Compute Blade Agent Deployment Checklist
# K3s Cluster Deployment Checklist (with Compute Blade Agent on All Nodes)
## Pre-Deployment
@@ -20,7 +20,7 @@ This will:
1. Prepare all nodes (prerequisites)
2. Install K3s server on master
3. Install K3s agents on workers
4. Install compute-blade-agent on workers
4. Install compute-blade-agent on all nodes (control-plane and workers)
5. Deploy test nginx application
- [ ] Start full deployment
@@ -43,7 +43,7 @@ ansible-playbook site.yml --tags compute-blade-agent
```
- [ ] Use on existing K3s cluster
- [ ] Deploy agent to all configured workers
- [ ] Deploy agent to all configured nodes (masters and workers)
- [ ] Verify with verification script
## Post-Deployment Verification
@@ -64,7 +64,7 @@ bash scripts/verify-compute-blade-agent.sh
```
- [ ] All worker nodes pass connectivity check
- [ ] Binary is installed at `/usr/local/bin/compute-blade-agent`
- [ ] Binary is installed at `/usr/bin/compute-blade-agent`
- [ ] Service status shows "Running"
- [ ] Config file exists at `/etc/compute-blade-agent/config.yaml`
@@ -126,7 +126,7 @@ kubectl apply -f manifests/compute-blade-agent-daemonset.yaml
- [ ] Check status: `sudo systemctl status compute-blade-agent`
- [ ] Check logs: `sudo journalctl -u compute-blade-agent -f`
- [ ] Check if binary exists: `ls -la /usr/local/bin/compute-blade-agent`
- [ ] Check if binary exists: `ls -la /usr/bin/compute-blade-agent`
- [ ] Check systemd unit: `cat /etc/systemd/system/compute-blade-agent.service`
### Installation Failed
@@ -159,7 +159,7 @@ enable_compute_blade_agent=true # or false
### Per-Node Configuration
Note: cm4-02 and cm4-03 are now **master nodes**, not workers. To enable/disable compute-blade-agent on specific nodes:
Compute-blade-agent is now installed on all nodes (control-plane and workers). To enable/disable on specific nodes:
```ini
[master]
@@ -172,9 +172,8 @@ cm4-04 ansible_host=192.168.30.104 ansible_user=pi enable_compute_blade_agent=tr
```
- [ ] Per-node settings configured as needed
- [ ] Master nodes typically don't need compute-blade-agent
- [ ] Saved inventory file
- [ ] Re-run playbook if changes made
- [ ] Re-run playbook if changes made: `ansible-playbook site.yml --tags compute-blade-agent`
### Agent Configuration
@@ -211,13 +210,13 @@ sudo journalctl -u compute-blade-agent -f
- [ ] Monitor for any issues
- [ ] Press Ctrl+C to exit
### Check Service on All Workers
### Check Service on All Nodes
```bash
ansible worker -m shell -a "systemctl status compute-blade-agent" --become
ansible k3s_cluster -m shell -a "systemctl status compute-blade-agent" --become
```
- [ ] All workers show active status
- [ ] All nodes show active status
## HA Cluster Maintenance
@@ -243,8 +242,8 @@ watch kubectl get nodes
### Uninstall K3s from All Nodes
```bash
ansible all -m shell -a "bash /usr/local/bin/k3s-uninstall.sh" --become
ansible worker -m shell -a "bash /usr/local/bin/k3s-agent-uninstall.sh" --become
ansible k3s_cluster -m shell -a "bash /usr/local/bin/k3s-uninstall.sh" --become
ansible k3s_cluster -m shell -a "bash /usr/local/bin/k3s-agent-uninstall.sh 2>/dev/null || true" --become
```
- [ ] All K3s services stopped

View File

@@ -41,7 +41,7 @@ This will:
1. Prepare all nodes (10-15 minutes)
2. Install K3s server on master (5 minutes)
3. Install K3s agents on workers (5 minutes)
4. Install compute-blade-agent on workers (2-3 minutes per node)
4. Install compute-blade-agent on all nodes (2-3 minutes per node)
5. Deploy test application (1 minute)
**Total time**: ~30-45 minutes
@@ -67,7 +67,7 @@ cm4-04 Ready <none> 3m v1.35.0+k3s1
### Enable/Disable Agent
To enable agent on all workers (default):
To enable agent on all nodes (default):
```ini
[k3s_cluster:vars]
@@ -83,10 +83,13 @@ enable_compute_blade_agent=false
To enable/disable on specific nodes:
```ini
[master]
cm4-01 ansible_host=192.168.30.101 ansible_user=pi k3s_server_init=true enable_compute_blade_agent=true
cm4-02 ansible_host=192.168.30.102 ansible_user=pi k3s_server_init=false enable_compute_blade_agent=false
cm4-03 ansible_host=192.168.30.103 ansible_user=pi k3s_server_init=false enable_compute_blade_agent=false
[worker]
cm4-02 ansible_host=192.168.30.102 ansible_user=pi enable_compute_blade_agent=true
cm4-03 ansible_host=192.168.30.103 ansible_user=pi enable_compute_blade_agent=false
cm4-04 ansible_host=192.168.30.104 ansible_user=pi
cm4-04 ansible_host=192.168.30.104 ansible_user=pi enable_compute_blade_agent=true
```
## Deployment Options
@@ -97,7 +100,7 @@ cm4-04 ansible_host=192.168.30.104 ansible_user=pi
ansible-playbook site.yml
```
Deploys K3s + compute-blade-agent + test application
Deploys K3s + compute-blade-agent on all nodes + test application
### Option 2: Skip Test Application (Faster)
@@ -113,7 +116,7 @@ Useful if cluster already has applications
ansible-playbook site.yml --tags compute-blade-agent
```
Deploy agent to existing K3s cluster
Deploy agent to existing K3s cluster (all nodes)
### Option 4: Skip Agent
@@ -131,15 +134,15 @@ Deploy K3s without agent
# From control machine
bash scripts/verify-compute-blade-agent.sh
# On a worker node
ssh pi@192.168.30.102
# On any node
ssh pi@192.168.30.101
sudo systemctl status compute-blade-agent
```
### View Logs
```bash
ssh pi@192.168.30.102
ssh pi@192.168.30.101
sudo journalctl -u compute-blade-agent -f
```
@@ -148,15 +151,15 @@ Press `Ctrl+C` to exit logs.
### Check Binary
```bash
ssh pi@192.168.30.102
/usr/local/bin/compute-blade-agent --version
ssh pi@192.168.30.101
/usr/bin/compute-blade-agent --version
```
## What Was Installed
### On Each Worker Node
### On Each Node (Control-plane and Workers)
- **Binary**: `/usr/local/bin/compute-blade-agent`
- **Binary**: `/usr/bin/compute-blade-agent`
- **CLI Tool**: `/usr/local/bin/bladectl`
- **Config**: `/etc/compute-blade-agent/config.yaml`
- **Service**: `compute-blade-agent.service` (auto-start)
@@ -172,9 +175,10 @@ ssh pi@192.168.30.102
## Troubleshooting
### Service Not Running
### Check Service
```bash
ssh pi@192.168.30.102
ssh pi@192.168.30.101
sudo systemctl status compute-blade-agent
sudo journalctl -u compute-blade-agent -n 50
```
@@ -189,7 +193,7 @@ ansible-playbook site.yml --tags compute-blade-agent
```bash
ssh pi@192.168.30.102
ls -la /usr/local/bin/compute-blade-agent
ls -la /usr/bin/compute-blade-agent
ls -la /etc/compute-blade-agent/
sudo systemctl status compute-blade-agent
```
@@ -244,7 +248,7 @@ ssh pi@192.168.30.103
### Deploy Only to Specific Nodes
```bash
ansible-playbook site.yml --tags compute-blade-agent --limit cm4-04
ansible-playbook site.yml --tags compute-blade-agent --limit cm4-01
```
### Disable Agent for Next Deployment
@@ -262,7 +266,7 @@ ansible-playbook site.yml --tags compute-blade-agent
### Uninstall Agent (All Workers)
```bash
ansible worker -m shell -a "bash /usr/local/bin/k3s-uninstall-compute-blade-agent.sh" --become
ansible k3s_cluster -m shell -a "bash /usr/local/bin/k3s-uninstall-compute-blade-agent.sh" --become
```
### Uninstall K3s (All Nodes)

View File

@@ -898,17 +898,20 @@ The playbook includes automatic deployment of the Compute Blade Agent, a system
The compute-blade-agent deployment is controlled by the `enable_compute_blade_agent` variable in `inventory/hosts.ini`:
```ini
# Enable/disable compute-blade-agent on all worker nodes
# Enable/disable compute-blade-agent on all nodes (control-plane and workers)
enable_compute_blade_agent=true
```
To disable on specific nodes, add an override:
```ini
[master]
cm4-01 ansible_host=192.168.30.101 ansible_user=pi k3s_server_init=true enable_compute_blade_agent=true
cm4-02 ansible_host=192.168.30.102 ansible_user=pi k3s_server_init=false enable_compute_blade_agent=false
cm4-03 ansible_host=192.168.30.103 ansible_user=pi k3s_server_init=false enable_compute_blade_agent=false
[worker]
cm4-02 ansible_host=192.168.30.102 ansible_user=pi enable_compute_blade_agent=false
cm4-03 ansible_host=192.168.30.103 ansible_user=pi
cm4-04 ansible_host=192.168.30.104 ansible_user=pi
cm4-04 ansible_host=192.168.30.104 ansible_user=pi enable_compute_blade_agent=true
```
### Deployment
@@ -919,7 +922,7 @@ The compute-blade-agent is automatically deployed as part of the main playbook:
ansible-playbook site.yml
```
Or deploy only the compute-blade-agent on worker nodes:
Or deploy only the compute-blade-agent on all nodes:
```bash
ansible-playbook site.yml --tags compute-blade-agent
@@ -927,11 +930,11 @@ ansible-playbook site.yml --tags compute-blade-agent
### Verification
Check the agent status on a worker node:
Check the agent status on any node:
```bash
# SSH into a worker node
ssh pi@192.168.30.102
# SSH into any node
ssh pi@192.168.30.101
# Check service status
sudo systemctl status compute-blade-agent
@@ -940,7 +943,7 @@ sudo systemctl status compute-blade-agent
sudo journalctl -u compute-blade-agent -f
# Check binary installation
/usr/local/bin/compute-blade-agent --version
/usr/bin/compute-blade-agent --version
```
### Configuration Files

View File

@@ -1,21 +1,21 @@
---
- name: Skip compute-blade-agent installation if disabled
debug:
msg: "compute-blade-agent installation is disabled for this node"
msg: 'compute-blade-agent installation is disabled for this node'
when: not enable_compute_blade_agent | bool
- name: Block for compute-blade-agent installation
block:
- name: Check if compute-blade-agent is already installed
stat:
path: /usr/local/bin/compute-blade-agent
path: /usr/bin/compute-blade-agent
register: agent_binary
- name: Download compute-blade-agent installer
shell: curl -L -o /tmp/compute-blade-agent-installer.sh https://raw.githubusercontent.com/compute-blade-community/compute-blade-agent/main/hack/autoinstall.sh
when: not agent_binary.stat.exists
environment:
PATH: "{{ ansible_env.PATH }}"
PATH: '{{ ansible_env.PATH }}'
- name: Make installer executable
file:
@@ -27,7 +27,7 @@
shell: /tmp/compute-blade-agent-installer.sh
when: not agent_binary.stat.exists
environment:
PATH: "{{ ansible_env.PATH }}"
PATH: '{{ ansible_env.PATH }}'
- name: Wait for compute-blade-agent service to be available
systemd:
@@ -48,7 +48,7 @@
- name: Display compute-blade-agent service status
debug:
msg: "compute-blade-agent service is {{ agent_service.status.ActiveState }}"
msg: 'compute-blade-agent service is {{ agent_service.status.ActiveState }}'
- name: Check if compute-blade-agent config exists
stat:
@@ -57,20 +57,20 @@
- name: Display config location if it exists
debug:
msg: "compute-blade-agent config found at /etc/compute-blade-agent/config.yaml"
msg: 'compute-blade-agent config found at /etc/compute-blade-agent/config.yaml'
when: agent_config.stat.exists
- name: Check compute-blade-agent binary version
shell: /usr/local/bin/compute-blade-agent --version 2>/dev/null || echo "Version info not available"
shell: /usr/bin/compute-blade-agent --version 2>/dev/null || echo "Version info not available"
register: agent_version
changed_when: false
- name: Display compute-blade-agent installation result
debug:
msg:
- "compute-blade-agent has been successfully installed and started"
- "Binary location: /usr/local/bin/compute-blade-agent"
- "Config location: /etc/compute-blade-agent/config.yaml"
- "Service status: {{ agent_service.status.ActiveState }}"
- 'compute-blade-agent has been successfully installed and started'
- 'Binary location: /usr/bin/compute-blade-agent'
- 'Config location: /etc/compute-blade-agent/config.yaml'
- 'Service status: {{ agent_service.status.ActiveState }}'
when: enable_compute_blade_agent | bool

View File

@@ -67,12 +67,12 @@ for worker in $WORKERS; do
# Check binary
echo -n "Binary: "
if ssh -o ConnectTimeout=5 -o BatchMode=yes "pi@${HOST_IP}" \
"[ -f /usr/local/bin/compute-blade-agent ]" &> /dev/null; then
"[ -f /usr/bin/compute-blade-agent ]" &> /dev/null; then
echo -e "${GREEN}✓ Installed${NC}"
# Try to get version
VERSION=$(ssh -o ConnectTimeout=5 -o BatchMode=yes "pi@${HOST_IP}" \
"/usr/local/bin/compute-blade-agent --version 2>/dev/null" || echo "unknown")
"/usr/bin/compute-blade-agent --version 2>/dev/null" || echo "unknown")
echo " Version: $VERSION"
else
echo -e "${RED}✗ Not found${NC}"

View File

@@ -41,7 +41,7 @@
- worker
- name: Install compute-blade-agent on workers
hosts: worker
hosts: all
become: true
roles:
- role: compute-blade-agent