问题
无网络环境下就无法访问拥有Ceph相关包的源,也即无法直接通过apt-get install ceph这种方式安装Ceph包,那这种场景下该怎么安装Ceph呢?
解决思路
在该无网络的Ceph机器上搭建Ceph本地源
解决步骤
编译Ceph包
可依据http://www.cnblogs.com/yanghc/p/5777401.html 文章中的第一步,编译Ceph相关包。
注意: 编包的机器应该能访问外网,并且主机环境最好与实际的无外网的需要安装Ceph的环境一致。避免之后软件依赖出现问题
在无外网的机器上搭建本地源
把上面编译得到的所有Ceph deb包拷贝到该无外网的机器。然后依据http://www.cnblogs.com/yanghc/p/5777401.html 文章中的第二步,制作本地源。
找出还缺少的deb包
此时apt-get install ceph还是没法安装成功的,因为还缺少一系列的基础软件包。所以需要获取安装Ceph的所有依赖,可通过如下命令获得安装ceph需要的所有依赖包,包括递归依赖:
apt-cache depends --recurse--no-recommends
--no-suggests --no-conflicts --no-breaks
--no-replaces--no-enhances --no-pre-depends
<your-package-here> | grep "^\w"| sort -u
此时,会得到一系列需要的deb软件包的名称
下载得到所有缺少的deb包
在之前编包的机器上创建一个文件ceph_need,然后把3.3步所得到的所有软件包的名字拷贝到改文件(去掉ceph相关的软件包名字,比如ceph-common,librbd,librados等),然后通过如下命令下载得到所有的deb软件包:
apt-get download $(cat ceph_need)
更新无外网机器上之前搭建的本地源
把3.4步下载得到的所有deb软件包拷贝到该无外网机器的/home/ceph-hammer/pools目录下,然后重新执行http://www.cnblogs.com/yanghc/p/5777401.html文章中的步骤2.4,2.5,2.6,即可更新本地源。
安装ceph
apt-get update
apt-get install ceph