Delete komodo_Periphery.sh
This commit is contained in:
parent
f31f831aa4
commit
a6fa7377f2
|
|
@ -1,320 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# =============================================
|
||||
# PERIPHERY INSTALLER - Shell Script Version
|
||||
# =============================================
|
||||
|
||||
set -e # Dừng script nếu có lỗi
|
||||
|
||||
# Màu sắc cho output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Hàm in thông báo
|
||||
print_info() {
|
||||
echo -e "${GREEN}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
||||
}
|
||||
|
||||
# =============================================
|
||||
# CẤU HÌNH CỐ ĐỊNH
|
||||
# =============================================
|
||||
|
||||
# Lấy phiên bản mới nhất từ GitHub
|
||||
print_info "Đang lấy phiên bản mới nhất của Komodo..."
|
||||
LATEST_VERSION=$(curl -s "https://api.github.com/repos/moghtech/komodo/releases/latest" | grep -o '"tag_name":"[^"]*"' | cut -d'"' -f4)
|
||||
|
||||
if [ -z "$LATEST_VERSION" ]; then
|
||||
print_error "Không thể lấy phiên bản mới nhất. Vui lòng kiểm tra kết nối internet."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
print_info "Phiên bản mới nhất: $LATEST_VERSION"
|
||||
|
||||
# Cấu hình cố định
|
||||
VERSION="$LATEST_VERSION"
|
||||
ROOT_DIRECTORY="/etc/komodo"
|
||||
CONFIG_URL="https://raw.githubusercontent.com/moghtech/komodo/refs/heads/main/config/periphery.config.toml"
|
||||
BINARY_URL="https://github.com/moghtech/komodo/releases/download"
|
||||
|
||||
# =============================================
|
||||
# KIỂM TRA HỆ THỐNG
|
||||
# =============================================
|
||||
|
||||
# Kiểm tra systemd
|
||||
if ! command -v systemctl &> /dev/null || [ ! -d "/run/systemd/system/" ]; then
|
||||
print_error "Script này yêu cầu systemd. Hệ thống của bạn không hỗ trợ systemd."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Kiểm tra curl
|
||||
if ! command -v curl &> /dev/null; then
|
||||
print_error "Script yêu cầu curl. Vui lòng cài đặt curl trước."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# =============================================
|
||||
# THIẾT LẬP ĐƯỜNG DẪN
|
||||
# =============================================
|
||||
|
||||
HOME_DIR="$HOME"
|
||||
BIN_DIR="/usr/local/bin"
|
||||
CONFIG_DIR="/etc/komodo"
|
||||
SERVICE_DIR="/etc/systemd/system"
|
||||
|
||||
print_info "=== THÔNG TIN CÀI ĐẶT ==="
|
||||
print_info "Phiên bản: $VERSION"
|
||||
print_info "Thư mục gốc: $ROOT_DIRECTORY"
|
||||
print_info "Thư mục binary: $BIN_DIR"
|
||||
print_info "Thư mục cấu hình: $CONFIG_DIR"
|
||||
print_info "Thư mục service: $SERVICE_DIR"
|
||||
|
||||
# =============================================
|
||||
# TẢI BINARY
|
||||
# =============================================
|
||||
|
||||
download_binary() {
|
||||
print_info "Đang tải binary Periphery..."
|
||||
|
||||
# Dừng Periphery nếu đang chạy
|
||||
if systemctl is-active --quiet periphery; then
|
||||
print_info "Dừng Periphery đang chạy..."
|
||||
systemctl stop periphery
|
||||
fi
|
||||
|
||||
# Tạo thư mục binary nếu chưa tồn tại
|
||||
mkdir -p "$BIN_DIR"
|
||||
|
||||
# Xóa binary cũ nếu tồn tại
|
||||
BIN_PATH="$BIN_DIR/periphery"
|
||||
if [ -f "$BIN_PATH" ]; then
|
||||
print_info "Xóa binary cũ..."
|
||||
rm -f "$BIN_PATH"
|
||||
fi
|
||||
|
||||
# Xác định kiến trúc
|
||||
ARCH=$(uname -m)
|
||||
case "$ARCH" in
|
||||
aarch64|arm64)
|
||||
print_info "Phát hiện kiến trúc ARM64"
|
||||
PERIPHERY_BIN="periphery-aarch64"
|
||||
;;
|
||||
x86_64|amd64)
|
||||
print_info "Phát hiện kiến trúc x86_64"
|
||||
PERIPHERY_BIN="periphery-x86_64"
|
||||
;;
|
||||
*)
|
||||
print_error "Kiến trúc không được hỗ trợ: $ARCH"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Tải binary
|
||||
DOWNLOAD_URL="$BINARY_URL/$VERSION/$PERIPHERY_BIN"
|
||||
print_info "Đang tải từ: $DOWNLOAD_URL"
|
||||
|
||||
if ! curl -f -sSL "$DOWNLOAD_URL" -o "$BIN_PATH"; then
|
||||
print_error "Không thể tải binary từ $DOWNLOAD_URL"
|
||||
print_error "Vui lòng kiểm tra phiên bản: https://github.com/moghtech/komodo/tags"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Thêm quyền thực thi
|
||||
chmod +x "$BIN_PATH"
|
||||
print_info "Binary đã được tải thành công: $BIN_PATH"
|
||||
}
|
||||
|
||||
# =============================================
|
||||
# TẠO FILE CẤU HÌNH
|
||||
# =============================================
|
||||
|
||||
create_config() {
|
||||
CONFIG_FILE="$CONFIG_DIR/periphery.config.toml"
|
||||
|
||||
# Kiểm tra nếu file config đã tồn tại
|
||||
if [ -f "$CONFIG_FILE" ]; then
|
||||
print_warning "File cấu hình đã tồn tại tại $CONFIG_FILE"
|
||||
read -p "Bạn có muốn ghi đè không? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
print_info "Bỏ qua tạo file cấu hình."
|
||||
return
|
||||
fi
|
||||
print_info "Ghi đè file cấu hình cũ..."
|
||||
fi
|
||||
|
||||
print_info "Đang tạo file cấu hình tại $CONFIG_FILE..."
|
||||
|
||||
# Tạo thư mục cấu hình
|
||||
mkdir -p "$CONFIG_DIR"
|
||||
|
||||
# Tải template và xử lý
|
||||
print_info "Đang tải template cấu hình..."
|
||||
TEMPLATE=$(curl -s "$CONFIG_URL")
|
||||
|
||||
if [ -z "$TEMPLATE" ]; then
|
||||
print_error "Không thể tải template cấu hình từ $CONFIG_URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Xử lý các dòng trong template
|
||||
echo "$TEMPLATE" | while IFS= read -r line; do
|
||||
# Thay thế root_directory
|
||||
if [[ "$line" == "root_directory ="* ]]; then
|
||||
echo "root_directory = \"$ROOT_DIRECTORY\""
|
||||
# Bỏ comment core_address (giữ nguyên mặc định)
|
||||
elif [[ "$line" == "# core_address ="* ]]; then
|
||||
echo "# core_address ="
|
||||
# Bỏ comment connect_as (giữ nguyên mặc định)
|
||||
elif [[ "$line" == "# connect_as ="* ]]; then
|
||||
echo "# connect_as ="
|
||||
# Bỏ comment onboarding_key (giữ nguyên mặc định)
|
||||
elif [[ "$line" == "# onboarding_key ="* ]]; then
|
||||
echo "# onboarding_key ="
|
||||
else
|
||||
echo "$line"
|
||||
fi
|
||||
done > "$CONFIG_FILE"
|
||||
|
||||
print_info "File cấu hình đã được tạo thành công."
|
||||
}
|
||||
|
||||
# =============================================
|
||||
# TẠO SYSTEMD SERVICE
|
||||
# =============================================
|
||||
|
||||
create_service() {
|
||||
SERVICE_FILE="$SERVICE_DIR/periphery.service"
|
||||
|
||||
# Kiểm tra nếu file service đã tồn tại
|
||||
if [ -f "$SERVICE_FILE" ]; then
|
||||
print_warning "File service đã tồn tại tại $SERVICE_FILE"
|
||||
read -p "Bạn có muốn ghi đè không? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
print_info "Bỏ qua tạo file service."
|
||||
return
|
||||
fi
|
||||
print_info "Ghi đè file service cũ..."
|
||||
rm -f "$SERVICE_FILE"
|
||||
fi
|
||||
|
||||
print_info "Đang tạo file service tại $SERVICE_FILE..."
|
||||
|
||||
# Tạo thư mục service
|
||||
mkdir -p "$SERVICE_DIR"
|
||||
|
||||
# Tạo file service
|
||||
cat > "$SERVICE_FILE" << EOF
|
||||
[Unit]
|
||||
Description=Agent to connect with Komodo Core
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Environment="HOME=$HOME_DIR"
|
||||
ExecStart=$BIN_DIR/periphery --config-path $CONFIG_DIR/periphery.config.toml
|
||||
Restart=on-failure
|
||||
RestartSec=10
|
||||
TimeoutStartSec=0
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
print_info "File service đã được tạo thành công."
|
||||
|
||||
# Reload systemd
|
||||
print_info "Reload systemd daemon..."
|
||||
systemctl daemon-reload
|
||||
}
|
||||
|
||||
# =============================================
|
||||
# CÀI ĐẶT VÀ KÍCH HOẠT SERVICE
|
||||
# =============================================
|
||||
|
||||
setup_service() {
|
||||
print_info "Cấu hình và kích hoạt Periphery service..."
|
||||
|
||||
# Enable service để tự động khởi động khi boot
|
||||
systemctl enable periphery
|
||||
|
||||
# Khởi động service
|
||||
systemctl start periphery
|
||||
|
||||
# Kiểm tra trạng thái
|
||||
if systemctl is-active --quiet periphery; then
|
||||
print_info "✅ Periphery đã được cài đặt và đang chạy thành công!"
|
||||
print_info "Service đã được cấu hình để tự động khởi động sau khi reboot."
|
||||
else
|
||||
print_error "❌ Periphery không thể khởi động. Kiểm tra log với: journalctl -u periphery"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# =============================================
|
||||
# HIỂN THỊ THÔNG TIN HƯỚNG DẪN
|
||||
# =============================================
|
||||
|
||||
show_instructions() {
|
||||
echo
|
||||
echo "========================================="
|
||||
echo "✅ CÀI ĐẶT PERIPHERY HOÀN TẤT!"
|
||||
echo "========================================="
|
||||
echo
|
||||
echo "📌 Các lệnh quản lý Periphery:"
|
||||
echo " - Xem trạng thái: systemctl status periphery"
|
||||
echo " - Dừng Periphery: systemctl stop periphery"
|
||||
echo " - Khởi động lại: systemctl restart periphery"
|
||||
echo " - Xem log: journalctl -u periphery -f"
|
||||
echo " - Xem log gần đây: journalctl -u periphery -n 50"
|
||||
echo
|
||||
echo "📁 Vị trí các file:"
|
||||
echo " - Binary: $BIN_DIR/periphery"
|
||||
echo " - Cấu hình: $CONFIG_DIR/periphery.config.toml"
|
||||
echo " - Service: $SERVICE_DIR/periphery.service"
|
||||
echo
|
||||
echo "🔄 Periphery sẽ tự động khởi động khi hệ thống reboot."
|
||||
echo
|
||||
echo "⚠️ Để áp dụng thay đổi cấu hình sau khi chỉnh sửa:"
|
||||
echo " sudo systemctl restart periphery"
|
||||
echo "========================================="
|
||||
}
|
||||
|
||||
# =============================================
|
||||
# THỰC THI CHÍNH
|
||||
# =============================================
|
||||
|
||||
main() {
|
||||
echo "========================================="
|
||||
echo " PERIPHERY INSTALLER - Shell Script"
|
||||
echo "========================================="
|
||||
echo
|
||||
|
||||
# Kiểm tra quyền root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
print_error "Script này cần chạy với quyền root (sudo)."
|
||||
print_error "Vui lòng chạy: sudo $0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Thực hiện các bước cài đặt
|
||||
download_binary
|
||||
create_config
|
||||
create_service
|
||||
setup_service
|
||||
show_instructions
|
||||
}
|
||||
|
||||
# Chạy hàm main
|
||||
main
|
||||
Loading…
Reference in New Issue