扔掉 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 = None
  configured 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/ansible
  ansible collection location = /home/HwHiAiUser/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/miniconda3/bin/ansible
  python 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.3
  libyaml = 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.183
      ansible_password: "ehl1234"

    test-server-ubuntu:
      ansible_host: 192.168.6.193
      ansible_user: ehl
      ansible_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上传的教学视频,降低学习门槛。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

go-zero 实战(2)

go-zero 实战(1) 中,使用了go-zero 创建了order 和 user 两个微服务。而order作为grpc的客户端,user 作为grpc的服务端,打通了 order 到 user的调用。接下来,我们在user中,加入mysql组件。确保数…

开源与闭源:AI模型发展的两条路径

目录 前言1 数据隐私保护与用户数据安全1.1 开源大模型的透明性与挑战1.2 闭源大模型的控制与责任 2 商业应用的优劣比较2.1 开源大模型的灵活性与创新2.2 闭源大模型的可靠性与服务质量 3 社区参与与合作的差异3.1 开源大模型的社区驱动与协作3.2 闭源大模型的企业主导与保密性…

四川古力未来科技抖音小店安全靠谱,购物新体验

在数字化浪潮席卷而来的今天,电商行业蓬勃发展,各种线上购物平台如雨后春笋般涌现。其中,抖音小店凭借其独特的短视频直播购物模式,迅速赢得了广大消费者的青睐。而四川古力未来科技抖音小店,更是以其安全靠谱、品质保…

Python OCR 文字检测使用模型:读光-文字检测-DBNet行检测模型-中英-通用领域

介绍 什么是OCR? OCR是“Optical Character Recognition”的缩写,中文意为“光学字符识别”。它是一种技术,可以识别和转换打印在纸张或图像上的文字和字符为机器可处理的格式,如计算机文本文件。通过使用OCR技术,可…

Qt Creator(2)【如何在Qt Creator中创建新工程】

阅读导航 引言一、Qt Creator开始界面介绍二、如何在Qt Creator中创建新工程1. 新建项目2. 选择项目模板3. 选择项目路径4. 选择构建系统5. 填写类信息设置界面6. 选择语言和翻译文件7. 选择Qt套件8. 选择版本控制系统9. 最终效果 三、认识Qt Creator项目内容界面1. 基本界面2.…

基于Vue的神影视频APP

需求说明:使用Vue脚手架进行搭建,页面简洁、精致,和一些常见的电影网站类似,例如支付宝中的“淘票票电影”。在项目中使用页面布局技术(表格,vue.js框架,DIV+CSS或者混合使用)进行页面设计,使网站功能齐全,界面美观大方,有一定的交互性。 功能分析:系统主要分为七…

翻译《The Old New Thing》- What did MakeProcInstance do?

What did MakeProcInstance do? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20080207-00/?p23533 Raymond Chen 2008年02月07日 MakeProcInstance 做了什么? MakeProcInstance 宏实际上什么也不做。 #define MakeProcInst…

四川农业大学Java实训项目圆满收官,汇智知了堂引领学子实践创新

近日,四川农业大学与汇智知了堂共同举办的Java实训项目正式迎来了项目汇报阶段。本次实训是汇智知了堂在高等教育领域深化校企合作、推动产教融合的一次重要实践,旨在为广大学子提供一个将理论知识与实际操作相结合的平台。 在实训过程中,汇…

(三)MySQL 索引

欢迎访问 什么是索引? 提高查询效率的一种数据结构,索引是数据的目录 索引的分类 按「数据结构」分类:Btree索引、Hash索引、Full-text索引。按「物理存储」分类:聚簇索引、二级索引。按「字段特性」分类:主键索引…

【Linux学习】进程间通信 (3) —— System V (1)

下面是有关进程通信中 System V 的相关介绍,希望对你有所帮助! 小海编程心语录-CSDN博客 目录 1. System V IPC 1. 消息队列 msg 消息队列的使用方法 1.1 消息队列的创建 1.2 向消息队列发送消息 1.3 从消息队列接收消息 1.4 使用msgctl函数显式地…

拉格朗日插值及牛顿差商方法的实现(Matlab)

一、问题描述 拉格朗日插值及牛顿差商方法的实现。 二、实验目的 掌握拉格朗日插值和牛顿差商方法的原理,能够编写代码实现两种方法;能够分析多项式插值中的误差。 三、实验内容及要求 利用拉格朗日插值及牛顿差商方法估计1980 年的人口,并…

监控员工电脑的软件有哪些,不得不说这几款电脑监控软件太好用了

监控员工电脑的软件在市场上种类繁多,以下是几款备受好评的电脑监控软件,它们各自具有独特的功能和优势,选择前必须了解一下才能做成正确决定。 1.安企神: 这款软件支持7天试用测试,获取测试版请移驾 ↓↓↓ 安企神…

常见的数据分析方法

1.周期性分析法 一个指标的观察时间拉长,看它是否有周期变化规律。周期性分析常见的有两者:自然周期和生命周期。自然周期,指业务指标会随着时间自然变化,如节假日用户/业绩出现下滑、产品销售额随季节变动等;生命周期,譬如“商品生命周期”、“APP生命周期”、“用户生…

【论文阅读】Rank-DETR(NIPS‘23)

paper:https://arxiv.org/abs/2310.08854 code:https://github.com/LeapLabTHU/Rank-DETR

二叉树——基础知识详解

前言: 经过前面的学习,我们接下来要开始二叉树的学习,因二叉树有难度,为了方便讲解以及各位的理解,本节知识会分成不同的小节进行学习,在本阶段只学习初阶的二叉树(堆,二叉数基本知识…

项目9-网页聊天室3(主界面之用户信息)

1.前端页面 CSS: 如何让img里的图片自适应div,且不变形_img自适应div大小 铺满且不变形-CSDN博客 JavaScript/jQuery 如何改变一个img元素的src属性|极客教程 (geek-docs.com) 2.要求 左上角显示用户的昵称和头像. 3.后端代码 3.1 添加拦截器 3.2 注册拦截器 …

信息学奥赛初赛天天练-14-阅读程序-字符数组、唯一分解定理应用

更多资源请关注纽扣编程微信公众号 1 2019 CSP-J 阅读程序1 (程序输入不超过数组或字符串定义的范围;判断题正确填√,错误填;除特殊说明外,判断题1.5分,选择题3分,共计40分) 1 输入的字符串只能由小写字母或大写字母组…

vue/uniapp 企业微信H5使用JS-SDK

企业微信H5需要我们使用一些SDK方法如获取外部联系人userid 获取当前外部联系人userid 使用SDK前提是如何通过config接口注入权限验证配置 使用说明 - 接口文档 - 企业微信开发者中心 当前项目是vue项目,不好直接使用 引入JS文件,但我们可以安装依赖…

python使用多种方法计算列表元素平方的技巧

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、使用列表推导式进行元素平方 二、使用map函数进行元素平方 三、循环遍历列表进行元素平…

根据Depth Quality Tool的z轴误差值确认相机是否需要进行相机内参校准

下载Depth Quality Tool深度质量验证工具 网盘链接【RealSense SDK v2.55.1】 链接:https://pan.baidu.com/s/1NrlbwNDBUL8wpWfVwbpMwA?pwd2jl0 提取码:2jl0 打开Depth Quality Tool深度质量验证工具 找一面墙作为目标,将摄像头水平对准墙…