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

浙公网安备 33010602011771号