Jeremy Zheng 3 лет назад
Родитель
Сommit
b2387879aa
4 измененных файлов с 156 добавлено и 0 удалено
  1. 59 0
      documents/deployment/README.md
  2. 75 0
      documents/development/README.md
  3. 11 0
      scripts/docker/alpine.sh
  4. 11 0
      scripts/docker/jammy.sh

+ 59 - 0
documents/deployment/README.md

@@ -0,0 +1,59 @@
+# 部署工具
+
+## 操作系统准备
+
+### **仅** Windows 用户
+
+- [使用 WSL 在 Windows 上安装 Linux](https://learn.microsoft.com/zh-cn/windows/wsl/install)
+- 从[Windows Store](https://apps.microsoft.com/store/detail/ubuntu/9PDXGNCFSCZV)安装 ubuntu(版本不小于 22.04)
+
+### 安装容器工具 `sudo apt install crun podman buildah`
+
+## 镜像准备
+
+```bash
+# 导入镜像
+podman load -i palm-alpine-TIMESTAMP.tar
+# 启动镜像
+cd ~/workspace
+./PROJECT/scripts/docker/alpine.sh
+```
+
+## 部署
+
+- 设置 client key
+
+  ```bash
+  cd PROJECT/deploy
+  mkdir -p clients/CLIENT_ID/.ssh
+  cd clients/CLIENT_ID
+  # 创建 ssh key
+  ssh-keygen -t ed25519 -f .ssh/id_ed25519 -C "your_email@example.com"
+  ```
+
+- 上传 `.ssh/id_ed25519.pub` 到服务器`/tmp`目录, 然后 `cat /tmp/id_ed25519.pub >> ~/.ssh/authorized_keys`
+- 测试 ssh 连接 `ssh -i .ssh/id_ed25519 deploy@HOST`
+- 复制`cp ../../staging/hosts ./`并调整配置
+
+- 命令
+
+  ```bash
+  cd PROJECT/deploy
+  # 测试服务器状态
+  peony -i clients/CLIENT_ID ping.yml
+  # 全量部署
+  peony -i clients/CLIENT_ID mint.yml -l GROUP
+  # 按组部署
+  peony -i clients/CLIENT_ID mint.yml -l GROUP
+  ```
+
+## 常用容器命令
+
+```bash
+# 清理
+podman system reset
+# 列出所有镜像
+podman images
+# 列出所有容器
+podman ps -a
+```

+ 75 - 0
documents/development/README.md

@@ -1,5 +1,80 @@
 # 开发线培训文档
 
+## 系统设置
+
+### [操作系统准备](../deployment/)
+
+- 添加如下到 `/etc/sysctl.d/60-my.conf`,然后 `sudo reboot` 或 `sudo sysctl -p`
+
+  ```text
+  vm.overcommit_memory = 1
+  vm.max_map_count = 262144
+  ```
+
+### 镜像准备
+
+```bash
+# 解压镜像
+cat palm-jammy.tar.xz.?? | tar jx
+# 导入镜像
+podman load -i palm-jammy-TIMESTAMP.tar
+# 启动容器
+cd ~/workspace
+./PROJECT/scripts/docker/jammy.sh
+```
+
+### 容器准备
+
+- 启动 [dashboard](http://localhost:10001)
+
+  ```bash
+  $ cd ~/workspace
+  $ ./saturn-xiv/palm/docker/jammy/start.sh
+  > supervisord -c /etc/supervisor/supervisord.conf # 启动服务
+  > /etc/redis/clusters-init.sh # 初始化redis集群
+  ```
+
+### 常见连接和测试
+
+- PostgreSql
+
+  ```bash
+  psql -h 127.0.0.1 -p 5432 -U postgres
+  ```
+
+- MySql
+
+  ```bash
+  # reset root's password
+  mysql_secure_installation
+  ```
+
+- Redis
+
+  ```bash
+  # connect to redis node-1
+  redis-cli -c -h 127.0.0.1 -p 16371
+  ```
+
+- Minio [dashboard](http://localhost:9001) (`admin:12345678`)
+
+- RabbitMQ [dashboard](http://localhost:15672) (`guest:guest`)
+
+  ```bash
+  # enable rabbitmq management plugin
+  rabbitmq-plugins enable rabbitmq_management
+  ```
+
+- Php [info.php](http://localhost:8080/info.php)
+
+- OpenSearch
+
+  ```bash
+  # show info
+  curl -X GET http://localhost:9200
+  curl -X GET http://localhost:9200/_cat/plugins?v
+  ```
+
 ## 后端
 
 - [CPP20](cpp/)

+ 11 - 0
scripts/docker/alpine.sh

@@ -0,0 +1,11 @@
+#!/bin/sh
+
+export CODE="palm-alpine"
+export NAME="$CODE-$USER"
+
+if podman container exists $NAME
+then
+    podman start -i -a $NAME
+else
+    podman run --name $NAME -it --events-backend=file --hostname=palm --network host -v $PWD:/workspace:z $CODE
+fi

+ 11 - 0
scripts/docker/jammy.sh

@@ -0,0 +1,11 @@
+#!/bin/sh
+
+export CODE="palm-jammy"
+export NAME="$CODE-$USER"
+
+if podman container exists $NAME
+then
+    podman start -i -a $NAME
+else
+    podman run --name $NAME -it --events-backend=file --hostname=palm --network host -v $PWD:/workspace:z $CODE
+fi