Linux 系统运维工具之 OpenLMI
一、前要
OpenLMI(全称 Open Linux Management Infrastructure)即开放式的 Linux 管理基础架构。OpenLMI 是一个开源项目,用于管理 Linux 系统管理的通用基础架构。它建立在现有工具基础上,充当抽象层,以便向系统管理员隐藏基础系统的大部分复杂性。OpenLMI 分发有一组服务,这些服务可通过本地或远程访问并提供多种语言绑定、标准 API 和标准脚本接口,这些接口可用于管理和监控硬件、操作系统和系统服务,OpenLMI 旨在提高使用 WBEM 标准的 Linux 系统管理,为管理 Linux 系统提供常用的基础设施。它还可让用户配置、管理并监控硬件、操作系统及系统服务,可帮助用户快速大量的部署系统存储、软件包安装删除、网络管理等工作。对此,我们来整理 OpenLMI 的部署过程和使用方法,供相关同学参考。
OpenLMI 可让用户执行以下操作:
配置、管理和监控服务器及虚拟机运行情况;
配置、管理和监控本地或者远程操作系统;
配置、管理及监控本地或者远程的存储和网络;
使用 C/C++、Python、Java 或者命令行界面调用系统管理。
Fedora 是 目前OpenLMI 的主要开发平台。从 Fedora 18 这个版本开始支持,推荐使用 Fedora 21 及其之后的版本,它们可以提供所有功能组件。RHEL 和 CentOS,从版本 7 开始支持,centos6下是无法安装openlmi的,这两个发行版本可提供大部分功能组件。注意,用户需要通过 epel 软件源安装 openlmi 软件包。SuSE Linux 从版本 12 开始支持,可以提供一部分功能组件。Debian 和 Ubuntu 这两个发行版本待定。
资源参考:OpenLMI;openlmi-pcp;Python openlmi;fedoraproject
二、软件介绍
1)产品简介
OpenLMI 是一个 Linux 平台的服务配置管理和应用部署工具,功能类似于目前业界的配置管理工具 Chef,Puppet,Saltstack。OpenLMI 旨在为在物理机和虚拟机上运行红帽企业 Linux 系统的生产服务器提供一个通用管理接口。OpenLMI 的主要功能包括管理存储设备、网络、系统服务、用户帐户、硬件和软件配置、电源管理和 Active Directory 的交互。OpenLMI 里面提供了一整套的代理程序包括:控制器、客户端程序与命令行工具码,即以下三个组件组成:
系统管理代理: 这些代理安装在受管系统上,即需要监控的服务器上。用来查询,修改和监控系统运行情况。代理程序可安装在那些需要控管的服务器或虚拟机上,然后再由 OpenLMI 控制器来管理这些代理程序,并提供相关接口,系统管理代理通常称为通用信息模型提供商( LMI Providers )或 CIM 提供商(CIM Providers)。
标准对象代理(OpenLMI object broker): 它负责管理代理并为其提供接口。标准对象代理也称为 CIM 对象监控器或 CIMOM。
客户端应用程序和脚本:客户端应用程序和脚本通过标准对象代理调用系统管理代理,它使用 https 连接的 XML 技术,这也是OpenLMI 被认为是安全性,因为它使用 TLS(HTTPS)进行加密通信。其中,LMIshell是一个客户端客户端程序,主要包括组命令行工具和 lmi 交互命令,其他语言的脚本工具,它的作用是通过 OpenLMI object broker 來调用 LMI Providers。这个客户端通过使用 WBEM + HTTPS 协议访问 CIMOM。
2)受管系统安装配置
受管系统即你想要使用 OpenLMI 客户端工具监控和管理的系统,OpenLMI 提供了一系列 RPM 软件包进行发布,其中包括 CIMOM、各个 CIM 提供程序和客户端应用,我们在受管系统部署安装OpenLMI,过程会用到TCP 5989 (wbem-https):
#安装软件包
yum install openlmi -y
或
yum install tog-pegasus -y #安装 OpenPegasus CIMOM 及其系统的所有依赖项,并为 peg asus 用户创建一个用户帐户。
yum install openlmi-{storage,networking,service,account,powermanagement} #安装用于存储、网络、服务、帐户和电源管理的 CIM 提供程序#打开防火墙的 5989 端口firewall-cmd --permanent --add-port 5989/tcp
iptables -I INPUT 1 -p tcp --dport 5989 -j ACCEPT#设置 Selinux 为 permissive 模式setenforce 0#设置 pegasus 用户密码passwd pegasus #默认情况下,只有 pegasus 用户才能远程和本地访问 CIMOM#设置远程访问权限,自定义被允许连接到 OpenPegasus CIMOM 的用户列表,修改配置文件vim /etc/Pegasus/access.conf #修改把下面一行;#ALL EXCEPT pegasus:wbemNetwork //修改为ALL EXCEPT root pegasus:wbemNetwork#启动服务
systemctl start tog-pegasus #启动tog-pegasus.service服务来启动 OpenPegasus CIMOM
systemctl enable tog-pegasus
3)客户端配置
客户端访问CIMOM,过程中OpenLMI 使用基于 Web 的企业管理(WBEM)协议,该协议通过 HTTP 传输层运行。标准 HTTP 基本身份验证在此协议中执行,这意味着用户名和密码与请求一起传输。因此,需要将 OpenPegasus CIMOM 配置为使用 HTTPS 进行通信,以确保安全的身份验证。受管系统上需要一个安全套接字层(SSL)或传输层安全(TLS)证书来建立加密频道。
yum install openlmi-tools #交互式安装LMIShell,用于访问 OpenPegasus 提供的 CIM 对象,以及它对系统的所有依赖项yum install 'openlmi-scripts*'#说明:目前 OpenLMI 脚本文件主要包括如下模块:OpenLMI-account :用户帐户管理模块OpenLMI-logicalfile: 文件和目录管理模块OpenLMI-networking: 网络配置管理模块OpenLMI-powermanagement: 电源管理模块OpenLMI-service: 服务系统管理模块OpenLMI-storage: 存储管理模块OpenLMI-hardware: 硬件信息检索模块OpenLMI-software : 软件管理模块OpenLMI-journald : 系统日志管理模块#设置 cascp root@ server1:/etc/Pegasus/server.pem /etc/pki/ca-trust/source/anchors/client2-cert.pemupdate-ca-trust extractsystemctl restart tog-pegasus.service
4)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; 设置键盘布局、语言、时区、时间等功能。
说明 : 不同的 Linux 发行版本支持的子命令数量有差异,其中数量最多功能最全的是 Fedora 21。用户在终端下输入 lmi 进入交互环境,然后输入“?”或者 help 命令可以得到子命令列表和其他帮助。
5)命令使用
1、查看主机硬件配置
要查看主机硬件情况,对于本地主机使用交互模式,在 lmi> 提示符下输入 hwinfo 子命令即可
hwinfo system :获取主机名称。hwinfo motherboard:获取主板信息。hwinfo cpu:获取 CPU 信息。hwinfo memory:获取内存信息。hwinfo [all] :获取所有信息。hwinfo pci:获取 pci 插槽信息。hwinfo disks: 获取磁盘信息。
2、查看软件: lmi> system
收集内容包括:操作系统版本信息,防火墙配置,网络接口信息、内核版本、时区、SElinux 状态、日志系统、系统语言等。下面是一个例子,清单 2 就是操作过程和输出界面。
lmi 的 service 子命令可以用来查看、启动、停止、重新启动本地和远程服务。下面是两个例子。 查看运程主机服务运行情况,使用如下命令:lmi> service show httpd.serviceName=httpdCaption=The Apache HTTP ServerEnabled=NoStatus=Running停止一个本地服务,使用如下命令:lmi> service stop sshd.service说明:service 命令其他主要参数包括:list 打印所有服务列表show 显示服务运行情况start 启动一个服务stop 停止一个服务restart 重新启动一个服务reload 重新加载一个服务配置lmi> sw show pkg php #查看一个软件包详情lmi> sw install httpd #安装一个软件包lmi> sw update nmap # 升级一个软件包lmi> sw remove nmap #删除一个软件包
3、查看存储:lmi>storage list
lmi> storage tree #树形结构显示存储设备列表
lmi> storage show /dev/disk/by-id/ata-VBOX_HARDDISK_VB289545a2-5d00c206-part1 #查看具体某个存储详情
4、查看网络
lmi>net device list#设置网络接口新的 ip 地址lmi> net address replace enp0s3 192.168.0.130 24#激活一个网络接口lmi> net activate enp0s3#设置 dns 服务器 ip 地址lmi> net dns add enp0s3 192.168.0.1
5、用户管理
#查看用户lmi> user list#查看已经存在的用户组列表lmi>group list#添加一个用户lmi> user create myql#查看已经某用户详情列表lmi> user show myq1#删除一个用户lmi> user delete myq1
6)直接命令模式
除了交互模式外。还可以使用直接命令模式,这种直接模式的执行速度更快:
lmi -h managedsystem.mydomain.org service list – all #显示所有的服务列表lmi -h managedsystem.mydomain.org storage raid create 5 /dev/sdb /dev/sdd /dev/sde # 设置远程主机上的 raid 存储
相关文章:

