OpenLMI(全称 Open Linux Management Infrastructure)顾名思义就是开放式的 Linux 管理基础架构。OpenLMI 是开源项目,旨在提高使用 WBEM 标准的 Linux 系统管理。OpenLMI 项目为管理 Linux 系统提供常用的基础设施。它还可让用户配置、管理并监控硬件、操作系统及系统服务。本文以最新 Fedora 21 为平台介绍 OpenLMI 的部署过程和使用方法。
前言OpenLMI 是一个 Linux 平台的服务配置管理和应用部署工具,功能类似于目前业界的配置管理工具 Chef,Puppet,Saltstack。当你去管理 10 台服务器,你肯定会说小意思。没有任何压力。 当你去管理 50 台服务器,你可能也会说没问他。当你去管理 1000+ 台服务器呢?你是不是就头痛了,不同的硬件,不同的内核版本,不同的软件版本。为了提升效率,OpenLMI 就派上了大用场。OpenLMI 可管理网络监控、用户、用户组、软件包、系统服务、软件包安装删除等。它是是通过 Python 语言开发。相比较其它同类产品来说,OpenLMI 还是非常年轻的,本文以最新 Fedora 21 为平台介绍 OpenLMI 的部署过程和使用方法。
OpenLMI 就是开放式的 Linux 管理基础架构。OpenLMI 是开源项目使用 WBEM 标准的 Linux 系统管理。WBEM 即 Web-Based Enterprise Management,WBEM 由 DMTF(Distributed Management Task Force,分布式管理任务组)在许多厂商的帮助下创立,目标是为管理企业环境开发一个标准的接口集。WBEM 模型最关键的部分是它的数据模型(或描述和定义对象的方式)、编码规范(Encoding Specification),以及在客户端和服务器端之间传输数据的模式。WBEM (Web-Based Enterprise Management) 作为一项业界倡议,起始于 1996 年,它规范了企业网络中受管资源的描述与使用。
OpenLMI 功能OpenLMI 提供了一套抽象层 API,将系统管理的相关工作任务,以及底层系统运作的复杂程序,统一起来。OpenLMI 里面提供了一整套的代理程序包括:控制器、客户端程序与命令行工具码。其中代理程序可安装在那些需要控管的服务器或虚拟 机上,然后再由 OpenLMI 控制器来管理这些代理程序,并提供相关接口,而客户端程序的作用是,经由控制器来调取代理程序,可利用命令行接口使用 C/C++、Python 或 Java 等语言。oenlmi 项目为管理 Linux 系统提供常用的基础设施。它还可让用户配置、管理并监控硬件、操作系统及系统服务。OpenLMI 旨在简化任务配置及产品服务器管理。OpenLMI 为 Linux 提供常用管理接口。OpenLMI 可让用户执行以下操作:
配置、管理和监控服务器及虚拟机运行情况;
配置、管理和监控本地或者远程操作系统;
配置、管理及监控本地或者远程的存储和网络;
使用 C/C++、Python、Java 或者命令行界面调用系统管理。
图 1. OpenLMI 的结构示意图通过图 1 可以了解到 OPenLMI 主要包括如下几个部分:
一套代理程序,又称为 LMI Providers 或 CIM Providers,可安装在需要监控的服务器上。用来查询,修改和监控系统运行情况。
一组标淮化的远程 API,又称 OpenLMI object broker,负责管理所有的代理程序,并为它们提供存取接口。
一个标淮通讯基础设施(使用 https 连接的 XML 技术),OpenLMI 被认为是安全性,因为它使用 TLS(HTTPS)进行加密通信。
LMIshell,这是一个客户端客户端程序,它的作用是通过 OpenLMI object broker 來调用 LMI Providers。这个客户端通过使用 WBEM + HTTPS 协议访问 CIMOM。其中 LMIshell 客户端系统包括:
一组命令行工具和 lmi 交互命令
脚本工具(基于 Python 的 lmishell)
其他语言(包括 C/C++、Java 等)组成结构如图 2
图 2. LMIshell 组成结构 主要 Linux 发行版本对于 OpenLMI 的支持情况Fedora 是 OpenLMI 的主要开发平台。从 Fedora 18 这个版本开始支持,推荐使用 Fedora 21 及其之后的版本,它们可以提供所有功能组件。RHEL 和 CentOS,从版本 7 开始支持,这两个发行版本可以提供大部分功能组件。用户需要通过 epel 软件源安装 openlmi 软件包。SUSE Linux 从版本 12 开始支持,可以提供一部分功能组件。Debian 和 Ubuntu 这两个发行版本目前不支持。
OpenLMI 应用环境和软件配置笔者使用最简单的网络结构,两台计算机直连,分别代表服务器和客户端。操作系统平台全部是 64 位的 Fedora 21 系统。ip 地址和主机名称:
192.168.0.1 Managed systems 主机名称:server1
192.168.0.2 LMIshell Clint 主机名称:client2
在 2 个节点上添加如下的 hosts 文件
# vi /etc/hosts
192.168.0.1 server1
192.168.0.2 client2
服务器端配置首先安装软件包
# yum install openlmi
然后启动服务
# systemctl start tog-pegasus
# systemctl enable tog-pegasus
打开防火墙的 5989 端口
# firewall-cmd --permanent --add-port 5989/tcp
设置 Selinux 为 permissive 模式
# setenforce 0
设置 pegasus 用户密码
# passwd pegasus
设置远程访问权限
修改配置文件
#vi /etc/Pegasus/access.conf
把下面一行;
ALL EXCEPT pegasus:wbemNetwork
修改为
ALL EXCEPT root pegasus:wbemNetwork
客户端设置首先安装 OpenLMI 脚本文件
# yum install 'openlmi-scripts*'
说明:目前 OpenLMI 脚本文件主要包括如下模块:
OpenLMI-account :用户帐户管理模块
OpenLMI-logicalfile: 文件和目录管理模块
OpenLMI-networking: 网络配置管理模块
OpenLMI-powermanagement: 电源管理模块
OpenLMI-service: 服务系统管理模块
OpenLMI-storage: 存储管理模块
OpenLMI-hardware: 硬件信息检索模块
OpenLMI-software : 软件管理模块
OpenLMI-journald : 系统日志管理模块
设置 ca
# scp root@ server1:/etc/Pegasus/server.pem /etc/pki/ca-trust/source/anchors/client2-cert.pem
# update-ca-trust extract
lmi 命令简介lmi 命令格式如下
lmi [options]
主要选项:
---hosts-file <hosts> 路径包含目标主机名的文件。 每个主机都必须列在一行
--user <user> 目标主机所使用的用户名
--same-credentials 所有主机使用一个认证文件
-n --noverify 不验证 SSL 证书
-v 屏幕显示输出信息
--trace 显示回溯上的错误
-c --config-file <config> 路径为用户配置文件
-h --host <host> 目标主机名称
--notrace 禁止显示回溯
--log-file <log_file> 输出日志文件
-N --no-headings 不打印表格标题
-L --lister-format (table | csv) 输出使用 table 或者 CSV 格式
说明:lmi 交互模式下支持如下子命令:
file : 文件系统等数据格式的管理
help :打印帮助信息
hwinfo : 显示收集的硬件信息。
system : 显示收集的系统信息。
sssd :sssd 系统服务管理功能。
selinux: selinux 管理。
group :用户组管理功能。
service : 系统服务管理。
storage: 基本的存储设备的信息。
sw : 系统软件管理。
net:网络服务管理
power :系统电源管理
user :用户管理
journald:系统日志
realmd: 管理 AD 或 Kerberos 域成员。
locale; 设置键盘布局、语言、时区、时间等功能。