扔掉 MacBook,挑战带OrangePi出差!

  

背景

由于工作需要,博主经常会到各大企业的自建机房中私有化部署公司的软件产品。

在某些企业自建机房中,有时给到全新的机器,没有基础环境,甚至有的还无法互联网,而且因为近几年CentOS的停止更新,服务器也会出现Ubuntu或一些国产系统。架构除了x86还有arm,基础组件安装配置工作繁琐。

为了简化各基础组件、通用配置的安装适配。我编写了一个开源项目Gitee auto-install使用ansible将常用功能封装成模块,还额外支持了command命令,通过命令行的方式离线安装配置常用的模块,例如yum源、防火墙、Docker、中间件等工具。目前项目支持的模块,其他的还在持续更新中:

Status

Module

Description

Link

CentOS x86 Support

CentOS ARM Support

Ubuntu x86 Support

Ubuntu ARM Support

change-hosts

修改hosts文件

README

config-repo

配置包管理工具源

README

 

 

disable-selinux

禁用SELinux模块

README

  

distribute-file

分发文件到远程主机

README

download-file

从远程主机获取文件

README

firewall-whitelist

防火墙白名单互信

README

 

install-apisix

安装Apisix

README

    

install-chrony

安装chrony

README

 

 

install-common-tools

安装其他常见模块

README

install-docker

安装Docker

README

 

install-firewalld

安装防火墙firewalld

README

 

install-harbor

安装harbor

README

    

install-httpd

安装httpd

README

  

install-jdk8

安装jdk8

README

  
 

install-grafana

安装Grafana

README

    
 

install-prometheus

安装prometheus

README

    

install-mydumper

安装MyDumper数据备份工具

README

   
 

install-mysql5.7

安装MySQL5.7数据库

README

    
 

install-nacos

安装Nacos

README

    
 

install-nextcloud

安装NextCloud

README

    
 

install-nfs

安装文件服务

README

    

install-nginx

安装Nginx

README

 

install-redis

安装Reids数据库

README

    

install-repo-manager

安装自建包管理工具源

README

 

 
 

optimize-connect-num

优化连接数

README

    

sync-time

修改时区并与时间服务器校准时间

README

  
 

update-kernel

升级内核

README

    

由于工程实施要求不多,只需要完成特定任务即可,所以挑战一下只带一款便携的主机出差完成这些工作。

选材

大学时买的树莓派3B,小巧可爱,深得我心。可以看到也就鼠标大小。出差随身携带相当方便。由于是许多年前的产品,它的配置有些落后,百兆网口、USB2.0,虽然仍然可以满足需求,但是由于服务部署时会用到网口传输安装包,所以想升级一下设备,可以让我更早的“收工”。

最近因产量问题,树莓派成了理财产品,现在树莓派3代竟然还能卖到七年前的价。转眼看一下国产派,也是百花齐放。最后看了一下搭载华为昇腾芯片的OrangePi AIpro,算力较强后续还可以用来跑一下YOLO和大模型,接口较多后面闲置了用来做一个家庭nas也不错。

  • CPU与AI算力:4核64位处理器+AI处理器,集成图形处理器,支持8TOPS AI算力
  • 内存和存储:拥有8GB/16GB LPDDR4X,32MB SPI FLASH,eMMC5.1 HS400可以外接32GB/64GB/128GB/256GB eMMC模块,支持SATA/NVMe SSD 2280的M.2插槽、TF插槽。
  • 网络和蓝牙:Wi-Fi 5双频2.4G和5G,10/100/1000Mbps以太网,BT4.2/BLE
  • 丰富的接口:包括两个HDMI输出支持双4K高清输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口
  • 操作系统支持:OrangePi AIpro支持Ubuntu、openEuler操作系统
  • 应用场景:可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业
  • 配套开发工具:提供 MindStudio 全流程开发工具链,以及一键镜像烧录工具和模型适配工具,方便开发者快速上手和使用。

这是和树莓派3B的大小对比

官方的金属外壳B格非常高,外壳质感是相当的好,这到公司必然是最靓的仔,B格拉满。

OrangePi AIpro环境配置

系统烧录可以参考官方文档。官方目前支持两种操作系统,Ubuntu与OpenEuler这里选择的是Ubuntu系统。

自动化项目使用了Python与ansible,我们首先准备基础环境,用apt来安装即可。

# 安装Python与ansible,sshpass
sudo apt install python3 ansible sshpass

