共计 1814 个字符,预计需要花费 5 分钟才能阅读完成。
环境
OS:Ubuntu 16.04
背景
使用 ceph-deploy 部署 Ceph 集群,调用 ceph-deploy install 命令在远端节点安装 ceph 环境,执行 apt-get update 命令时失败。
Err:1 http://mirrors.163.com/ubuntu xenial InRelease
Temporary failure resolving 'mirrors.163.com'
分析
ceph-deploy 的原理,就是 ssh 免密码登录到远端节点,然后执行各种命令。和刚才的 apt-get 命令结合起来,实际执行的是类似“ssh remote_node apt-get update”的命令。于是再回到执行 ceph-deploy 的 admin 节点,执行 ssh remote_node apt-get update,果然失败。
直接连接到出问题的节点,执行 apt-get update 命令,没有任何问题。这样看来,应该是一些环境变量的问题了。我的环境中是有网络代理的,连接外网必须配置 http_proxy 和 https_proxy 这两个环境变量。我将这两个环境变量设置在 /etc/profile 配置文件中,然而,ssh 使用 bash 是作为一个 non-login shell 的,因此不会加载这个文件。我们可以执行下面的命令,就会发现 apt-get 可以成功。至于什么是 non-login shell,可以参考 login shell。
$ ssh remote_node "bash --login -c'apt-get update'"
Hit:1 http://mirrors.163.com/ubuntu xenial InRelease
Hit:2 http://mirrors.163.com/ubuntu xenial-security InRelease
Hit:3 http://mirrors.163.com/ubuntu xenial-updates InRelease
Hit:4 http://mirrors.163.com/ubuntu xenial-proposed InRelease
Hit:5 http://mirrors.163.com/ubuntu xenial-backports InRelease
Reading package lists...
Building dependency tree...
Reading state information...
162 packages can be upgraded. Run 'apt list --upgradable' to see them.
解决方法
将 http_proxy 和 https_proxy 的配置放到 /etc/environment,或者~/.ssh/environment 中。再次执行 ceph-deploy install,成功。
更多 Ceph 相关教程见以下内容:
在 CentOS 7.1 上安装分布式存储系统 Ceph http://www.linuxidc.com/Linux/2015-08/120990.htm
Ceph 环境配置文档 PDF http://www.linuxidc.com/Linux/2013-05/85212.htm
CentOS7 下部署 Ceph 集群(版本 10.2.2)http://www.linuxidc.com/Linux/2017-02/140728.htm
Ceph 的安装过程 http://www.linuxidc.com/Linux/2013-05/85210.htm
如何升级 Ceph 版本及注意事项 http://www.linuxidc.com/Linux/2017-02/140631.htm
HOWTO Install Ceph On FC12, FC 上安装 Ceph 分布式文件系统 http://www.linuxidc.com/Linux/2013-05/85209.htm
实验环境 Ceph 9.2.1 部署笔记 http://www.linuxidc.com/Linux/2016-11/137094.htm
Ubuntu 16.04 快速安装 Ceph 集群 http://www.linuxidc.com/Linux/2016-09/135261.htm
Ceph 的详细介绍:请点这里
Ceph 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142523.htm