当前位置: 首页 > news >正文

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&#xff08;全称 Open Linux Management Infrastructure&#xff09;即开放式的 Linux 管理基础架构。OpenLMI 是一个开源项目&#xff0c;用于管理 Linux 系统管理的通用基础架构。它建立在现有工具基础上&#xff0c;充当抽象层&#xff0c;以便向系统管理…...

8天长假快来了,Python分析【去哪儿旅游攻略】数据,制作可视化图表

目录 前言环境使用模块使用数据来源分析 代码实现导入模块请求数据解析保存 数据可视化导入模块、数据年份分布情况月份分布情况出行时间情况费用分布情况人员分布情况 前言 2023年的中秋节和国庆节即将来临&#xff0c;好消息是&#xff0c;它们将连休8天&#xff01;这个长假…...

【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彩色图标 大家好&#xff0c;今天我们来学习一下uni-app中使用iconfont彩色图标&#xff0c;好好看&#xff0c;好好学&#xff0c;超详细的 第一步 首先&#xff0c;从iconfont官网&#xff08;iconfont-阿里巴巴矢量图标库&#xff09;选择自己需要的图…...

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的图标&#xff0c;所以记录一下这个过程 1、iconfont-阿里巴巴矢量图标库 这个注册一个账号&#xff0c;以便后续使用下载代码时需要 2、寻找自己需要的图标 我主要是找两个图标 &#xff0c;一个加号&#xff0c;一个减号&#xff0c;分别加入到…...

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()函数的语法&#xff1a; DATE_SUB(start_date,INTERVAL expr unit); DATE_SUB()函数接受两个参数&#xff1a; start_date是DATE或DATETIME的起始值。 expr是一个字符串&#xff0c;用于确…...

OpenCV最常用的50个函数

Python版&#xff1a;OpenCV提供了众多图像处理算子和函数&#xff0c;涵盖了各种任务和技术。以下是OpenCV中一些常用的50个算子和函数&#xff1a; cv2.imread&#xff1a;用于读取图像文件。cv2.imshow&#xff1a;用于显示图像。cv2.imwrite&#xff1a;用于保存图像。cv2…...

Android AGP8.1.0组件化初探

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

文件修改时间能改吗?怎么改?

文件修改时间能改吗&#xff1f;怎么改&#xff1f;修改时间是每个电脑文件具备的一个属性&#xff0c;它代表了这个电脑文件最后一次的修改时间&#xff0c;是电脑系统自动赋予文件的&#xff0c;相信大家都应该知道。我们右击鼠标某个文件&#xff0c;然后点击弹出菜单里面的…...

2023年下半年软考报名注意事项!

考试注意事项&#xff1a; 分数线&#xff1a;所有科目成绩全部在45分以上&#xff08;含45分&#xff09;通过考试&#xff1b;三科目的话&#xff0c;必须每科目都及格才算通过考试&#xff0c;只有一个不合格的&#xff0c;本次考试其他两个无效。 出成绩时间&#xff1a;预…...

【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 //端口号&#xff0c;范围1024~49151 #define IP "192.168.11…...

【Java架构-版本控制】-Git基础

本文摘要 Git作为版本控制工具&#xff0c;使用非常广泛&#xff0c;在此咱们由浅入深&#xff0c;分三篇文章&#xff08;Git基础、Git进阶、Gitlab搭那家&#xff09;来深入学习Git 文章目录 本文摘要1.Git仓库基本概念1.1 远程仓库(Remote)1.2 本地库(Repository) 2. Git仓库…...

ubuntu 挂载硬盘操作

1. 查看磁盘 sudo fdisk -l 2. 查看UUID sudo blkid记录下待挂载硬盘的UUID, 后面要使用 ps. 如果报错&#xff0c;检查是否已格式化硬盘 查看新硬盘的盘符&#xff0c;我的是/dev/sda&#xff0c;用下述命令格式化 sudo mkfs -t ext4 /dev/sda3. 创建挂载点 我的是在/mnt…...

关于商品活动的H5页面技术总结

背景 在单个html文件里面使用vue3、jquery等其他第三方js库&#xff0c;实现规定的页面效果&#xff0c;其中主要功能是从商品json数据中读取数据&#xff0c;然后可以通过搜索框、下拉框、左侧菜单来筛选商户信息。 页面布局 技术要点&#xff1a; 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之后&#xff0c;我们可以在LogCat通过TAG过滤出NDK打印的日志 #define TAG "BitmapOperationNative" // 定义…...

测试理论与方法----测试流程的第四个步骤:执行测试,提出缺陷

8、执行测试—–>提交缺陷报告 测试流程&#xff1a;执行测试—–>提交缺陷报告 1、缺陷的概述&#xff08;回顾&#xff09; 结果角度&#xff1a;实际结果和预期结果不一致 需求角度&#xff1a;所有不满足需求或超出需求的&#xff0c;都是缺陷 2、缺陷的相关属性…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...