ubuntu2204 安装deb方式 安装apisix的 一键安装脚本

!/bin/bash

APISIX一键安装脚本 (Ubuntu 22.04)

基于 https://apisix.apache.org/zh/docs/apisix/installation-guide/

设置颜色

GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color

日志函数

log_info() {
echo -e "\({GREEN}[INFO]\){NC} $1"
}

log_warn() {
echo -e "\({YELLOW}[WARN]\){NC} $1"
}

log_error() {
echo -e "\({RED}[ERROR]\){NC} $1"
}

检查是否为root用户

if [ "$EUID" -ne 0 ]; then
log_error "请使用root权限运行此脚本"
exit 1
fi

检查系统版本

if [[ "\((lsb_release -rs)" != "22.04" ]]; then log_warn "此脚本专为Ubuntu 22.04设计,当前系统为\)(lsb_release -ds)"
read -p "是否继续? [y/N] " -n 1 -r
echo
if [[ ! \(REPLY =~ ^[Yy]\) ]]; then
exit 1
fi
fi

log_info "开始安装APISIX..."

安装依赖

log_info "安装必要的依赖..."
apt update
apt install -y wget gnupg apt-transport-https ca-certificates curl

安装etcd

log_info "安装etcd..."
ETCD_VERSION='3.5.4'
wget -q https://github.com/etcd-io/etcd/releases/download/v\({ETCD_VERSION}/etcd-v\){ETCD_VERSION}-linux-amd64.tar.gz
if [ $? -ne 0 ]; then
log_error "下载etcd失败"
exit 1
fi

tar -xf etcd-v\({ETCD_VERSION}-linux-amd64.tar.gz cd etcd-v\){ETCD_VERSION}-linux-amd64
cp -a etcd etcdctl /usr/bin/
cd ..
rm -rf etcd-v\({ETCD_VERSION}-linux-amd64.tar.gz etcd-v\){ETCD_VERSION}-linux-amd64

设置etcd系统服务

log_info "配置etcd系统服务..."
cat > /lib/systemd/system/etcd.service << EOF
[Unit]
Description=etcd key-value store
Documentation=https://github.com/etcd-io/etcd
After=network.target

[Service]
Type=notify
ExecStart=/usr/bin/etcd
Restart=always
RestartSec=10s
LimitNOFILE=40000

[Install]
WantedBy=multi-user.target
EOF

启动etcd

log_info "启动etcd服务..."
systemctl daemon-reload
systemctl enable etcd
systemctl start etcd

检查etcd是否运行

if ! systemctl is-active --quiet etcd; then
log_error "etcd服务未能正常启动,请检查系统日志"
exit 1
fi

添加APISIX的DEB仓库

log_info "添加APISIX仓库..."

检测架构

ARCH=\((dpkg --print-architecture) if [ "\)ARCH" = "arm64" ]; then
log_info "检测到ARM64架构,使用ARM64仓库..."
wget -O - http://repos.apiseven.com/pubkey.gpg | apt-key add -
echo "deb http://repos.apiseven.com/packages/arm64/debian bullseye main" | tee /etc/apt/sources.list.d/apisix.list
else
log_info "使用AMD64架构仓库..."
wget -O - http://repos.apiseven.com/pubkey.gpg | apt-key add -
echo "deb http://repos.apiseven.com/packages/debian bullseye main" | tee /etc/apt/sources.list.d/apisix.list
fi

安装APISIX

log_info "安装APISIX..."
apt update
apt install -y apisix

初始化APISIX

log_info "初始化APISIX..."
apisix init

更新Admin API key

log_info "更新Admin API key..."
ADMIN_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
mkdir -p /usr/local/apisix/conf
cat > /usr/local/apisix/conf/config.yaml << EOF
deployment:
admin:
admin_key:
- name: "admin"
key: ${ADMIN_KEY}
role: admin
etcd:
host:
- "http://127.0.0.1:2379"
EOF

启动APISIX

log_info "启动APISIX服务..."
apisix start

检查APISIX是否运行正常

sleep 2
if pgrep -x "apisix" > /dev/null; then
log_info "APISIX安装成功并正在运行"
log_info "Admin API地址: http://127.0.0.1:9180/apisix/admin/"
log_info "Admin API Key: \({ADMIN_KEY}" log_info "使用以下命令测试Admin API:" log_info "curl http://127.0.0.1:9180/apisix/admin/routes?api_key=\){ADMIN_KEY} -i"
else
log_error "APISIX可能未能正常启动,请检查日志"
exit 1
fi

提示

log_info "安装完成!"
log_info "使用 'apisix start' 启动服务"
log_info "使用 'apisix stop' 停止服务"

exit 0

posted @ 2025-05-21 09:41  昆仑葫芦  阅读(31)  评论(0)    收藏  举报