这个项目能做什么
# AliaJS
AliaJS 是一个基础设施编排器,专为偏好使用 JavaScript 作为定义和执行语言的小型运维基础设施团队设计。目前处于 alpha 阶段。
## 主要特性
- **基于 JavaScript 的基础设施即代码**:使用 JavaScript 定义和执行基础设施编排。
- **HTTP 优先设计**:以 HTTP 作为输入,并可将 HTTP 通信作为一等公民。它是一个运行 shell 命令和 Node.js 代码的 Express.js 服务。
- **一体化解决方案**:管理服务基础设施,包括密钥保管库集成(Bitwarden)、监控和告警。
- **面向 NGINX**:以 NGINX 为核心构建。
## 架构
项目由多个核心模块组成:
- `src/app.js`、`src/main.js`、`src/routes.js`:主要的 Express.js 服务器文件。
- `src/deploy.js`:更新正在运行的服务。
- `src/new-image.js`:根据计划任务创建和维护虚拟机镜像。
- `src/new-instance.js`:根据 `configurations/instances.js` 中的定义创建新实例。
- `src/renew-certificates.js`:管理 SSL 证书续期。
- `src/items.js`:保管库管理工具。
- `src/logger.js` 和 `utils.js`:实用代码。
- `templates/`:EJS 模板文件。
- `configurations/`:实例和镜像配置定义。
## 快速开始
1. 根据你的 Bitwarden 保管库在 `.env` 中配置环境变量。
2. 运行 `npm install` 和 `npm run dev`。
## 用法
在你的 shell 中设置 `ALIAJS_AUTHORIZATION` 环境变量。
**更新正在运行的服务:**
```bash
curl -v -N --header "Authorization: ${ALIAJS_AUTHORIZATION}" "https://aliajs-production.rotat.io/deploy?checkout=${CHECKOUT}&service_name=aliajs&tier=production"
```
**启动新实例:**
```bash
curl -v -N --header "Authorization: ${ALIAJS_AUTHORIZATION}" "https://aliajs-production.rotat.io/new-instance?address=1.1.1.1&checkout=${CHECKOUT}&instance_name=aliajs-production&replace=false"
```
new-instance 的查询参数:
- `address`:使用 `allocate` 向云服务商申请永久 IP,或指定一个具体 IP。
- `ephemeral`:创建一个具有唯一 DNS 的新临时实例(默认 `false`)。
- `exclude`:过滤掉某些操作类型(例如 `exclude=backup`)。
- `replace`:替换当前正在运行的实例(默认 `false`)。
- `target`:筛选特定的操作类型(例如 `target=initial&target=restore`)。
## 局限性
- 不适用于大型运维基础设施团队。
- 目前尚未得到社区的良好支持。
该项目处于早期开发阶段,可能会有重大变化。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。