搭建实验室多人共用GPU服务器

配置方案

(1)初始需求

*首先每个用户的登陆是独立的,每个用户以各自的账号密码进行登陆,并进入到对应的文件空间中去。

*用户需要以一定方式进行要跑的程序的上传,并能够使用命令行的方式找到自己上传的文件,使用服务器上的python环境跑程序。

*在具体跑程序时,每个用户需要自己独立的python环境,也就是需要提前为每个用户创建一套python环境,自己环境中需要装的模块由自己维护。

(2)需求解决

*针对每个用户登陆方式独立和独自账号密码的需求,我们使用ubuntu下多用户管理的方式创建独自的账号密码,对Ftp或SSH里的配置协议来维护用户登陆方式。

*针对文件上传和使用命令行跑程序的需求,我们使用Ftp和SSH文件传输的方案,让用户使用两个传输方式根据ip使用账号密码登陆到服务器中。

*针对于python环境独立的需求,我们使用Anaconda用每个用户创建自己独立的python开发环境,并修改每个用户的环境变量文件.bashrc来让每个用户初始进入各自的虚拟python中。

*此外每个用户每次使用Ftp/ssh进行登陆时,使用的ip得是固定的,因为学校的校网是每次开机都会随机分配ip,因为这里是申请了一个固定的ip地址和绑定的校网账号,管理员需要将这个ip地址配置到网卡上,并使用绑定的校网账号进行网络的连接。

(3)搭建方案为:Ftp+SSH+多用户管理+Anaconda,其中:

*Ftp是用于为用户提供 往服务器上上传文件和使用命令行运行程序文件的文件传输协议

*SSH是另一种进行文件传输的方案,用途与FTP相同,用户可以选择使用Ftp或者SSH方式进行登陆。

*多用户管理是指我们可以在服务器上创建、删除用户,以及修改用户权限,这样我们会为实验室每个成员创建一个用于连接服务器进行跑文件的用户,并将用户名配置到FTP配置文件中去,使得用户可以使用FTP方式进行连接。

*Anaconda:是一个很强大的python环境管理集成平台,我们可以在安装Anaconda后,使用其下的conda命令进行多环境管理,环境下的模块管理。
具体实施

前提:以下搭建和维护是我们服务器上的方案,仅做参考,个人IP信息等已修改为全0,请有选择的修改为你自己服务器的方案。

可以按照以下的思路进行环境的搭建:

(1)绑定上固定的ip地址。在‘编辑连接’中往网卡上绑定上申请的IP地址(000.000.000.000)、子网掩码(000.000.000.0)、缺省网关(000.000.000.000)、DNS(000.000.00.0),并修改/etc/network/interfaces文件进行ip的设置。

(2)进行用户管理。在Terminal上使用useradd 等命令行形式进行用户的创建,我们这里为了有利于用户进行文件的访问,每个新建的用户都需要使用usermod -G root 新用户名 的命令方式将新用户放置到root组中,使得新用户具有root权限。

(3)设置远程协议。下载和安装FTP,并用sudo gedit /etc/vsftpd.conf命令在vsftpd.conf文件中进行FTP的内部协议信息配置(进行配置很重要,可以参照网上,将用户配置到ftp的配置文件中,曾经一直调不通,之后设置listen=True后才好的),SSH的话,直接下载、安装、启动SSH服务器即可,不需要进行协议配置,这样经过网络协议搭建之后,用户就可以按照ip地址进行文件访问和跑程序了。比如:

     *比如可以在浏览器上输入 ftp://fly@000.000.000.000(举例ftp 方式)进行指定用户的文件目录访问,可以往访问的目录中放置程序。

     *可以在cmd中输入ssh fly@000.000.000.000进行命令行方式的连接

(4)创建多人开发环境。首先安装Anaconda,这里我们选择将Anaconda安装到/home目录下(因为之后我们在很多配置文件中都配置了/home/anaconda3这一行环境变量),之后开始为每个用户创建虚拟环境,使用conda create -n your_env_name python=X.X(2.7、3.6等)命令创建python版本为X.X、名字为your_env_name的虚拟环境,这样我们为每个要远程连入的用户都创建一个虚拟环境,之后可以使用conda info -e命令查看现在有哪些虚拟环境,以及现在正在使用的虚拟环境(标识*号),使用source activate 用户名命令可以进行虚拟环境的切换,此时terminal下的默认python也就是所激活的python虚拟环境.
维护思路

管理的日常维护包括:

(1)创建和删除用户,创建的用户我们一般放置到root组中,让其有管理员权限,这样的话用户才能更顺畅的在自己的python虚拟环境中安装和卸载模型(因为有些模块的安装和删除需要管理员权限)。

(2)在服务器初始开机后,进行网络连接的工作,先尝试直接使用校网验证平台登陆账号XXXX 密码XXXX,看是否能够连接成功网络,如果无法连接的话,在右上角网络图标下,尝试点击ifupdown(enp5s0)手动进行连接,这样能否连接上网络,或者还不行时,点击‘启动联网’关闭联网,再点击‘启动联网’进行重启联网,看是否可以连接上。

