deploy
# 部署 check list
工具
- yum
- vim
linux 组件
- systemctl
- user、group
- cron
- ssh、scp
- github、action
- yum
- 域名(domain), 证书(ssl)
应用
- nginx(http, https, upstream)
- mariadb(mysql), mysqldump
- obsutil
- ELK(Elasticsearch, Logstash, Kibana)
# 工具
# yum
centos 系统使用 yum 管理安装包,并安装系统应用。可使用yum安装crontabs
# 搜索应用
yum search crontabs
# 安装应用
yum install crontabs
# 卸载应用
yum remove crontabs
1
2
3
4
5
6
2
3
4
5
6
# vim
vim 的使用在linux服务器中是一个必备技能,vim基本使用这里不介绍。
# linux 组件
# systemctl
systemctl 的使用可以参照文档 systemctl
查看service控制台日志输出
journalctl -u kibana.service
1
# user、group
可参照文档 user
# 添加用户
useradd family
# 添加用户
groupadd business
# 为用户分配组
usermod family -g business
1
2
3
4
5
6
2
3
4
5
6
注意:普通用户不具有 systemctl 管理的 service 执行权限,可通过下面配置解决,或参照博客 (opens new window)
# 以确保非root用户被允许使用sudo执行特定的服务管理命令
# 编辑sudoers文件
vim /etc/sudoers
# 以用户名 family 为例,允许用户启动和停止nginx服务:
# 在文件中添加一行,允许用户执行特定服务的启动和停止命令。
family ALL=(ALL) NOPASSWD: /bin/systemctl start nginx, /bin/systemctl stop nginx
# 或者
family ALL=(ALL) NOPASSWD: ALL
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# cron
centos 系统中已经安装了 cron,若没有安装可以使用下面命令
yum install crontabs
1
编辑查看定时任务
# 查看
cron -l
# 编辑
cron -e
1
2
3
4
2
3
4
# ssh、scp
# 在服务器密钥生成,建议对密钥加密,更安全
ssh-keygen -t ed25519
# 公钥添加到 authorized_keys 文件
cat id_ed25519.pub >> authorized_keys
# 将生成的私钥下载到客户端,使用下面命令登录(注意要删掉服务端生成的私钥)
ssh -i ~/.ssh/id_ed25519 root@your_ip
# 禁用密码登录
vim /etc/ssh/sshd_config
# 修改配置
PasswordAuthentication yes
# 保存文件后,重新加载
systemctl reload sshd
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# github、action
# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go
name: Go
on:
workflow_dispatch:
push:
# branches: [ "main" ]
tags:
- "*"
# pull_request:
# branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.20'
- name: vet check
run: |
go env -w GO111MODULE=on
go mod tidy
go vet ./...
- name: Test
run: go test -v ./...
- name: build
run: GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X 'main.Version=${{ github.ref_name }}'" -o family-server main.go
- name: copy file
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
passphrase: ${{ secrets.PASSPHRASE }}
key: ${{ secrets.KEY }}
source: family-server
target: /home/family/
- name: restart
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.HOST }}
key: ${{ secrets.KEY }}
username: ${{ secrets.USERNAME }}
passphrase: ${{ secrets.PASSPHRASE }}
script: |
chmod u+x ~/family-server
sudo systemctl restart family
- name: ding talk
run: |
curl 'https://oapi.dingtalk.com/robot/send?access_token=ca46xxxxxxx' -H 'Content-Type: application/json' -d '{"msgtype": "text","text": {"content":"【通知】family-server 发布完成,${{ github.ref_name }}"}}'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 域名(domain), 证书(ssl)
域名在阿里云购买,ssl证书为申领的免费证书,注意免费证书有效期只有1年,且不能续期
# 应用
# nginx(http, https, upstream)
nginx 采用源码安装,详细操作
# mariadb(mysql), mysqldump
mariadb 安装可使用yum安装,详细操作参照博客 (opens new window)
mariadb 发布下载 (opens new window)
# obsutil
该应用为华为云obs linux 客户端,是一个数据存储服务,可用于mysql数据库备份文件的存储,使用参考文档 (opens new window)
# ELK(Elasticsearch, Logstash, Kibana)
Elasticsearch 安装参考文档 (opens new window) Kibana 安装参考文档 (opens new window) Logstash 安装参考文档 (opens new window)
elasticsearch 密码重置命令
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
1
编辑 (opens new window)
上次更新: 2024/03/02, 18:30:15