1. 概述
munge是认证服务,用于生成和验证证书。应用于大规模的HPC集群中。
它允许进程在【具有公用的用户和组的】主机组中,对另外一个【本地或者远程的】进程的UID和GID进行身份验证。
这些主机构成由共享密钥定义的安全领域。在此领域中的客户端能够在不使用root权限,不保留端口,或其他特定平台下进行创建凭据和验证。
简而言之,在集群中,munge能够实现本地或者远程主机进程的GID和UID验证。
2. 下载
munge下载地址:https://dun.github.io/munge/
本篇博客使用的版本是:munge-munge-0.5.12.zip。下载之后,执行命令unzip munge-munge-0.5.12.zip
解压至当前目录
3. 安装
3.1 源码简要说明
解压源码包之后,在源码包下:
- README,查看软件说明
- HISTORY,查看历史版本和发布年份
- INSTALL,查看简要的安装方法
- PLATFORMS中,能够查到当前软件版本支持的平台类型
- NEWS,查看不同版本的特性和bug修复
- QUICKSTART,查看较为详细的安装过程和解释
依照QUICKSTART内容,或者在线用户向导:https://github.com/dun/munge/wiki/Installation-Guide,即可安装munge
注:munge提供了两种安装方式,即RPM包安装和源码安装。本篇博客采用源码安装。
3.2 编译安装
源码编译,基本上是3-4个步骤:configure,make,make test,make install。
在本篇博客中,对munge的部署有以下要求:
- 采用slurm用户运行进程
- 静态文件位于全局文件系统
- 动态文件位于本地
- 采用命令行方式启动
- 支持开启启动
采用slurm用户进程,可以在LDAP中添加slurm用户,参见《LDAP服务部署和测试.dm》。
通过./configure --help
查看帮助之后,确认执行方式如下:
./configure --prefix=/usr/local/munge/0.5.12/ --sysconfdir=/usr/local/munge/0.5.12/etc --localstatedir=/var
出现错误,提示如下:【configure: error: unable to locate cryptographic library】。
这个问题在QUICKSTART文件中有说明,主要是因为缺少Libgcrypt或者OpenSSL cryptgraphic 库所致。
这里采用符合GPL许可的Open SSL加密库,如果是源码此库环境,编译时需要通过--with-crypto-lib选择指定。
本篇博客中,采用YUM安装依赖库。解决方式:执行命令yum -y install openssl openssl-devel
上述问题解决之后,执行命令make
,完成之后,执行命令make install
至此,munge已经安装在本地目录中。如下图:
因为在configure的过程中,通过--localstatedir=/var,因此在当前安装目录没有var目录
注:本篇博客后续会将/usr/local目录通过NFS共享出去,因此/usr/local会作为全局文件系统来使用。此时将munge的var目录安装至此会有问题
因此,我们需要创建三个目录,即:/var/run/munge,/var/lib/munge,/var/log/munge。执行命令mkdir -p /var/{run,lib,log}/munge
即可创建。
按照安装说明,创建了上述三个目录之后:
执行命令:chown -R /var/{run,lib,log}/munge
修改目录属主
执行命令:chmod 711 /var/lib/munge; chmod 700 /var/log/munge; chmod 755 /var/run/munge
修改目录模式
3.3 配置
从上一部分中的工作中,已经完成了对munge的编译安装,这仅仅是第一步。
第二步就是配置munge,如下图:
在/usr/local/munge/0.5.12/etc/目录下,有三个目录:
- munge 用于放置munge.key
- rc.d 用于部署开机启动服务
- sysconfig 用户配置开机启动服务
编辑文件vim /usr/local/munge/0.5.12/etc/sysconfig/munge
,修改部分如下:
即,指定key-file和运行进程的用户为slurm
编辑文件vim /usr/local/munge/0.5.12/etc/rc.d/init.d/munge
,修改部分如下:
3.4 创建munge.key
munge.key的创建有四种方式,如下图
本篇博客采用第三种方式,
执行命令:echo -n "Hello.LiwanLiang.This is your munge key." | sha1sum | cut -d' ' -f1 > /usr/local/munge/0.5.12/etc/munge/munge.key
修改权限为400,执行命令:chmod 400 /usr/local/munge/0.5.12/etc/munge/munge.key
3.5 启动方式
以下方式,任选其一即可
创建脚本链接(或者直接拷贝文件),通过'service munge start'启动服务,如下图:
创建命令链接(或者直接拷贝文件),通过'munged'启动服务,如下图:
启动了munged之后,通过执行命令:lsof -p $(pgrep -f munged)
,能够查看munged服务打开的文件,如图:
查看日志内容,如下图:
至此,单节点启动munged的过程已经配置完成