子嘉的博客 子嘉的博客
首页
bic-bic
技术
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

高子嘉

没有比脚更长的路,没有比人更高的山
首页
bic-bic
技术
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 技术文档

  • GitHub技巧

  • 博客搭建

  • 服务端

    • deploy
      • 部署 check list
      • 工具
        • yum
        • vim
      • linux 组件
        • systemctl
        • user、group
        • cron
        • ssh、scp
        • github、action
        • 域名(domain), 证书(ssl)
      • 应用
        • nginx(http, https, upstream)
        • mariadb(mysql), mysqldump
        • obsutil
        • ELK(Elasticsearch, Logstash, Kibana)
    • nginx
    • vim
    • vimrc
    • gtest
  • distributed

  • golang

  • db

  • docker

  • linux

  • 技术
  • 服务端
子嘉
2023-10-05
目录

deploy

# 部署 check list

  1. 工具

    • yum
    • vim
  2. linux 组件

    • systemctl
    • user、group
    • cron
    • ssh、scp
    • github、action
    • yum
    • 域名(domain), 证书(ssl)
  3. 应用

    • 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

# vim

vim 的使用在linux服务器中是一个必备技能,vim基本使用这里不介绍。

  • 关于使用技巧可参照vim
  • 关于vim配置文件可参照.vimrc

# 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

注意:普通用户不具有 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

# cron

centos 系统中已经安装了 cron,若没有安装可以使用下面命令

yum install crontabs
1

编辑查看定时任务

# 查看
cron -l
# 编辑
cron -e
1
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

# 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

# 域名(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)
#deploy
上次更新: 2024/03/02, 18:30:15
vdoing主题效果图
nginx

← vdoing主题效果图 nginx→

最近更新
01
mongodb restore
03-06
02
pytesseract
02-28
03
consul
02-24
更多文章>
Theme by Vdoing | Copyright © 2022-2025 子嘉 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式