Initial commit — OpenClaw VM infrastructure
- ansible/: VM provisioning playbooks and roles - provision-vm.yml: create KVM VM from Ubuntu cloud image - install.yml: install OpenClaw on guest (upstream) - customize.yml: swappiness, virtiofs fstab, linger - roles/vm/: libvirt domain XML, cloud-init templates - inventory.yml + host_vars/zap.yml: zap instance config - backup-openclaw-vm.sh: daily rsync + MinIO upload - restore-openclaw-vm.sh: full redeploy from scratch - README.md: full operational documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
106
ansible/roles/openclaw/files/openclaw-setup.sh
Normal file
106
ansible/roles/openclaw/files/openclaw-setup.sh
Normal file
@@ -0,0 +1,106 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Enable 256 colors
|
||||
export TERM=xterm-256color
|
||||
export COLORTERM=truecolor
|
||||
|
||||
# Colors
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# OpenClaw ASCII Art Lobster
|
||||
cat << 'LOBSTER'
|
||||
[0;36m
|
||||
+====================================================+
|
||||
| |
|
||||
| [0;33mWelcome to OpenClaw! [0;31m🦞[0;36m |
|
||||
| |
|
||||
|[0;31m ,.---._ [0;36m|
|
||||
|[0;31m ,,,, / `, [0;36m|
|
||||
|[0;31m \\\\\\ / '\_ ; [0;36m|
|
||||
|[0;31m |||| /\/``-.__\;' [0;36m|
|
||||
|[0;31m ::::/\/_ [0;36m|
|
||||
|[0;31m {{`-.__.-'(`(^^(^^^(^ 9 `.=========' [0;36m|
|
||||
|[0;31m{{{{{{ { ( ( ( ( (-----:= [0;36m|
|
||||
|[0;31m {{.-'~~'-.(,(,,(,,,(__6_.'=========. [0;36m|
|
||||
|[0;31m ::::\/\ [0;36m|
|
||||
|[0;31m |||| \/\ ,-'/, [0;36m|
|
||||
|[0;31m //// \ `` _/ ; [0;36m|
|
||||
|[0;31m '''' \ ` .' [0;36m|
|
||||
|[0;31m `---' [0;36m|
|
||||
| |
|
||||
| [0;32m✅ Installation Successful![0;36m |
|
||||
| |
|
||||
+====================================================+[0m
|
||||
LOBSTER
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}🔒 Security Status:${NC}"
|
||||
echo " - UFW Firewall: ENABLED"
|
||||
echo " - Open Ports: SSH (22) + Tailscale (41641/udp)"
|
||||
echo " - Docker isolation: ACTIVE"
|
||||
echo ""
|
||||
echo -e "📚 Documentation: ${GREEN}https://docs.openclaw.ai${NC}"
|
||||
echo ""
|
||||
|
||||
# Switch to openclaw user for setup
|
||||
echo -e "${YELLOW}Switching to openclaw user for setup...${NC}"
|
||||
echo ""
|
||||
echo "DEBUG: About to create init script..."
|
||||
|
||||
# Create init script that will be sourced on login
|
||||
cat > /home/openclaw/.openclaw-init << 'INIT_EOF'
|
||||
# Display welcome message
|
||||
echo "============================================"
|
||||
echo "📋 OpenClaw Setup - Next Steps"
|
||||
echo "============================================"
|
||||
echo ""
|
||||
echo "You are now: $(whoami)@$(hostname)"
|
||||
echo "Home: $HOME"
|
||||
echo ""
|
||||
echo "🔧 Setup Commands:"
|
||||
echo ""
|
||||
echo "1. Configure OpenClaw:"
|
||||
echo " nano ~/.openclaw/config.yml"
|
||||
echo ""
|
||||
echo "2. Login to provider (WhatsApp/Telegram/Signal):"
|
||||
echo " openclaw login"
|
||||
echo ""
|
||||
echo "3. Test gateway:"
|
||||
echo " openclaw gateway"
|
||||
echo ""
|
||||
echo "4. Exit and manage as service:"
|
||||
echo " exit"
|
||||
echo " sudo systemctl status openclaw"
|
||||
echo " sudo journalctl -u openclaw -f"
|
||||
echo ""
|
||||
echo "5. Connect Tailscale (as root):"
|
||||
echo " exit"
|
||||
echo " sudo tailscale up"
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo ""
|
||||
echo "Type 'exit' to return to previous user"
|
||||
echo ""
|
||||
|
||||
# Remove this init file after first login
|
||||
rm -f ~/.openclaw-init
|
||||
INIT_EOF
|
||||
|
||||
chown openclaw:openclaw /home/openclaw/.openclaw-init
|
||||
|
||||
# Add one-time sourcing to .bashrc if not already there
|
||||
grep -q '.openclaw-init' /home/openclaw/.bashrc 2>/dev/null || {
|
||||
echo '' >> /home/openclaw/.bashrc
|
||||
echo '# One-time setup message' >> /home/openclaw/.bashrc
|
||||
echo '[ -f ~/.openclaw-init ] && source ~/.openclaw-init' >> /home/openclaw/.bashrc
|
||||
}
|
||||
|
||||
# Switch to openclaw user with explicit interactive shell
|
||||
# Using setsid to create new session + force pseudo-terminal allocation
|
||||
exec sudo -i -u openclaw /bin/bash --login
|
||||
Reference in New Issue
Block a user