分类 Linux 下的文章

PVE 作为虚拟平台,以稳定为主,其 WEB 介面类似于 IPMI。如果因数据盘坏掉导致挂载不了目录,进而进不了 PVE 系统,那就失去了“稳定”的可能性。

为了避免发生以上情况,数据盘不要在PVE中挂载,而是直通给 LXC 文件共享容器,这个容器通过fstab专门挂载数据盘,提供 SAMBA/NFS 等基础共享服务。之后再把文件通过SAMBA/NFS网络共享给 PVE 数据中心,挂载在 PVE 下的 /mnt/pve/ 目录下。其它 LXC 容器通知添加挂载点,使用数据盘进行数据的读写。

过程如下:

  1. 在文件共享容器的操作。

“资源”、“添加”、“Device Passthrough”,把 /dev/disk/by-uuid/* 硬盘分区添加到 LXC 容器资源中。其中数据盘分区的 uuid 可以在 PVE 中通过 blkid 命令查看。

在此容器中,添加自动挂载服务,让添加的硬盘通过fstab自动挂载到目录中。代码如下:

sudo vi /etc/systemd/system/mount-fstab.service
[Unit]
Description=Mount all filesystems from fstab
After=local-fs.target

[Service]
Type=oneshot
ExecStart=/bin/mount -a
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
systemctl enable mount-fstab.service

之后,通过 SAMBA 或 NFS 服务,把挂载的目录分享出来。

  1. PVE数据中心操作

定位到“数据中心”,“存储”,选择“填加”,选择 SAMBA 或 NFS 类型把上述的共享,添加到数据中心供其它 LXC 使用,顺利添加后,添加的项目会在 WEB 顶级菜单中的“存储”中呈现,在这个菜单下可见默认的"local"和"local-lvm"项。

  1. 为其它 LXC 容器挂载共享目录

在 PVE 的 shell 下通过以下命令挂载:

pct set lxc容器号 -mp* /mnt/pve/*,mp=/mnt/*

生成方法

使用以下命令可以生成40位的随机密码:
openssl rand -bash64 30

原理解释

上面的命令为 openssl 随机生成 30 字节的二进制文件,但二进制文件对人类的读写不友好,所以采用 base64 编码方式对这 30 字节的随机文件进行编码,生成40位字符在A~Z,a~z,0~9,/,+,=范围的密码。

- 阅读剩余部分 -

#!/bin/bash
#脚本作用:从预设的“用户名:密码”组合文件中批量添加SAMBA用户。
#编写日期:2023-2-19

export PATH=/bin:/sbin:/usr/bin:/usr/sbin
for i in $(cat $1 |xargs)
    do
      USER=`echo $i | cut -f 1 -d ":"`
      PASSWD=`echo $i | cut -f 2 -d ":"`
      id $USER &>/dev/null
    if [ $? -eq 0 ]
      then
        echo "用户$USER已经存在!" 
      else
        echo "开始创建用户:$USER" 
        useradd -m -d /home/$USER -s /usr/sbin/nologin -g teacher $USER 
        echo $i | chpasswd
        echo -e "$PASSWD\n$PASSWD" | smbpasswd -a $USER && echo "$USER已成功添加为SAMBA用户。" || echo "用户$USER添加失败!"
    fi
done

开放端口映射端口用途
16881688KMS
222222SSH
40094009FRPS
4455445Samba
519814455Samba2