update deploying
This commit is contained in:
28
.github/workflows/deploy_telemetry.yml
vendored
28
.github/workflows/deploy_telemetry.yml
vendored
@@ -4,10 +4,6 @@
|
|||||||
name: Deploy Telemetry Server
|
name: Deploy Telemetry Server
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
branches: [ "master" ]
|
|
||||||
paths:
|
|
||||||
- 'telemetry/**'
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
setup:
|
setup:
|
||||||
@@ -33,6 +29,7 @@ jobs:
|
|||||||
go-version: '1.24'
|
go-version: '1.24'
|
||||||
|
|
||||||
- name: Build Telemetry Server
|
- name: Build Telemetry Server
|
||||||
|
if: github.event_name == 'workflow_dispatch' && inputs.deploy
|
||||||
run: |
|
run: |
|
||||||
go mod tidy
|
go mod tidy
|
||||||
echo "Building telemetry server..."
|
echo "Building telemetry server..."
|
||||||
@@ -95,34 +92,29 @@ jobs:
|
|||||||
endscript
|
endscript
|
||||||
}" > telemetry_logrotate
|
}" > telemetry_logrotate
|
||||||
|
|
||||||
# Copy binary and configuration files
|
# Copy configuration files
|
||||||
scp -i ~/.ssh/deploy_key telemetry-server $REMOTE_USER@$REMOTE_HOST:~/seaweedfs-telemetry/bin/
|
|
||||||
scp -i ~/.ssh/deploy_key telemetry/grafana-dashboard.json $REMOTE_USER@$REMOTE_HOST:~/seaweedfs-telemetry/
|
scp -i ~/.ssh/deploy_key telemetry/grafana-dashboard.json $REMOTE_USER@$REMOTE_HOST:~/seaweedfs-telemetry/
|
||||||
scp -i ~/.ssh/deploy_key telemetry/prometheus.yml $REMOTE_USER@$REMOTE_HOST:~/seaweedfs-telemetry/
|
scp -i ~/.ssh/deploy_key telemetry/prometheus.yml $REMOTE_USER@$REMOTE_HOST:~/seaweedfs-telemetry/
|
||||||
|
|
||||||
# Set binary permissions
|
|
||||||
ssh -i ~/.ssh/deploy_key $REMOTE_USER@$REMOTE_HOST "chmod +x ~/seaweedfs-telemetry/bin/telemetry-server"
|
|
||||||
|
|
||||||
# Copy and install service and logrotate files
|
# Copy and install service and logrotate files
|
||||||
scp -i ~/.ssh/deploy_key telemetry.service telemetry_logrotate $REMOTE_USER@$REMOTE_HOST:~/seaweedfs-telemetry/
|
scp -i ~/.ssh/deploy_key telemetry.service telemetry_logrotate $REMOTE_USER@$REMOTE_HOST:~/seaweedfs-telemetry/
|
||||||
ssh -i ~/.ssh/deploy_key $REMOTE_USER@$REMOTE_HOST "
|
ssh -i ~/.ssh/deploy_key $REMOTE_USER@$REMOTE_HOST "
|
||||||
sudo mv ~/seaweedfs-telemetry/telemetry.service /etc/systemd/system/ && \
|
sudo mv ~/seaweedfs-telemetry/telemetry.service /etc/systemd/system/ && \
|
||||||
sudo mv ~/seaweedfs-telemetry/telemetry_logrotate /etc/logrotate.d/seaweedfs-telemetry && \
|
sudo mv ~/seaweedfs-telemetry/telemetry_logrotate /etc/logrotate.d/seaweedfs-telemetry && \
|
||||||
sudo systemctl daemon-reload && \
|
sudo systemctl daemon-reload && \
|
||||||
sudo systemctl enable telemetry.service && \
|
sudo systemctl enable telemetry.service"
|
||||||
sudo systemctl start telemetry.service && \
|
|
||||||
sudo systemctl status telemetry.service"
|
|
||||||
|
|
||||||
# Verify initial deployment
|
echo "✅ First-time setup completed successfully!"
|
||||||
ssh -i ~/.ssh/deploy_key $REMOTE_USER@$REMOTE_HOST "
|
echo "📋 Next step: Run the deployment to install the telemetry server binary"
|
||||||
echo 'Waiting for service to start...'
|
echo " 1. Go to GitHub Actions → Deploy Telemetry Server"
|
||||||
sleep 5
|
echo " 2. Click 'Run workflow'"
|
||||||
curl -f http://localhost:8353/health || echo 'Health check failed - check service logs: sudo journalctl -u telemetry.service -f'"
|
echo " 3. Check 'Deploy telemetry server to remote server'"
|
||||||
|
echo " 4. Click 'Run workflow'"
|
||||||
|
|
||||||
rm -f ~/.ssh/deploy_key
|
rm -f ~/.ssh/deploy_key
|
||||||
|
|
||||||
- name: Deploy Telemetry Server to Remote Server
|
- name: Deploy Telemetry Server to Remote Server
|
||||||
if: (github.event_name == 'push' && contains(github.ref, 'refs/heads/master')) || (github.event_name == 'workflow_dispatch' && inputs.deploy)
|
if: github.event_name == 'workflow_dispatch' && inputs.deploy
|
||||||
env:
|
env:
|
||||||
SSH_PRIVATE_KEY: ${{ secrets.TELEMETRY_SSH_PRIVATE_KEY }}
|
SSH_PRIVATE_KEY: ${{ secrets.TELEMETRY_SSH_PRIVATE_KEY }}
|
||||||
REMOTE_HOST: ${{ secrets.TELEMETRY_HOST }}
|
REMOTE_HOST: ${{ secrets.TELEMETRY_HOST }}
|
||||||
|
|||||||
@@ -148,14 +148,14 @@ This will:
|
|||||||
- Set up systemd service configuration
|
- Set up systemd service configuration
|
||||||
- Configure log rotation
|
- Configure log rotation
|
||||||
- Upload Grafana dashboard and Prometheus configuration
|
- Upload Grafana dashboard and Prometheus configuration
|
||||||
|
- Enable the telemetry service (but not start it yet)
|
||||||
|
|
||||||
|
**Note**: The setup only prepares the infrastructure. You need to run a deployment afterward to install and start the telemetry server.
|
||||||
|
|
||||||
|
|
||||||
### 2. Deploy Updates
|
### 2. Deploy Updates
|
||||||
|
|
||||||
Deployments happen automatically when:
|
To deploy updates, manually trigger deployment:
|
||||||
- Code is pushed to the `master` branch with changes in the `telemetry/` directory
|
|
||||||
|
|
||||||
Or manually trigger deployment:
|
|
||||||
1. Go to GitHub Actions in your repository
|
1. Go to GitHub Actions in your repository
|
||||||
2. Select "Deploy Telemetry Server" workflow
|
2. Select "Deploy Telemetry Server" workflow
|
||||||
3. Click "Run workflow"
|
3. Click "Run workflow"
|
||||||
|
|||||||
Reference in New Issue
Block a user