Fork me on GitHub

Munge的安装配置

munge是认证服务,用于生成和验证证书。应用于大规模的HPC集群中。它允许进程在【具有公用的用户和组的】主机组中,对另外一个【本地或者远程的】进程的UID和GID进行身份验证。这些主机构成由共享密钥定义的安全领域。在此领域中的客户端能够在不使用root权限,不保留端口,或其他特定平台下进行创建凭据和验证.

简而言之,在集群中,munge能够实现本地或者远程主机进程的GID和UID验证。

  • 采用munge用户运行进程
  • 采用命令行方式启动
  • 支持开机启动

1 安装

这次安装还是yum直接进行安装,首先删除之前安装的munge-0.5.13

1
2
3
pssh -i -h root_cpu2-64 "yum install -y rpm-build rpmdevtools bzip2-devel openssl-devel zlib-devel  openssl openssl-devel"
pssh -i -h root_cpu2-64 "rm -rf /opt/munge"
pssh -i -h root_cpu2-64 "yum install munge munge-libs munge-devel -y"

手动创建目录,这些目录在munge安装时不会自动创建,分别用于munge的配置、运行、日志等需求。

1
2
3
4
5
6
7
8
9
10
#单节点
rm -rf /var/{log,run,lib}/munge
rm -rf /etc/munge
mkdir -p /var/{log,run,lib}/munge
mkdir /etc/munge
#发送给计算节点
pssh -i -h root_cpu2-64 "rm -rf /var/{log,run,lib}/munge"
pssh -i -h root_cpu2-64 "rm -rf /etc/munge"
pssh -i -h root_cpu2-64 "mkdir -p /var/{log,run,lib}/munge"
pssh -i -h root_cpu2-64 "mkdir /etc/munge"

如果我们在root下执行munge进程,那么

1
2
3
4
5
6
7
 chown root:root -R /etc/munge
chown root:root -R /var/run/munge
chown root:root -R /var/lib/munge
chown root:root -R /var/log/munge
chown root:root -R /etc/munge/munge.key
chmod 0700 -R /etc/munge/ /var/log/munge/
chmod 0711 -R /var/lib/munge/

但是后来发现其实这些都是没有必要的,如果在root下运行,并且在root下创建,那么所有者都是root,不需要做什么改变

之后COMPUTE-1-1作为master节点生成key文件,这里munge.key可以手动创建,但是必须保证其内容在32个字节以上,且文件权限为400方可

1
2
echo "helloeveryone,I'ammungekeyonkvmcluster." >/etc/munge/munge.key &&  chmod 400 /etc/munge/munge.key
pscp.pssh -h root_cpu2-64 /etc/munge/munge.key /etc/munge/

之后munge服务一直无法生成,发现了很多网站上没有提到的一个问题,就是需要修改munge服务的生成配置文件

1
2
3
4
5
6
vim /usr/lib/systemd/system/munge.service
#将user和group都改成root
User=root
Group=root
#之后需要将这个配置文件发给其他所有节点
pscp.pssh -h root_cpu2-64 /usr/lib/systemd/system/munge.service /usr/lib/systemd/system/

启动munge服务,之后就可以自启动了

1
2
3
4
#首先在1节点上启动,然后在后面所有节点启用
systemctl enable munge
systemctl start munge
pssh -i -h root_cpu2-64 "systemctl enable munge&&systemctl start munge"

至此munge在1-64号节点上全部启动完毕

2检测munge

1
ps -ef|grep munge  #grep 可以通过各个节点查看munge进程验证

在slurmadmin用户下验证本机:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ munge -n | unmunge
STATUS: Success (0)
ENCODE_HOST: localhost (127.0.0.1)
ENCODE_TIME: 2015-09-14 16:39:58 +0800 (1442219998)
DECODE_TIME: 2015-09-14 16:39:58 +0800 (1442219998)
TTL: 300
CIPHER: aes128 (4)
MAC: sha1 (3)
ZIP: none (0)
UID: slurmadmin(1017)
GID: slurm (1017)
LENGTH: 0
#也可使用 remunge进行解码的测试benchamrk
$ remunge
munge -n 本地查看凭据
munge -n | unmunge 本地解码
munge -n | ssh 192.168.10.2 unmunge # Master Node进行测试 远程解码
remunge

munge自动认证的是相同的用户,即UID和GID相同,并不是按照用户名称来匹配,所以在创建slurm用户时必须指定相同的UID和GID.

如果遇到munge认证失败的问题 Invalid credential

1
2
pssh -i -h root_cpu2-64 "systemctl restart  munge" 
#所有节点 restart munge即可
-------------本文结束感谢您的阅读-------------

本文标题:Munge的安装配置

文章作者:Sheldon

发布时间:2019年12月18日 - 00:12

最后更新:2019年12月18日 - 02:12

原始链接:http://yoursite.com/2019/12/18/munge/

许可协议: 署名-非商业性使用-禁止演绎4.0 国际 转载请保留原文链接及作者。