Linux 系统运维工具 OpenLMI

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 的结构示意图

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 组成结构

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; 设置键盘布局、语言、时区、时间等功能。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/59619a33467ad9c610e5aee94e5128b6.html