> 前言: 本篇文章介绍了os-copilot在ECS上Alibaba Cloud Linux的安装、使用以及多项参数的功能测评。在评测之前,需要在服务器使用`rpm -q os-copilot`检查是否已安装,若未安装则用`yum install os-copilot`命令进行安装。接着,需要配置AccessKey ID、AccessKey Secret信息以连接阿里云服务。接着深入测试os不同的参数命令帮我们智能生成回答,可以快速提高运维的效率。
## 一、概念介绍:
"操作系统智能助手OS Copilot"是一个为操作系统提供智能化辅助功能的工具或服务,旨在通过自动化、智能化的手段来提升用户在操作系统层面的使用体验。可以提供以下功能:
1. 自动化任务执行:根据用户的习惯或预设规则,自动执行一些常规任务,如文件整理、系统清理等。
2. 智能推荐:基于用户的使用历史和偏好,推荐相关的应用、文件或设置选项。
3. 故障排查与修复:能够检测操作系统的异常情况,并提供修复建议或自动执行修复操作。
4. 系统优化建议:根据系统的当前状态和使用情况,提供性能优化、安全性增强等方面的建议。
5. 交互式支持:通过自然语言处理等技术,允许用户以更直观的方式与操作系统进行交互。
---
## 二、安装OS Copilot:
```js
rpm -q os-copilot
```
如果未安装,则运行如下命令安装OS Copilot。
```js
sudo yum install -y os-copilot
```
---
## 二、参数测试过程:
### 1. 体验 -t 参数功能。通过对比,感受 -t 带来的便利。
首先,不使用 -t,例如运行co 当前系统健康度,得出结果,将会由大模型判断是否使用agent模式。然后,使用 -t,例如运行co 当前系统健康度 -t,得出结果,直接指定进入agent模式,使得OS Copilot自动调用注册工具完成任务。
可以看到不带参数-t的话,只是给我们几个建议,需要我们自己衡量去执行,相当于给出方案,你来执行。
但是加上-t之后,我们发现co会进行自动思考,并且将思考的结果自动去执行,并且给出结果。
-t 指定进入agent模式,
再让co来思考一下本地环境有没有PHP的环境呢?让他来帮我检查一下,可以看到执行的几个步骤:
1. 先检查环境中是否有PHP环境
2. 检测到没有,然后,再建议通过什么命令来安装`yum install php`
3. 执行推荐的命令后,脚本就自动断了
思考点:
1. 这里可以推荐一下安装PHP的版本,如果我安装的是php5.x的版本呢?或者7.x某个固定的版本呢?
2. 执行一条命令后,脚本就结束了,可以接着进行思考,不然的话,还需要手工来执行,可以优化一下。
3. 另外,输出的信息,建议可以有一些参数来控制,不然,一些安装信息一大屏幕输出,对于上下文分析来说,说实话,对于我这个开发人员来说不是太建议,除非是特别专业的来看。
接下来安装完成PHP之后,可以用来检查是否可以运行PHP,我们可以看到测试的时候,需要创建一个test.php脚本,这里其实并没有给我们进行创建,当我执行命令时,提示文件不存在,然后命令就结束了,这时候,还需要我自己手工来创建test.php文件,再去自己测试,这些可以自动来创建,然后再执行测试命令,我觉得效果会更好一点。
再接下来,让他帮我们分析一下请求504的原因,可以看到给出了从网络到服务的一些建议,最后并帮我们安装了nginx。
1. 这里检查的web服务是nginx,但是有可能是node.js、java这些程序启动的web服务,不一定是nginx。
2. 这里nginx安装的时候,也可以推荐有版本的选择。
3. 另外,安装之后的nginx,并没有加到自启动中,还有就是没有加到环境变量中,下次session会话连接时,还不能直接用nginx -s reload来启动。
---
### 2. 体验 -f 参数功能。感受对复杂任务的助力。从文件中读取复杂任务进行处理。
例子如下:在task文件中定义好任务,然后运行命令co -f task -t,根据你的任务要求完成执行。
任务描述中可以看到分析当前的report.json文件,但是发现执行的时候,发现说无法回答该问题,反馈给管理员。
修改一下task文案描述,这次可以看到有思考了,不过,貌似没有找到report.json这个文件,而是要读一个example.json文件呢?另外,读取失败了,默认读一个example.json的文件,然后会写一个python_json.py处理文件,并且将处理的结果写入到test.txt,但是结果不是我想要的。
---
### 3. 体验 | 参数功能。感受如何一步到位解释参数。使用管道,简化解释参数的步骤。
例如运行cat/etc/sysctl.conf|co 解释下这些参数的含义。
通过-t命令我们查询一下php的配置文件是什么?告诉我php的配置文件在/etc/php.ini这里,使用|管道符发现报以下错误,重新设置key也没用作用,但是使用官方提供例子就没有问题,应该不是key的原因。
```js
Error: LLM connection timeout.
Please recheck the value of your AK configuration (i.e., ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET).
If try-again won't fix the problem, please join the DingTalk Group [71050008820] and get the support.
Unclosed connector
connections: ['[(<aiohttp.client_proto.ResponseHandler object at 0x7f9a4c8f4580>, 7010.763648657)]']
connector: <aiohttp.connector.TCPConnector object at 0x7f9a4c8c3ac0>
```
## 三、总结:
我是一位开发管理者,我平时工作会负责ECS、RDS测试与生产环境的的运维和管理工作,并不是专业的运维。
做为技术开发的管理者,公司没有专业的微运维团队,经常需要维护线上的服务器管理工作,通过在当前Linux环境安装并使用阿里云推出的操作系统智能助手os-copilot,可以通过大模型技术,支持自然语言问答、命令执行和系统运维调优等功能,用户可以简化复杂命令的操作,帮助用户更高效地维护Linux系统。
1. 对话功能模式,可以像问答式来回答一些问题,但是主动思考任务性不强,可以通过参数来完善。
2. -t参数可以像人一样去思考并且完成尝试着去完成任务,一些简单的基础工作可以用它来完成。
3. -f总结:可以做一些更加复杂任务,比如常常需要使用到awk命令来查询一些日志的信息,需要记很多命令,这里就由AI来完成即可。
4. 使用匿名管道的方式,把命令的结果,提供给co命令去解释,有些配置文件就不需要再去记忆了。
使用os-copilot的优势:
1. 可以降低服务器运维的门槛,通过自然语言描述,来帮助更多的后端、前端、测试等非专业人员来维护服务器。
2. 早期会有大量的shell脚本命令需要自己来写,而且还需要学习shell编程知识,利用os-copilot可以AI帮我们写脚本配置文件,非常的方便,只需要稍微改改,即可使用起来。
3. 大多数运维的问题能够帮我们进行处理。
使用过程遇到的问题点及优化点:
1. 安装软件时,建议附带一些版本号。
2. 在使用-f时会发生报错,通知管理员(上面有描述),另外,有时候也会报key的错误(暂时不知道什么问题)。
3. 在读取文件时,指定了文件名称,也没有读到,可能需要再完善一下。
4. 有时在安装软件完成后,对话就结束了,需要手动来执行。