节点最小化依赖安装
FCP平台支持注册Linux操作系统的节点和Windows操作系统的节点,点击链接查看产集群支持的操作系统版本,点击链接查看桌面支持的操作系统版本 本地节点需要安装最小化依赖才能被添加至平台,请根据以下操作系统安装对应依赖
Linux操作系统节点最小化依赖按钮
前提条件
- 本地Linux节点需要安装以下依赖才能被添加至平台
- 如果对Linux节点有网络要求, 请参考FCP产品网络规划
通用依赖
# Ubuntu18.04,通常情况下系统自带python2.6/2.7,如果没有自行安装
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y nfs-common autofs ntp nscd libpam-modules python-setuptools
# Ubuntu20.04/Ubuntu22.04,通常情况下系统自带任意版本python3,如果没有自行安装
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y nfs-common autofs ntp nscd libpam-modules python-setuptools python3-pip
# CentOS7.x/RedHat7.x,通常情况下系统自带python2.6/2.7,如果没有自行安装
sudo yum install -y nfs-utils autofs ntp nscd redhat-lsb python-setuptools authconfig pam
# CentOS6.x/RedHat6.x,通常情况下系统自带python2.6/2.7,如果没有自行安装
sudo yum install -y rng-tools nfs-utils autofs ntp nscd redhat-lsb python-setuptools authconfig pam
# Rocky Linux 8.x,通常情况下系统自带任意版本python3,如果没有自行安装
sudo yum install -y nfs-utils autofs nscd redhat-lsb python3-setuptools authconfig pam chrony
其他依赖
当选择使用内置LDAP、外置LDAP/AD、OIDC作为用户认证时,需要安装以下依赖:
# Ubuntu18.04/Ubuntu20.04/Ubuntu22.04
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y libnss-ldapd
# CentOS7.x/RedHat7.x/CentOS6.x/RedHat6.x/Rocky Linux 8.x
sudo yum install -y nss-pam-ldapd.x86_64 nss-pam-ldapd.i686 openldap-clients
当选择使用 外置NIS作为用户认证时,需要安装以下依赖:
# Ubuntu18.04/Ubuntu20.04
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y nis
# Ubuntu22.04
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y nis libnss-nis
# CentOS7.x/RedHat7.x/CentOS6.x/RedHat6.x/Rocky Linux 8.x
sudo yum install -y ypbind rpcbind ypserv yp-tools
对于GPU节点,则需要安装GPU驱动和dcgm-exporter,才能保证主机的GPU监控正常:
CentOS6.x/RedHat6.x不支持GPU监控
- Ubuntu18.04/Ubuntu20.04/Ubuntu22.04,需要自行安装20.04及以上版本的docker,并执行以下脚本安装GPU驱动、运行dcgm-exporter容器
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
if [ ! -f /etc/apt/sources.list.d/nvidia-docker.list ]; then
sudo curl -o /etc/apt/sources.list.d/nvidia-docker.list -s -L https://nvidia.github.io/libnvidia-container/stable/$distribution/libnvidia-container.list
fi
sudo apt-get update
if ! dpkg -l | grep nvidia-container-toolkit > /dev/null; then
sudo apt-get install -y nvidia-container-toolkit
fi
if ! dpkg -l | grep nvidia-driver > /dev/null; then
# found latest version of driver
sudo DEBIAN_FRONTEND=noninteractive apt install -y $(apt-cache pkgnames nvidia-driver | grep server | grep -v open | sort -n | tail -n 1)
fi
sudo docker run --name dcgm-exporter --gpus all -p 9400:9400 -d --restart always nvidia/dcgm-exporter:latest
- CentOS7.x/RedHat7.x,需要自行安装20.04及以上版本的docker,并执行以下脚本安装GPU驱动、运行dcgm-exporter容器
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
if [ ! -f /etc/yum.repos.d/nvidia-docker.repo ]; then
sudo curl -o /etc/yum.repos.d/nvidia-docker.repo -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo
sudo yum makecache -y
fi
if ! rpm -qa | grep nvidia-container-toolkit > /dev/null; then
sudo yum install -y nvidia-container-toolkit
fi
if grep -E "release 8\." /etc/redhat-release; then
if ! rpm -qa | grep xorg-x11-drv-nouveau.x86_64 > /dev/null; then
# found latest version of driver
sudo yum install -y xorg-x11-drv-nouveau.x86_64
fi
else
if ! rpm -qa | grep nvidia-x11-drv > /dev/null; then
# found latest version of driver
sudo yum install -y nvidia-x11-drv
fi
fi
sudo docker run --name dcgm-exporter --gpus all -p 9400:9400 -d --restart always nvidia/dcgm-exporter:latest
- Rocky Linux 8.x,需要自行安装20.04及以上版本的docker,并执行以下脚本安装GPU驱动、运行dcgm-exporter容器
if [ ! -f /etc/yum.repos.d/nvidia-docker.repo ]; then
sudo curl -o /etc/yum.repos.d/nvidia-docker.repo -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo
sudo yum makecache -y
fi
if ! rpm -qa | grep nvidia-container-toolkit > /dev/null; then
sudo yum install -y nvidia-container-toolkit
fi
if grep -E "release 8\." /etc/redhat-release; then
if ! rpm -qa | grep xorg-x11-drv-nouveau.x86_64 > /dev/null; then
# found latest version of driver
sudo yum install -y xorg-x11-drv-nouveau.x86_64
fi
else
if ! rpm -qa | grep nvidia-x11-drv > /dev/null; then
# found latest version of driver
sudo yum install -y nvidia-x11-drv
fi
fi
sudo docker run --name dcgm-exporter --gpus all -p 9400:9400 -d --restart always nvidia/dcgm-exporter:latest
VNC
此依赖仅需在FCP-SE
及FCP-Suite
中安装.
桌面环境的安装
VNC
依赖于底层桌面环境, 请确保系统安装了桌面环境, 例如:
- KDE Plasma Desktop
- Xfce Desktop
- Gnome Desktop
我们推荐系统中有且仅有一个桌面环境, 如果同时存在多个, 这意味着您需要正确地进行配置目标桌面环境以确保其能够被正常引导, 否则可能会导致多个桌面环境发生竞争从而导致桌面系统无法正常启动.
如果需要卸载多于的桌面环境, 请参考各个桌面环境的文档中提供的卸载步骤进行卸载.
如果系统中不存在桌面环境, 请执行Xfce安装脚本安装Xfce4
VNC Server组件安装
在此脚本中, 首先会检查您的系统是否存在或存在多个桌面环境, 如果条件满足那么会发出警告, 警告信息会提示您需要正确地处理目标桌面环境.
然后会安装VNC Server
组件, 并对VNC Server
组件进行定制(例如高分辨率支持
, 单用户多节点的共享存储中的会话隔离
...).
最后会尝试启动VNC Server
组件来验证VNC Server
组件是否能够正常工作, 如果启动失败, 通常是桌面环境没有正确配置导致.
请执行此脚本安装VNC Server
组件
Windows操作系统节点最小化依赖按钮
不需要pbs调度器,请查看通用依赖章节
需要pbs调度器,请查看pbs依赖章节
前提条件
- 本地windows节点需要安装以下依赖才能被添加至平台
- 如果对windows节点有网络要求, 请参考FCP产品网络规划
通用依赖
下载安装包
- 远程登录工具安装包:
openssh-win64-8.1.zip
- 监控工具安装包:
wmi_exporter-0.11.0-386.msi
- psexec工具安装包:
PSTools.zip
安装步骤
-
使用
administrator
用户登陆windows
节点,下载的安装包复制到桌面目录下 -
创建
fastone
用户, 使用默认密码,不建议修改
需要在powershell
里运行:- 添加用户
- 添加到管理员组
net user fastone kJ!yRYJz /add
net localgroup administrators fastone /add
在cmd里运行:
- 设置密码过期时间为永不过期
wmic.exe UserAccount Where Name='fastone' set PasswordExpires='false'
-
安装
openssh
需要在powershell
里运行:-
解压安装包
-
重命名安装目录
-
安装sshd
-
开启防火墙
-
设置开机自启
Expand-Archive -Path C:\Users\Administrator\Desktop\OpenSSH-Win64-8.1.zip -DestinationPath "C:\Program Files\"
Rename-Item "C:\Program Files\OpenSSH-Win64" "C:\Program Files\OpenSSH"
powershell.exe -ExecutionPolicy Bypass -File "C:\Program Files\OpenSSH\install-sshd.ps1"
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Set-Service sshd -StartupType Automatic- 配置ssh config
进入C:\ProgramData\ssh
目录(目录为隐藏目录,如果没有,则重启机器),打开ssh_config
或者ssh_default_config
文件,将文件中下列代码注释掉:
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys保存退出
- 配置ssh config
-
-
安装
wmi_exporter
直接双击安装即可 -
关闭防火墙(无网络要求), 如果对网络有要求,参考FCP产品网络规划
powershell
运行
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
-
安装psexec工具
powershell
运行
Expand-Archive -Path C:\Users\Administrator\Desktop\PSTools.zip "C:\Users\Administrator\Desktop\pstools"
Move-Item -Path C:\Users\Administrator\Desktop\pstools\PsExec64.exe "C:\Windows\System32\"
Move-Item -Path C:\Users\Administrator\Desktop\pstools\PsExec.exe "C:\Windows\System32\" -
配置
fastone
的ssh
使用fastone
用户登录windows
节点, 因为要创建fastone
用户目录- 在
powershell
里运行 - 生成
ssh
密钥与config
文件(ssh-keygen
命令一直回车,默认即可) - 配置
ssh
的config
文件
cd C:\"Program Files"\OpenSSH
ssh-keygen
Add-Content -Path $HOME\.ssh\config -Value 'Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null' - 在
-
重启
windows
节点 -
至此,
windows
节点的基础依赖安装完成,只用做图形桌面的单个windows节点,无调度器。 -
在
fastone
平台主机管理页面添加windows节点, 输入节点用户时请使用管理员组administrators
内的用户。
pbs依赖
前提条件
- 需要使用pbs调度器执行任务的机器需要安装pbs依赖
- 管理节点系统:Ubuntu 18.04
- 执行节点系统:windows server 2019
- 如果对windows节点有网络要求, 请参考FCP产品网络规划
- 依赖
samba
服务如何启动smaba服务,用于共享文件与任务输出
管理节点依赖安装
- 下载安装包
请联系速石技术人员获取
pbs安装包:pbspro-19.0.0-2.tar.gz
- 安装依赖 执行如下脚本安装依赖:
#!/bin/bash
set -ex
if [ ! -e /etc/apt/sources.list ]; then
echo "No only works under ubuntu. Exiting."
exit 0
fi
sudo dpkg --configure -a
sudo apt-get clean
sudo apt-get --fix-broken install -y
sudo apt-get autoremove -y -qq
sudo apt-get update -y -qq
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -yq
sudo apt-get install -y aptitude
sudo aptitude install -y gcc make libtool libhwloc-dev libx11-dev \
libxt-dev libedit-dev libical-dev ncurses-dev perl \
postgresql-server-dev-all postgresql-contrib python3-dev tcl-dev tk-dev swig \
libexpat-dev libssl-dev libxext-dev libxft-dev autoconf \
automake expect
- 安装pbs 将下载的安装包解压到/opt/tmp目录下,执行如下脚本进行安装:
#!/bin/bash
set -ex
if [ ! -e /etc/apt/sources.list ]; then
echo "No only works under ubuntu. Exiting."
exit 0
fi
# add private ip and hostname to hosts file, solve `qmgr: cannot connect to server`
# get hostname
HOSTNAME=$(hostname)
# get private ip
PRIVATE_IP=$(hostname -I | awk '{print $1}')
# check if private ip exists
if [[ -z "$PRIVATE_IP" ]]; then
echo "cannot get private ip. Exiting."
exit 1
fi
file='/etc/hosts'
if grep -q "^$PRIVATE_IP\s*$HOSTNAME" $file; then
echo "$PRIVATE_IP $HOSTNAME already exists in $file"
else
# write private ip and hostname to hosts file
echo "$PRIVATE_IP $HOSTNAME" >> $file
echo "added $PRIVATE_IP $HOSTNAME to $file"
fi
# change postgres ports
sudo sed -i -e 's/port = .*/port = 25432/' -- /etc/postgresql/*/main/postgresql.conf
sudo systemctl stop postgresql # we are not using the default one
# install pbspro
sudo tar -zxvf /opt/tmp/pbspro-19.0.0-2.tar.gz --keep-old-files -C /
# run installer
# sudo /usr/bin/pbs.install
sudo chmod 4755 /usr/sbin/pbs_iff /usr/sbin/pbs_rcp
sudo rm -vf /etc/pbs.conf
sudo /usr/libexec/pbs_postinstall
sudo sh -c 'echo PBS_DATA_SERVICE_PORT=15432 >> /etc/pbs.conf'
START=$SECONDS
while ! sudo systemctl restart pbs; do
systemctl status pbs || true
systemctl status postgresql || true
sudo netstat -antp
ELAPSED=$(expr $SECONDS - $START)
if [ $ELAPSED -gt 300 ]; then
exit 1;
fi
sleep 5
done
START=$SECONDS
while ! sudo /usr/bin/qmgr -c "set server single_signon_password_enable=true"; do
echo "=================== syslog ====================="
sudo tail -n 100 /var/log/syslog
echo "=================== netstat ====================="
sudo netstat -antp
echo "=================== status ====================="
sudo systemctl start postgresql || true
sudo systemctl start pbs || true
ELAPSED=$(expr $SECONDS - $START)
if [ $ELAPSED -gt 300 ]; then
exit 1;
fi
done
# disable pbspro
sudo systemctl disable pbs
sudo systemctl disable postgresql
sudo systemctl stop postgresql
windows节点依赖安装
- 下载安装包
- 远程登录工具安装包:
openssh-win64-8.1.zip
- 监控工具安装包:
wmi_exporter-0.11.0-386.msi
- psexec工具安装包:
PSTools.zip
- PBSPro安装包:
pbspro-19.0.0-2.msi
- fsagent安装包:
fsagent-19.0.0-2.msi
-
安装步骤
-
使用
administrator
用户登陆windows
节点,下载的安装包复制到桌面目录下 -
创建
fastone
,pbsadmin
用户, 使用默认密码,不建议修改
需要在powershell
里运行:- 添加用户
- 添加到管理员组
net user fastone kJ!yRYJz /add
net user pbsadmin abc111. /add
net localgroup administrators fastone /add
net localgroup administrators pbsadmin /add
在cmd里运行:
- 设置密码过期时间为永不过期
wmic.exe UserAccount Where Name='fastone' set PasswordExpires='false'
wmic.exe UserAccount Where Name='pbsadmin' set PasswordExpires='false' -
安装
openssh
需要在powershell
里运行:-
解压安装包
-
重命名安装目录
-
安装sshd
-
开启防火墙
-
设置开机自启
Expand-Archive -Path C:\Users\Administrator\Desktop\OpenSSH-Win64-8.1.zip -DestinationPath "C:\Program Files\"
Rename-Item "C:\Program Files\OpenSSH-Win64" "C:\Program Files\OpenSSH"
powershell.exe -ExecutionPolicy Bypass -File "C:\Program Files\OpenSSH\install-sshd.ps1"
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Set-Service sshd -StartupType Automatic- 配置ssh config
进入C:\ProgramData\ssh
目录(目录为隐藏目录,如果没有,则重启机器),打开ssh_config
或者ssh_default_config
文件,将文件中下列代码注释掉:
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys保存退出
- 配置ssh config
-
-
安装
wmi_exporter
直接双击安装即可 -
关闭防火墙(无网络要求), 如果对网络有要求,参考FCP产品网络规划
powershell
运行
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
-
安装psexec工具
powershell
运行
Expand-Archive -Path C:\Users\Administrator\Desktop\PSTools.zip "C:\Users\Administrator\Desktop\pstools"
Move-Item -Path C:\Users\Administrator\Desktop\pstools\PsExec64.exe "C:\Windows\System32\"
Move-Item -Path C:\Users\Administrator\Desktop\pstools\PsExec.exe "C:\Windows\System32\" -
安装
PBSPro
直接双击安装即可 -
移动
fsagent
到C:\Windows\System32\
下Move-Item -Path C:\Users\Administrator\Desktop\fsagent.windows.exe -Destination C:\Windows\System32\fsagent.exe
-
配置
fastone
的ssh
- 使用
fastone
用户登录windows
节点,并在powershell
里运行 - 生成
ssh
密钥与config
文件(ssh-keygen
命令一直回车,默认即可) - 配置
ssh
的config
文件
cd C:\"Program Files"\OpenSSH
ssh-keygen
Add-Content -Path $HOME\.ssh\config -Value 'Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null' - 使用
-
重启
windows
节点 -
在
fastone
平台主机管理页面添加windows节点, 输入节点用户时请使用管理员组administrators
内的用户。
启动smaba服务
在管理节点上,执行如下命令启动smaba
容器服务:
docker run -it --restart always --name smb-server --network=host -e SHARE_NAME=fastone -e SHARE_PATH=/fastone -e USER_NAME=fastone -e USER_ID=$(id -u fastone) -e GROUP_NAME=fastone -e GROUP_ID=$(id -g fastone) -e SMB_PASSWORD='password' --mount type=bind,source=/fastone,target=/fastone,bind-propagation=rslave hub.fastonetech.com/cce/fs-smb-server:24.05
Parameters
Option | Usage | Example |
---|---|---|
SHARE_NAME | name of the share | fastone |
SHARE_PATH | path to export | /fastone |
USER_NAME | username to access the share | |
USER_ID | user id of the specified username | |
GROUP_NAME | group to map the share | |
GROUP_ID | group id of the specified group id | |
SMB_PASSWORD | password to access the share |
Usage
NOTE:
- 必须使用host网络
- 必须挂载
SHARE_PATH
到容器,使用--mount参数,使用bind-propagation=rslave
参数,以确保文件权限正确
-- mount type=bind,source=/fastone,target=/fastone,bind-propagation=rslave
验证配置
为了确保配置正确, 请在完成windows节点的配置后进行相应的验证, 以确保Fastone平台能够对节点进行控制
- 能够通过RDP客户端(例如mstsc)连接到节点
接入AD
Active Directory (AD)
不是平台托管Windows
节点的必要条件,但接入AD将带来以下诸多优势:
- 集中身份认证: 统一不同系统中的身份认证.
- 身份的统一管理: 只需要接入AD即可完成对组织内部成员身份的管理.
请根据您的实际情况决定是否需要接入AD
.
若需要接入 AD,请参考以下文档以完成AD
的接入:
- FCP平台配置AD
- 请根据Windows节点集成AD文档完成AD域的加入.