(3)在已经连好网的情况下,当ssh不起作用不可登陆时,使用sudo service ssh restart命令对ssh服务器进行重启(因为ssh服务器一般是不需要修改配置的),当ftp方式连接不上时,一方面可以尝试修改 /etc/vsftpd.conf配置文件进行一些配置上修改的尝试,另一方面可以使用service vsftpd start命令记性重启的尝试。

(4)服务器创建新用户和anaconda中创建对应虚拟环境是配套的,每次创建新用户后,需要使用conda create.....创建新用户的虚拟环境,并在创建好虚拟环境后执行sudo chmod 777 -R /home/anaconda3命令来让每个用户都有对/home/anaconda3的访问权限(注意这个命令很重要,因为每个用户默认登陆是无法访问上级文件的,这样的设置是令其能进行访问),另外需要修改新用户内的./bashrc文件,方法是:

      *在用户大环境下(你可以先cd到用户的目录中),输入命令‘vi  .bashrc’进入当前用户的环境变量文件,在最后加入如下的代码(可以从其他用户的环境变量中复制过来),注意对虚拟环境名进行替换。

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH

export CUDA_HOME=/usr/local/cuda-8.0

export PATH=/usr/local/cuda-8.0/bin:$PATH

# added by Anaconda3 installer

export PATH="/home/anaconda3/bin:$PATH"

. /home/anaconda3/etc/profile.d/conda.sh

conda activate 虚拟环境名

举例下面的形式

这样设置之后每个用户初始登陆默认就会进入自己的python虚拟环境中,用户自己在里面安装模块即可。

     注意:对于新建立的用户的python虚拟环境,一方面可以使用自己一个个为其安装需要的模块,另一方面可以使用克隆的方式,将其他用户的虚拟环境克隆过去,克隆命令为如下,使用如下方法直接创建一个新的即可。

    (5)不要随便在ubuntu下安装软件(曾经因为安装teamview、LDA等软件导致出现了多网卡,导致混乱),在安装软件时可以先在左侧进行查询哪些软件可以安装,在安装python模块时,可以先使用语句conda search  模块名进行模块的查找,使用这样的方法。
---------------------  
作者:马飞飞  
来源:CSDN  
原文:https://blog.csdn.net/maqunfi/article/details/82903155  
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先,你可以在每次提交时设置不同的用户名和邮箱,以此来区分不同的用户。此外,你也可以使用git config --global user.name "[name]"和git config --global user.email "[email address]"来设置不同用户的配置,这样就可以轻松区分git用户了。 ### 回答2: 多人共用一个Linux账号时,可以通过配置Git的全局用户名和邮箱来区分各个用户的提交记录。 首先,每个用户需要在他们自己的机器上配置Git的全局用户名和邮箱。可以使用以下命令: ``` git config --global user.name "Your Name" git config --global user.email "your_email@example.com" ``` 每个用户需要将"Your Name"替换为自己的名字,将"your_email@example.com"替换为自己的邮箱。 这样,每个用户在使用该Linux账号进行Git提交时,他们的提交记录中将包含他们的名字和邮箱信息。 当需要查看提交记录时,可以使用以下命令: ``` git log ``` 这将会显示所有的提交记录,包括每次提交的作者信息。 如果需要只查看某个特定用户的提交记录,可以使用以下命令: ``` git log --author="Your Name" ``` 将"Your Name"替换为具体的用户名,这将会显示该用户的所有提交记录。 通过上述方法,即使多人共用一个Linux账号,也能够区分各个用户的Git提交记录。 ### 回答3: 多人共用一个Linux账号时,每个人可以在自己的个人目录下创建自己的Git仓库来提交代码,通过Git的用户名和邮箱来区分不同的Git用户。 首先,每个用户可以在Linux系统中创建自己的账号,并在创建账号时设定一个唯一的用户名。然后,每个用户在自己的Linux账号目录下创建一个Git仓库,可以使用Git命令`git init`来初始化一个新的Git仓库。 接下来,每个用户可以使用`git config`命令设置自己的用户名和邮箱,命令示例如下: ``` git config --global user.name "User1" git config --global user.email "user1@example.com" ``` 通过`--global`参数,设置的用户名和邮箱将应用于该用户的所有Git仓库,并在每次提交代码时记录到Git提交日志中。 在使用Git提交代码时,每个用户需要切换到自己的仓库目录,然后运行`git add`将要提交的文件添加到暂存区,再运行`git commit`将暂存区的文件提交到本地仓库。提交命令示例: ``` cd /path/to/user1/repo git add file.txt git commit -m "Add new file" ``` 每个用户可以根据自己的需要提交不同的代码,并且每次提交都会记录相应的用户名和邮箱。这样,在查看Git提交历史时,可以通过用户名和邮箱区分不同的用户。 需要注意的是,多人共用一个Linux账号时要注意协作和权限管理,避免不必要的冲突和权限问题。最好还是建议每个人都有自己独立的Linux账号来管理自己的Git代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值