华为aarch64架构的泰山服务器EulerOS 2.0 (SP8)系统离线安装saltstack3003.1实践
华为泰山服务器的CPU芯片架构为aarch64,所装系统为EulerOS 2.0 (SP8)aarch64系统,安装saltstack比较困难。本文讲解通过pip安装方式离线安装saltstack3003.1以进行集中化管理和维护。
一、系统环境
1、操作系统版本
[root@localhost ~]# cat /etc/os-release
NAME="EulerOS"
VERSION="2.0 (SP8)"
ID="euleros"
ID_LIKE="rhel fedora centos"
VERSION_ID="2.0"
PRETTY_NAME="EulerOS 2.0 (SP8)"
ANSI_COLOR="0;31"
2、python版本及所能识别支持的包信息
[root@localhost ~]# python
Python 3.7.0 (default, Mar 16 2020, 00:02:15)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pip
>>> import pip._internal.pep425tags
>>> print(pip._internal.pep425tags.get_supported())
[('cp37', 'cp37m', 'linux_aarch64'), ('cp37', 'abi3', 'linux_aarch64'), ('cp37', 'none', 'linux_aarch64'), ('cp36', 'abi3', 'linux_aarch64'), ('cp35', 'abi3', 'linux_aarch64'), ('cp34', 'abi3', 'linux_aarch64'), ('cp33', 'abi3', 'linux_aarch64'), ('cp32', 'abi3', 'linux_aarch64'), ('py3', 'none', 'linux_aarch64'), ('cp37', 'none', 'any'), ('cp3', 'none', 'any'), ('py37', 'none', 'any'), ('py3', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
>>> exit()
[root@localhost ~]#
3、服务器CPU架构
[root@localhost ~]# uname -m
aarch64
4、操作系统内核信息
[root@localhost ~]# rpm -qa |grep kernel
kernel-4.19.36-vhulk1907.1.0.h702.eulerosv2r8.aarch64
kernel-headers-4.19.36-vhulk1907.1.0.h475.eulerosv2r8.aarch64
二、准备相关的软件包
1、软件包内容
[root@localhost tmp]# cd salt-pip/
[root@localhost salt-pip]# ll
total 13752
-rw-r-----. 1 root root 155255 Sep 18 19:20 certifi-2022.12.7-py3-none-any.whl
-rw-r-----. 1 root root 45489 Sep 18 19:20 charset_normalizer-3.0.1-py3-none-any.whl
-rw-r-----. 1 root root 9570 Sep 18 19:20 contextvars-2.4.tar.gz
-rw-r-----. 1 root root 20315 Sep 18 19:20 distro-1.8.0-py3-none-any.whl
-rw-r-----. 1 root root 61538 Sep 18 19:20 idna-3.4-py3-none-any.whl
-rw-r-----. 1 root root 116441 Sep 18 19:20 immutables-0.19-cp37-cp37m-linux_aarch64.whl
-rw-r-----. 1 root root 133357 Sep 18 19:20 Jinja2-3.0.0-py3-none-any.whl
-rw-r-----. 1 root root 9669 Sep 18 19:20 MarkupSafe-2.1.1-py3-none-any.whl
-rw-r-----. 1 root root 15541 Sep 18 19:20 msgpack-1.0.4-py3-none-any.whl
-rw-r-----. 1 root root 2071041 Sep 18 19:20 pycryptodomex-3.16.0-cp35-abi3-linux_aarch64.whl
-rw-r-----. 1 root root 656952 Sep 18 19:20 PyYAML-6.0-cp37-cp37m-linux_aarch64.whl
-rw-r-----. 1 root root 863287 Sep 18 19:20 pyzmq-25.0.0-cp37-cp37m-linux_aarch64.whl
-rw-r-----. 1 root root 62822 Sep 18 19:20 requests-2.28.2-py3-none-any.whl
-rw-r-----. 1 root root 256 Sep 18 19:20 requirements-euler2.8-salt.txt
-rw-r-----. 1 root root 9654098 Sep 18 19:20 salt-3003.1-py3-none-any.whl
-rw-r-----. 1 root root 26662 Sep 18 19:20 typing_extensions-4.4.0-py3-none-any.whl
-rw-r-----. 1 root root 140642 Sep 18 19:20 urllib3-1.26.14-py2.py3-none-any.whl
2、依赖包描述文件requirements-euler2.8-salt.txt内容
[root@localhost salt-pip]# cat requirements-euler2.8-salt.txt
certifi==2022.12.7
charset-normalizer==3.0.1
contextvars==2.4
idna==3.4
immutables==0.19
Jinja2==3.0.0
MarkupSafe==2.1.1
msgpack==1.0.4
pycryptodomex==3.16.0
PyYAML==6.0
pyzmq==25.0.0
requests==2.28.2
salt==3003.1
typing-extensions==4.4.0
urllib3==1.26.14
三、安装测试
1、编写安装脚本install.sh
#!/bin/bash
##__author__='daigjianbing'pip3 install --no-index --find-links . -r requirements-euler2.8-salt.txt
which salt-minion
salt --version
targetfile='/usr/lib/systemd/system/salt-minion.service'
if [ ! -f $targetfile ];thencat > $targetfile <<"EOF"
##__author__='daigjianbing'
[Unit]
Description=The Salt Minion
Documentation=man:salt-minion(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltstack.com/en/latest/contents.html
After=network.target salt-master.service[Service]
KillMode=process
Type=notify
NotifyAccess=all
LimitNOFILE=8192
ExecStart=/usr/local/bin/salt-minion[Install]
WantedBy=multi-user.target
EOF
fichmod 644 $targetfile
systemctl daemon-reloadif [ ! -d "/etc/salt" ]; thenmkdir -p /etc/saltchmod 755 /etc/salt
fitargetfile='/etc/salt/minion'
if [ ! -f $targetfile ];thencat > $targetfile <<"EOF"
##__author__='daigjianbing'
master: server
id: test
hash_type: sha256
EOF
fisystemctl enable --now salt-minion
systemctl status salt-minion
2、执行安装
[root@localhost salt-pip]# sh install.sh
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Looking in links: .
Collecting certifi==2022.12.7 (from -r requirements-euler2.8-salt.txt (line 1))
Collecting charset-normalizer==3.0.1 (from -r requirements-euler2.8-salt.txt (line 2))
Collecting contextvars==2.4 (from -r requirements-euler2.8-salt.txt (line 3))
Collecting idna==3.4 (from -r requirements-euler2.8-salt.txt (line 4))
Collecting immutables==0.19 (from -r requirements-euler2.8-salt.txt (line 5))
Collecting Jinja2==3.0.0 (from -r requirements-euler2.8-salt.txt (line 6))
Collecting MarkupSafe==2.1.1 (from -r requirements-euler2.8-salt.txt (line 7))
Collecting msgpack==1.0.4 (from -r requirements-euler2.8-salt.txt (line 8))
Collecting pycryptodomex==3.16.0 (from -r requirements-euler2.8-salt.txt (line 9))
Collecting PyYAML==6.0 (from -r requirements-euler2.8-salt.txt (line 10))
Collecting pyzmq==25.0.0 (from -r requirements-euler2.8-salt.txt (line 11))
Collecting requests==2.28.2 (from -r requirements-euler2.8-salt.txt (line 12))
Collecting salt==3003.1 (from -r requirements-euler2.8-salt.txt (line 13))
Collecting typing-extensions==4.4.0 (from -r requirements-euler2.8-salt.txt (line 14))
Collecting urllib3==1.26.14 (from -r requirements-euler2.8-salt.txt (line 15))
Requirement already satisfied: distro>=1.0.1 in /usr/local/lib/python3.7/site-packages (from salt==3003.1->-r requirements-euler2.8-salt.txt (line 13)) (1.8.0)
Installing collected packages: certifi, charset-normalizer, typing-extensions, immutables, contextvars, idna, MarkupSafe, Jinja2, msgpack, pycryptodomex, PyYAML, pyzmq, urllib3, requests, salt
Successfully installed Jinja2-3.0.0 MarkupSafe-2.1.1 PyYAML-6.0 certifi-2022.12.7 charset-normalizer-3.0.1 contextvars-2.4 idna-3.4 immutables-0.19 msgpack-1.0.4 pycryptodomex-3.16.0 pyzmq-25.0.0 requests-2.28.2 salt-3003.1 typing-extensions-4.4.0 urllib3-1.26.14
/usr/local/bin/salt-minion
salt 3003.1
Created symlink /etc/systemd/system/multi-user.target.wants/salt-minion.service → /usr/lib/systemd/system/salt-minion.service.
● salt-minion.service - The Salt MinionLoaded: loaded (/usr/lib/systemd/system/salt-minion.service; enabled; vendor preset: disabled)Active: active (running) since Mon 2023-09-18 20:17:21 CST; 11ms agoDocs: man:salt-minion(1)file:///usr/share/doc/salt/html/contents.htmlhttps://docs.saltstack.com/en/latest/contents.htmlMain PID: 291056 (salt-minion)Tasks: 1 (limit: 51200)Memory: 17.0MCGroup: /system.slice/salt-minion.service└─291056 /usr/bin/python3 /usr/local/bin/salt-minionSep 18 20:17:20 localhost systemd[1]: Starting The Salt Minion...
Sep 18 20:17:21 localhost systemd[1]: Started The Salt Minion.
看到 active (running),可见salt-minion服务已正常运行起来了。
四、验证结果
1、验证版本及可执行程序情况
root@localhost salt-pip]# salt --version
salt 3003.1
[root@localhost salt-pip]# /usr/local/bin/salt-minion --version
salt-minion 3003.1
[root@localhost salt-pip]# ll /usr/local/bin/salt*
-rwxr-xr-x. 1 root root 225 Sep 18 20:17 /usr/local/bin/salt
-rwxr-xr-x. 1 root root 223 Sep 18 20:17 /usr/local/bin/salt-api
-rwxr-xr-x. 1 root root 225 Sep 18 20:17 /usr/local/bin/salt-call
-rwxr-xr-x. 1 root root 227 Sep 18 20:17 /usr/local/bin/salt-cloud
-rwxr-xr-x. 1 root root 221 Sep 18 20:17 /usr/local/bin/salt-cp
-rwxr-xr-x. 1 root root 223 Sep 18 20:17 /usr/local/bin/salt-key
-rwxr-xr-x. 1 root root 229 Sep 18 20:17 /usr/local/bin/salt-master
-rwxr-xr-x. 1 root root 229 Sep 18 20:17 /usr/local/bin/salt-minion
-rw-r-----. 1 root root 1027 Sep 18 20:17 /usr/local/bin/salt-proxy
-rwxr-xr-x. 1 root root 223 Sep 18 20:17 /usr/local/bin/salt-run
-rwxr-xr-x. 1 root root 223 Sep 18 20:17 /usr/local/bin/salt-ssh
-rwxr-xr-x. 1 root root 229 Sep 18 20:17 /usr/local/bin/salt-syndic
-rwxr-xr-x. 1 root root 227 Sep 18 20:17 /usr/local/bin/salt-unity
2、核对服务运行情况
如上,可见安装已完全成功。
五、相关安装包下载
本人打包好的安装包文件下载
相关文章:

华为aarch64架构的泰山服务器EulerOS 2.0 (SP8)系统离线安装saltstack3003.1实践
华为泰山服务器的CPU芯片架构为aarch64,所装系统为EulerOS 2.0 (SP8)aarch64系统,安装saltstack比较困难。本文讲解通过pip安装方式离线安装saltstack3003.1以进行集中化管理和维护。 一、系统环境 1、操作系统版本 [rootlocalhost ~]# cat /etc/os-r…...

C#中的方法
引言 在C#编程语言中,方法是一种封装了一系列可执行代码的重要构建块。通过方法,我们可以将代码逻辑进行模块化和复用,提高代码的可读性和可维护性。本文将深入探讨C#中的方法的定义、参数传递、返回值、重载、递归等方面的知识,…...

【Flowable】使用UEL整合Springboot从0到1(四)
前言 在前面我们介绍了Springboot简单使用了foleable以及flowableUI的安装和使用,在之前我们分配任务的处理人的时候都是通过Assignee去指定固定的人的。这在实际业务中是不合适的,我们希望在流程中动态的去解析每个节点的处理人,当前flowab…...

WebGL 计算点光源下的漫反射光颜色
目录 点光源光 逐顶点光照(插值) 示例程序(PointLightedCube.js) 代码详解 示例效果 逐顶点处理点光源光照效果时出现的不自然现象 更逼真:逐片元光照 示例程序(PointLightedCube_perFragment.js…...

Java精品项目源码第61期垃圾分类科普平台(代号V061)
Java精品项目源码第61期垃圾分类科普平台(代号V061) 大家好,小辰今天给大家介绍一个垃圾分类科普平台,演示视频公众号(小辰哥的Java)对号查询观看即可 文章目录 Java精品项目源码第61期垃圾分类科普平台(代号V061)难度指数&…...

【Unity3D】资源管理
1 前言 Unity 中资源管理方案主要有 Resources、TextAsset、ScriptableObject 、AssetDatabase、PlayerPrefs、Addressables、AssetBundle、SQLite,本文将介绍其中大部分方案。 2 Resources Resources 主要用于加载资源,被加载的资源需要放在 Resources…...

数据结构-----队列
目录 前言 队列 定义 队列的定义和操作方法 队列节点的定义 操作方式 顺序表实现队列(C/C代码) 链表实现队列(C/C代码) Python语言实现队列 前言 排队是我们日常生活中必不可少的一件事,去饭堂打饭的时候排队&a…...
postgresql教程
postgreSQL教程目录 postgreSQL 创建数据库的方式:postgreSQL删除数据库的方式:PostgreSQL 创建表格postgre删除表格:postgreSQL INSERT INTO 语句postgreSQL SELECT 语句:postgresql索引:什么情况下要避免使用索引? p…...

1万6千多最好的背单词SQLITE\ACCESS数据库
本来是实在不想再整英语类的数据了,因为实在是太多了,奈何今天弄到的这份数据库实在很精彩,因此还是希望能够有人喜欢。 搞一个“accept”字段的样例: 【explain】 vi. 承认;同意;承兑; vt. 接受;承认;承担;承兑; 【etyma】 ac…...
springboot aop Aspectj 切面
常用: Aspect、Component、Pointcut、Before、AfterReturning SpringBoot的AOP(aspect注解)的简单使用 - 知乎 springboot项目中引入Aspectj并使用_springboot引入aspectj_山鬼谣me的博客-CSDN博客...
Leetcode 2862. Maximum Element-Sum of a Complete Subset of Indices
Leetcode 2862. Maximum Element-Sum of a Complete Subset of Indices 1. 解题思路2. 代码实现 题目链接:2862. Maximum Element-Sum of a Complete Subset of Indices 1. 解题思路 这一题的核心在于想明白一点: 要使得子序列当中任意两个数之积均为…...
第一百四十七回 自定义组件一
文章目录 概念介绍实现方法示例代码 我们在上一章回中介绍了跟手指移动的小球相关的内容,本章回中将介绍 自定义组件.闲话休提,让我们一起Talk Flutter吧。 概念介绍 在项目中有些内容无法通过现有的组件来实现,因此需要自定义组件…...
MySQL 重复数据的处理
文章目录 MySQL 重复数据的处理一,常用处理方法二,统计重复数据三,过滤重复数据四,删除重复数据拓展:MySQL预防SQL注入(一)SQL注入 概述(二)预防措施 MySQL 重复数据的处…...

Java文字描边效果实现
效果: FontUtil工具类的完整代码如下: 其中实现描边效果的函数为:generateAdaptiveStrokeFontImage() package com.ncarzone.data.contentcenter.biz.img.util;import org.springframework.core.io.ClassPathResource; import org.springfr…...
【Web_环境搭建_Python3_pip】pip的升级、安装、更新、卸载,以及pipupgrade和pip-review的基础使用
** 官方说明 ** pip(Python Package Index)是一个以 Python 语言写成的软件包管理系統,使用 pip 可以非常方便的安装和管理 python 软件包PIP ** 查看信息 ** 查看版本 : pip --version查看已有 : pip list、pip freeze查看帮助 : pip help查看库信息 : pip show -f package_…...

农民朋友有福利啦!建行江门市分行“裕农通+农资结算”平台正式上线
随着广东广圣农业发展有限公司办公室内的裕农通“智慧眼”结算机“叮”的一声到账提醒,标志着全国首个“裕农通农资结算“平台的成功上线,也标志着建行广东省江门市分行的裕农通业务又迈上了一个新的台阶。 广东广圣农业发展有限公司(以下简…...
super详解
父类 package com.mypackage.oop.demo06;public class Person06{public Person06() {System.out.println("Person06无参执行了");}protected String name "hexioahei";public void print(){System.out.println("Person");} }子类 package com…...
GMS地下水数值模拟丨GMS各模块、三维地质模型构建及与MODFLOW耦合、地下水流动数值模拟及报告编制、地下水溶质运移模型、反应性溶质运移等
目录 第一部分 地下水数值模拟理论模块 第二部分 地下水数值模拟数据收集、准备及预处理 第三部分 GMS各模块实践 第四部分 三维地质模型构建及与MODFLOW耦合 第五部分 地下水流动数值模拟及报告编制 第六部分 地下水溶质运移模型 第七部分 反应性溶质运移 更多应用 以…...

Redis 配置文件详解 - 持久化(RDB、AOF)
目录 Redis 配置文件详解 单位 包含 INCLUDES 网络 NETWORK 通用 GENERAL 快照 SNAPSHOTTING (持久化) 复制 REPLICATION(主从复制) 安全 SECURITY(账号密码设置) 编辑 限制 CLIENTS 追加模…...

在线Excel转JSON工具
在线Excel转JSON工具 上传excel将数据转换成json格式...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...