Linux 系统运维工具之 OpenLMI
一、前要 OpenLMI(全称 Open Linux Management Infrastructure)即开放式的 Linux 管理基础架构。OpenLMI 是一个开源项目,用于管理 Linux 系统管理的通用基础架构。它建立在现有工具基础上,充当抽象层,以便向系统管理…...

8天长假快来了,Python分析【去哪儿旅游攻略】数据,制作可视化图表
目录 前言环境使用模块使用数据来源分析 代码实现导入模块请求数据解析保存 数据可视化导入模块、数据年份分布情况月份分布情况出行时间情况费用分布情况人员分布情况 前言 2023年的中秋节和国庆节即将来临,好消息是,它们将连休8天!这个长假…...

【HSPCIE仿真】输入网表文件(5)基本仿真输出
仿真输出 1. 概述1.1 输出变量1.2 输出分析类型 2. 显示仿真结果2.1 .print语句基本语法示例 2.2 .probe 语句基本语法示例 2.3 子电路的输出2.4 打印控制选项.option probe.option post.option list.option ingold 2.5 .model_info打印模型参数 3. 仿真输出参数的选择3.1 直流…...

uni-app中使用iconfont彩色图标
uni-app中使用iconfont彩色图标 大家好,今天我们来学习一下uni-app中使用iconfont彩色图标,好好看,好好学,超详细的 第一步 首先,从iconfont官网(iconfont-阿里巴巴矢量图标库)选择自己需要的图…...