安装完成可以查看一下工具版本。

>$ python3 --version
Python 3.9.2>$ ansible --version
ansible [core 2.15.12]config file = Noneconfigured module search path = ['/home/HwHiAiUser/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/local/miniconda3/lib/python3.9/site-packages/ansibleansible collection location = /home/HwHiAiUser/.ansible/collections:/usr/share/ansible/collectionsexecutable location = /usr/local/miniconda3/bin/ansiblepython version = 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:26) [GCC 9.3.0] (/usr/local/miniconda3/bin/python3)jinja version = 3.1.3libyaml = True

然后我们下载自动化项目的代码

# 安装git与lfs插件
sudo apt install -y git git-lfs

本地安装好git和git-lfs之后,将自动化项目克隆下载下来。网速快的一会儿就下载完成了。如果缺少离线包可以使用 git lfs pull 来拉取

下载完成后可以cd到项目目录中。该项目目录下提供一个命令行工具command.py。我们输入help来查看一下如何使用。

可以看到项目支持许多的模块,这样OrangePi AIpro的环境就算准备完毕了。

演练测试

演练环境准备

首先我们模拟自建机房的环境,在本地准备两台虚拟机,一台CentOS一台Ubuntu,虚拟机系统可以选择最小化mini安装。网络模式可以选择桥接,方便远程。也可以将路由器的入网网线拔掉模拟没有互联网的情况,保证OrangePi AIpro与虚拟机在同一个子网内即可。

安装好后登录虚拟机输入ip addr命令查看分配的IP,我这里是

  • Ubuntu
    • 192.168.6.193
    • ehl/ehl1234
  • CentOS
    • 192.168.6.183
    • root/ehl1234

试炼

到达现场后,首先给OrangePi AIpro接电,接上网线,开机。关于只带主机怎么操作这件事。我有以下几种方案

  • WiFi:也可以利用wlan与eth双网卡,wlan连接手机,eth连接网线,使用网线与其他服务器连接,可以利用手机终端工具ssh远程盒子。
  • 串口:安卓手机有串口调试工具,OrangePi AIpro支持串口调试,手机可以用otg线来连接。
  • 串口:网上有蓝牙转串口调试工具。在用手机对接。
  • 屏:使用MIPI屏或者HDMI便携屏
  • 借:机房一般有显示器键盘,接上就能用。
  • 借:因为要给客户部署后演示效果,客户也会提供要演示的机器。

能连上OrangePi AIpro的终端就简单多了,我们到AutomateSphere项目工程目录下,有一个inventory.yml文件,这个文件是我们要管理的服务器资产清单,在这个文件中维护服务器的IP、账号、密码。根据我们准备的环境,我们可以随便创建一个测试分组名为 test-group-server,下面有两台主机,分别命名为 test-server-centos 与 test-server-ubuntu,并将详细信息维护进去。配置如下:

test-group-server:hosts:test-server-centos:ansible_host: 192.168.6.183ansible_password: "ehl1234"test-server-ubuntu:ansible_host: 192.168.6.193ansible_user: ehlansible_password: "ehl1234"ansible_sudo_pass: "ehl1234"

我们可以使用ansible命令来查看与其他服务器的网络是否联通。返回SUCCESS说明网络都是可以联通的。

可以验证一下机器中是没有相关环境的。docker用docker --version命令可以查看是否安装了,jdk可以用 java -version,下图这个结果说明都没有安装过。


jdk安装

我们利用command来查看如何使用Java安装模块。

命令后面可以跟着资产清单中的组名或机器名,我们给测试组的两台机器都安装上jdk8,输入这条命令python command.py install-jdk8 test-group-server 等待即可。

可以看到整个过程,我来依次解读一下。

  • 其中Gathering Facts是在收集每台机器的基本信息,操作系统与系统架构。为后续选择安装包做准备。
  • 然后create java dir是在创建存放Java工具的目录。
  • copy jdk.tar.gz to remote server 是在将jdk工具包拷贝到远程主机上。
  • 紧接着 unarchive jdk.tar.gz to /opt/java on remote server 将远程主机上的压缩包文件解压到目录中。
  • change java Runtime Environment 即创建Java_home 等环境变量。
  • restart shell 即重新加载环境变量,令命令生效。

我们可以分别登录两台测试主机,可以验证jdk已经安装好啦。

docker安装

还是一样的,可以通过项目提供的command的help来查看install-docker模块该如何使用。python command.py install-docker --help

可以看到我们可以通过--DOCKER_DATA_ROOT_DIR来指定Docker存储目录,可以选择将镜像存放到一个较大的磁盘路径中。这里我们先默认,只演示安装过程。

我们演示一下只安装到centos机器,该如何操作。命令后面选择资产清单中的机器名即可,输入这条命令python command.py install-jdk8 test-server-centos 等待即可。

可以看到,使用docker --version命令验证,只有CentOS机器安装好了Docker模块。

其他模块规划

其他模块安装同理,一条命令即可完成安装操作。具体内部项目如何部署安装暂不给大家演示啦。也是类似操作,大同小异。此项目开源部分计划支持大部分常见的模块,目前还在更新中,有兴趣的小伙伴也可以关注一下。

该项目的用户接口用的是命令行的方式,实现较为简单,其实还是利用命令来调用ansible。核心模块其实已经实现好了,如果后面能将工具继续集成化,使用前端框架来搭建web服务的方式,将会再降低项目部署门槛。其他技支同事可以带着这个小东西,如果能达到插上点点屏幕就能将应用一键部署,将会大大节省公司人力成本。

总结

OrangePi AIpro使用下来风扇比较静音,也没有发热发烫的情况,这个重量揣到口袋也是相当无感,这硬件性能再加上亲民的价格真的爱了。装上金属外壳质感相当棒,把工作用到的部署工具装进去,即使在街上溜达也随时都能到客户现场完成工作呢! ( 手动狗头doge...

这块板子当做随身主机确实是屈才了,还有许多可玩的场景,官方也提供了许多入门资料。

例如系统内置了Jupyter lib可以验证样例。在《用户手册》中有详细说明,大家也可以方便的体验机器学习的魅力,没准会因此选择入门ML。

  • 运行目标检测样例
  • 运行文字识别样例
  • 运行目标分类样例
  • 运行图像曝光增强样例
  • 运行卡通图像生成样例
  • 运行蛋白质分类评估样例
  • 运行细胞图像分割样例
  • 运行人像分割与背景替换样例
  • 运行语音识别样例

昇腾论坛上有教程导航大家可以去寻找自己喜欢的专题,在bilibili还有官方up上传的教学视频,降低学习门槛。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Linux的权限_2 + Linux环境基础开发工具_1

文章目录 三、权限3. Linux权限管理修改文件的拥有者和所属组 4. 文件的类型5. 权限掩码 四、Linux环境基础开发工具1. yumyum 工具的使用 未完待续 三、权限 3. Linux权限管理 修改文件的拥有者和所属组 在上一节我们讲到如何更改文件的访问权限,那我们需要更改…

光伏智慧化运营解决方案的应用和价值

在社会对新能源需求的不断扩大,光伏已经成为了可再生能源的重要组成部分,随着光伏电站数量和规模的不断扩大,相关企业和用户都就开始关注如何能够高效精准的进行电站管理,对此,鹧鸪云提出了光伏智慧化运营解决方案&…

【官方指南】3ds Max中纹理贴图问题及正确解决方案

在使用3ds Max进行设计和制作时,纹理贴图是一个非常重要的环节。然而,许多用户在使用过程中常会遇到各种纹理贴图问题。为此,Autodesk官方提供了一些有效的解决方案,可以解决90%的纹理贴图难题。这里小编都帮大家整理好了&#xf…

简化跨网文件传输摆渡过程,降低IT人员工作量

在当今数字化时代,IT企业面临着日益增长的数据交换需求。随着网络安全威胁的不断演变,网关隔离成为了保护企业内部网络不受外部威胁的重要手段。然而,隔离的同时,企业也需要在不同网络间安全、高效地传输文件,这就催生…

线性回归计算举例

使用正规方程计算(一元线性回归) import numpy as np import matplotlib.pyplot as plt # 转化成矩阵 X np.linspace(0, 10, num 30).reshape(-1, 1) # 斜率和截距,随机生成 w np.random.randint(1, 5, size 1) b np.random.randint(1,…

Qt项目使用pato mqtt C

一,下载pato mqtt C 源码 git 地址:https://github.com/eclipse/paho.mqtt.c.git git 地址可能下载不下来,提供我的gitee地址 gitee地址:https://gitee.com/chaojidahuaidan2021/paho.mqtt.c.git 二,编译共享库 clone下来后,将项目导入到Qt工程中,此时这是一个cmke工程…

三十一、openlayers官网示例Draw Features解析——在地图上自定义绘制点、线、多边形、圆形并获取图形数据

官网demo地址: Draw Features 先初始化地图,准备一个空的矢量图层,用于显示绘制的图形。 initLayers() {const raster new TileLayer({source: new XYZ({url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/…

Kubernetes和Docker对不同OS和CPU架构的适配关系

Docker Docker官网对操作系统和CPU架构的适配关系图 对于其他发行版本,Docker官方表示没有测试或验证在相应衍生发行版本上的安装,并建议针对例如Debian、Ubuntu等衍生发行版本上使用官方的对应版本。 Kubernetes X86-64 ARM64 Debian系 √ √ Re…

贪心算法[1]

首先用最最最经典的部分背包问题来引入贪心的思想。 由题意可知我们需要挑选出价值最大的物品放入背包&#xff0c;价值即单位价值。 我们需要计算出每一堆金币中单位价值。金币的属性涉及两个特征&#xff0c;重量和价值。 所以我们使用结构体。 上代码。 #include <i…

【debug】windows11安装WSL+Docker+本地部署cvcat

windows系统安装wsl虚拟机 首先观察是否已启用虚拟化&#xff1a; 在windows应用商店下载wsl 下载好后打开&#xff0c;创建用户名和密码&#xff0c;即可使用&#xff1a; 换源&#xff1a;ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirr…

LeetCode215数组中第K个最大元素

题目描述 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 解析 快速排序的思想&#xff…

C++:vector的介绍及使用

✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来! 文章目录 文章目录 前言 一、vector的介绍 二、vector的使用 2.1.构造和赋值重载&#xff08;Member functions&#xff09; 2.2 vector iterator 的使用 2.3 vector 空间增长问题 2.4 vector 增删查改 三 sort 四 v…

所以研究生有不变胖的吗?

天天吃 记得和骏骏一样减肥 分享昨天无人机拍的照片

FL Studio v21.2.3.4004中文破解版百度网盘下载

FL Studio v21.2.3.4004中文破解版是一款完整的软件音乐制作环境或数字音频工作站 (DAW)。代表了超过 18 年的创新发展&#xff0c;它在一个软件包中提供了您创作、编曲、录制、编辑、混音和掌握专业品质音乐所需的一切。FL Studio v21.2.3.4004中文破解版现在是世界上最受欢迎…

长三角智能科技高端盛会—南京人工智能展览会(南京智博会)

南京&#xff0c;作为一座历史悠久的文化名城&#xff0c;早已不仅仅以其深厚的文化底蕴和独特的自然风貌著称于世。而今&#xff0c;这座古老而又年轻的城市&#xff0c;正以其卓越的科技实力和创新精神&#xff0c;成为中国乃至全球科研领域的一颗璀璨明珠。南京不仅是中国三…

No input file specified.(‘.user.ini’文件问题宝塔复制到本地,其他情况可跳过)

症状 病因 一般是宝塔直接copy到本地的情况。 宝塔面板中的.user.ini文件是一个重要的配置文件&#xff0c;它主要用于配置PHP运行环境和网站环境。以下是.user.ini文件的主要作用和操作建议&#xff1a; 防止跨目录访问和文件跨目录读取。这是.user.ini文件的主要作用之一&a…

FastAPI - 组织模块2

FastAPI没有强制指定某种格式来组织项目结构&#xff0c;开发者可以根据自己喜好和项目需要来定制自己的项目结构。 https://fastapi.tiangolo.com/zh/tutorial/bigger-applications/ 在项目根目录创建python包routers&#xff0c;然后创建member.py文件 member.py文件内容 …

js知识点汇总之js的数据类型(值和引用)

JS中的数据类型 面试题&#xff1a;JS 中的数据类型有哪些&#xff1f;基本类型和引用类型的区别是什么&#xff1f; 简单值和复杂值两者之间本质区别两者之间行为区别 简单值和复杂值 JS 中的数据类型就分为两大类&#xff1a; 简单值&#xff08;基本类型、原始类型&#…

洁净环境测试标准、监测计划要点及风险评估注意事项

洁净区日常环境监测 洁净区环境监测作为污染控制策略&#xff08;CCS&#xff09;的重要组成部分&#xff0c;用于监测旨在将粒子和微生物污染风险降至最低的控制措施。下面内容&#xff0c;中邦兴业小编将与大家做个详细的分享。 环境监测计划 评估和定义粒子、微生物监测所…