跳转至

部署运维学习

一、Linux 基础

1.1 基本命令

修改文件名

mv old-filename new-filename

1.2 系统配置

开机自启

使用systemd(大多数现代 Linux 发行版都是这样),可以创建服务实现开机自启。

二、真实项目经历

2.1 服务器网络设置

真实经历:因未知情况导致麒麟服务器重启后网络设置被重置,DNS服务器配置被清除

参考文献:麒麟服务器操作系统--网络配置的五种方式

  1. 首先切换到网络配置所在目录,查看当前网口对应的文件
cd /etc/sysconfig/network-scripts

ls -l
  1. 找到需要修改的网口文件,以下以ifcfg-enp0s1为例,先查看当前内容再进行修改
cat ifcfg-enp0s1
vim ifcfg-enp0s1
  1. 文件中有几个关键参数,正确设置后可以保证服务器重启后网络配置不会被重置
# 设置系统静态IP地址
IPADDR=192.168.0.6
# 设置系统启动时是否激活该网络接口,yes 表示在系统启动时自动激活该接口,也可以设置成no
ONBOOT=yes
# 设置网关地址
GATEWAY=192.168.0.1
# 设置DNS地址,一般与网关一致,也可以再添加一行DNS2=x.x.x.x设置备用DNS地址
DNS1=192.168.0.1
  1. 修改完配置文件重启网络连接配置
ifup ifcfg-enp0s1
sudo systemctl restart network
sudo service network restart

2.2 设置项目开机自启动

真实经历:在项目部署时使用了脚本restart_docker.sh用于启动项目,最终目标是在每次服务器重启时能够自动启动项目。

【!!注意】若脚本中相关命令需要在项目目录下运行,则需要保证后续命令运行均在项目目录内。

  1. 创建一个新的服务文件
sudo vim /etc/systemd/system/restart_docker.service
  1. 在服务文件中添加以下内容:除第三项[Install]不变,其他根据实际情况进行设置
[Unit]
Description=Restart Docker Script

[Service]
ExecStart=/path/to/restart_docker.sh
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target

[Service] 部分:

  • ExecStart 启动服务命令
  • Restart 服务崩溃或失败时是否重启
  • RestartSec 重启服务前等待的时间

  • 启用服务:在 systemd 的启动目标(targets)中创建符号链接,将服务设置为在系统启动时自动启动。

sudo systemctl enable restart_docker.service
  1. 启动服务:启用服务后,需要手动启动服务才能真正启动项目
sudo systemctl start restart_docker.service

image-20241202170636229

图 1 启用服务并启动服务

  1. 其他可能用到的命令:停用服务、检查服务状态、重启服务
sudo systemctl disable restart_docker.service
sudo systemctl status restart_docker.service
sudo systemctl restart restart_docker.service

image-20241202172830915

图 2 重启服务器后查看服务运行情况