Hystrix: Dashboard流监控
接上两张服务熔断 开始搭建Dashboard流监控 pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocat…...

iconfont 图标在vue里的使用
刚好项目需要使用一个iconfont的图标,所以记录一下这个过程 1、iconfont-阿里巴巴矢量图标库 这个注册一个账号,以便后续使用下载代码时需要 2、寻找自己需要的图标 我主要是找两个图标 ,一个加号,一个减号,分别加入到…...

QT登陆注册界面练习
一、界面展示 二、主要功能界面代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QMainWindow(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setFixedSize(540,410); //设置固定尺寸th…...

MySQL DATE_SUB的实践
函数简介DATE_SUB()函数从DATE或DATETIME值中减去时间值(或间隔)。 下面说明了DATE_SUB()函数的语法: DATE_SUB(start_date,INTERVAL expr unit); DATE_SUB()函数接受两个参数: start_date是DATE或DATETIME的起始值。 expr是一个字符串,用于确…...
OpenCV最常用的50个函数
Python版:OpenCV提供了众多图像处理算子和函数,涵盖了各种任务和技术。以下是OpenCV中一些常用的50个算子和函数: cv2.imread:用于读取图像文件。cv2.imshow:用于显示图像。cv2.imwrite:用于保存图像。cv2…...

Android AGP8.1.0组件化初探
Android AGP8.1.0组件化初探 前言: 前面两篇完成了从AGP4.2到 AGP8.1.0的升级,本文是由于有哥们留言说在AGP8.0中使用ARouter组件化有问题,于是趁休息时间尝试了一下,写了几个demo,发现都没有问题,跳转和传…...

文件修改时间能改吗?怎么改?
文件修改时间能改吗?怎么改?修改时间是每个电脑文件具备的一个属性,它代表了这个电脑文件最后一次的修改时间,是电脑系统自动赋予文件的,相信大家都应该知道。我们右击鼠标某个文件,然后点击弹出菜单里面的…...
2023年下半年软考报名注意事项!
考试注意事项: 分数线:所有科目成绩全部在45分以上(含45分)通过考试;三科目的话,必须每科目都及格才算通过考试,只有一个不合格的,本次考试其他两个无效。 出成绩时间:预…...

【LeetCode每日一题】——274.H指数
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 排序 二【题目难度】 中等 三【题目编号】 274.H指数 四【题目描述】 给你一个整数数组 ci…...

网络编程 day 4
1、多进程并发服务器根据流程图重新编写 #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr, "__%d__:", __LINE__); \perror(msg);\ }while(0)#define PORT 8888 //端口号,范围1024~49151 #define IP "192.168.11…...

【Java架构-版本控制】-Git基础
本文摘要 Git作为版本控制工具,使用非常广泛,在此咱们由浅入深,分三篇文章(Git基础、Git进阶、Gitlab搭那家)来深入学习Git 文章目录 本文摘要1.Git仓库基本概念1.1 远程仓库(Remote)1.2 本地库(Repository) 2. Git仓库…...
ubuntu 挂载硬盘操作
1. 查看磁盘 sudo fdisk -l 2. 查看UUID sudo blkid记录下待挂载硬盘的UUID, 后面要使用 ps. 如果报错,检查是否已格式化硬盘 查看新硬盘的盘符,我的是/dev/sda,用下述命令格式化 sudo mkfs -t ext4 /dev/sda3. 创建挂载点 我的是在/mnt…...

关于商品活动的H5页面技术总结
背景 在单个html文件里面使用vue3、jquery等其他第三方js库,实现规定的页面效果,其中主要功能是从商品json数据中读取数据,然后可以通过搜索框、下拉框、左侧菜单来筛选商户信息。 页面布局 技术要点: 1、通过路由来进行页面布…...

前端:横向滚动条,拖动进行左右滚动(含隐藏滚动条)
效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…...
Android JNI Bitmap指定颜色值替换
#include <jni.h> #include <string> #include <android/bitmap.h> #include <cmath> #include <android/log.h> //定义TAG之后,我们可以在LogCat通过TAG过滤出NDK打印的日志 #define TAG "BitmapOperationNative" // 定义…...

测试理论与方法----测试流程的第四个步骤:执行测试,提出缺陷
8、执行测试—–>提交缺陷报告 测试流程:执行测试—–>提交缺陷报告 1、缺陷的概述(回顾) 结果角度:实际结果和预期结果不一致 需求角度:所有不满足需求或超出需求的,都是缺陷 2、缺陷的相关属性…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...

基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...