华为捐赠欧拉系统给开放原子开源基金会,成就了国产操作系统的原生底坐。openEuler推荐的自动化运维平台是A-Ops,能力较弱,A-Ops底层采用Ansible,海量主机运维时效能不佳。笔者特别喜欢使用saltstack批量运维工具软件平台,该工具兼具效率和灵活性,在运维工作中有很多奇妙的应用方式,在此就不多说了。
安装saltstack需要太多的依赖包,因此在openEuler22.03LTS上安装saltstack非常困难,笔者起初想沿用redhat/CentOS系统的使用经验通过rpm包进行安装,也找到了可用的安装包,但其依赖的包python-pyzmq和python3-zmq始终存在冲突问题,折腾了两周仍无法成功安装,如有解决此问题的小伙伴可以留言。
笔者经过更多尝试,最终决定采用pip安装方式进行解决。由于生产系统为离线环境,离线pip又遇到另外的不少坑,解决过程也比较费脑,在此仅提供经实践填坑后完全可行的last方案,填坑过程就再不赘述了。
一、先看完成图:1、本地查看
2、在master上远程管理
二、样本系统为最小化安装的openEuler22.03LTS系统,以下为pip安装的依赖文件
[root@lvs-10 salt-pip]# cat requirements-salt.txt
certifi==2022.12.7
charset-normalizer==2.1.1
contextvars==2.4
idna==3.4
immutables==0.19
Jinja2==3.0.0
jmespath==1.0.1
MarkupSafe==2.1.1
msgpack==1.0.4
psutil==5.9.4
pycryptodomex==3.16.0
PyYAML==6.0
pyzmq==20.0.0
requests==2.28.1
urllib3==1.26.13
salt==3003.1
[root@lvs-10 salt-pip]# python3 --version
Python 3.9.9
三、在可以连网的主机上下载离线包
[root@localhost opt]# pip download -r requirements-salt.txt
....
[root@localhost opt]# ll
总用量 15M
-rw-r--r-- 1 root root 152K 12月 23 10:53 certifi-2022.12.7-py3-none-any.whl
-rw-r--r-- 1 root root 39K 12月 23 10:53 charset_normalizer-2.1.1-py3-none-any.whl
-rw-r--r-- 1 root root 9.4K 12月 23 20:09 contextvars-2.4.tar.gz
-rw-r--r-- 1 root root 61K 12月 23 10:53 idna-3.4-py3-none-any.whl
-rw-r--r-- 1 root root 118K 12月 23 10:53 immutables-0.19-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-rw-r--r-- 1 root root 131K 12月 23 20:11 Jinja2-3.0.0-py3-none-any.whl
-rw-r--r-- 1 root root 20K 12月 23 10:53 jmespath-1.0.1-py3-none-any.whl
-rw-r--r-- 1 root root 25K 12月 23 10:53 MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-rw-r--r-- 1 root root 315K 12月 23 10:53 msgpack-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-rw-r--r-- 1 root root 274K 12月 23 10:53 psutil-5.9.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-rw-r--r-- 1 root root 2.3M 12月 23 10:53 pycryptodomex-3.16.0-cp35-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
-rw-r--r-- 1 root root 647K 12月 23 10:53 PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
-rw-r--r-- 1 root root 1.1M 12月 23 10:53 pyzmq-20.0.0-cp39-cp39-manylinux1_x86_64.whl
-rw-r--r-- 1 root root 62K 12月 23 10:53 requests-2.28.1-py3-none-any.whl
-rw-r--r-- 1 root root 261 12月 23 20:29 requirements-salt.txt
-rw-r--r-- 1 root root 16M 12月 21 13:53 salt-3003.1.tar.gz
-rw-r--r-- 1 root root 138K 12月 23 10:53 urllib3-1.26.13-py2.py3-none-any.whl
四、在可以连网的主机上安装并生成saltstack3003.1的wheel包便于在离线环境分发
[root@localhost opt]# pip3 install Jinja2==3.0.0
...
[root@localhost opt]# pip3 install salt==3003.1
...
Building wheels for collected packages: salt
Building wheel for salt (pyproject.toml) ... done
Created wheel for salt: filename=salt-3003.1-py3-none-any.whl size=9654100 sha256=d9430ed189bc7520b3ba59bab7278305549b32aafcde127a5e0a6e538a4c59f2
Stored in directory: /root/.cache/pip/wheels/21/0c/d8/f34f62688ac944908092d651d8727a8c6d30c5991c36772738
Successfully built salt
Installing collected packages: urllib3, MarkupSafe, immutables, idna, charset-normalizer, certifi, requests, pyzmq, PyYAML, pycryptodomex, msgpack, Jinja2, contextvars, salt
...
找到生成的wheel文件并拷贝到离线文件目录中,删除离线下载的源码包salt-3003.1.tar.gz
[root@localhost opt]# find / -name salt-3003.1-py3-none-any.whl
/root/.cache/pip/wheels/21/0c/d8/f34f62688ac944908092d651d8727a8c6d30c5991c36772738/salt-3003.1-py3-none-any.whl
[root@localhost opt]# cp /root/.cache/pip/wheels/21/0c/d8/f34f62688ac944908092d651d8727a8c6d30c5991c36772738/salt-3003.1-py3-none-any.whl .
[root@localhost opt]# ll
总用量 30M
-rw-r--r--. 1 root root 152K 12月 21 13:53 certifi-2022.12.7-py3-none-any.whl
-rw-r--r--. 1 root root 39K 12月 21 13:53 charset_normalizer-2.1.1-py3-none-any.whl
-rw-r--r--. 1 root root 9.4K 12月 21 13:53 contextvars-2.4.tar.gz
-rw-r--r--. 1 root root 61K 12月 21 13:53 idna-3.4-py3-none-any.whl
-rw-r--r--. 1 root root 118K 12月 21 13:53 immutables-0.19-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-rw-r--r--. 1 root root 130K 12月 21 13:53 Jinja2-3.0.0-py3-none-any.whl
-rw-r--r--. 1 root root 25K 12月 21 13:53 MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-rw-r--r--. 1 root root 315K 12月 21 13:53 msgpack-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-rw-r--r--. 1 root root 2.3M 12月 21 13:53 pycryptodomex-3.16.0-cp35-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
-rw-r--r--. 1 root root 647K 12月 21 13:53 PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
-rw-r--r--. 1 root root 1.1M 12月 21 13:53 pyzmq-24.0.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
-rw-r--r--. 1 root root 62K 12月 21 13:53 requests-2.28.1-py3-none-any.whl
-rw-r--r--. 1 root root 231 12月 21 13:52 requirements-salt.txt
-rw-r--r--. 1 root root