# 部署管理工具
建议安装一个 ceph-deploy 管理节点和一个三节点的 Ceph 存储集群。
![Ceph 管理节点](https://img.kancloud.cn/6d/3e/6d3eb7fb26a4874e1b48e3a95ffd079e_510x294.png)
> 由于资源紧张,我把管理节点放在 ceph-node1 节点上。
>
> 以下操作都在管理节点上进行操作。
## 安装管理节点
1)安装 EPEL 库。
```bash
$ yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
```
2)添加 Yum 源。
```bash
# 指定 Ceph 版本
$ export ceph_stable_release=jewel
# 生成 repo 文件
$ cat << EOF > /etc/yum.repos.d/ceph.repo
> [ceph-noarch]
> name=Ceph noarch packages
> baseurl=https://download.ceph.com/rpm-${ceph_stable_release}/el7/noarch
> enabled=1
> gpgcheck=1
> type=rpm-md
> gpgkey=https://download.ceph.com/keys/release.asc
> EOF
```
3)安装 Ceph 管理组件。
```bash
$ yum install -y ceph-deploy
```
## 免密码登录
`ceph-deploy` 支持使用 `--username` 选项指定无密码 sudo 权限的用户(包括 root,但不建议使用 root 用户)。 使用 `ceph-deploy --username {username}` 命令时,指定的用户必须能通过无密码 ssh 连接到 Ceph 节点,因为 `ceph-deploy` 操作过程中不会提示输入密码。
### 配置免密码登录
> 以下两种方式选择其一即可。
#### 方式一:基于公钥认证
1)生成密钥对。
```bash
$ ssh-keygen -t rsa -b 1024 -P '' -f ~/.ssh/id_rsa
```
2)拷贝公钥文件至目标主机。
```bash
$ for node in ceph-node{1,2,3}; do \
> ssh-copy-id -i ~/.ssh/id_rsa.pub ceph-operation@${node} -p 22; \
> done
```
#### 方式二:使用 sshpass 工具(不推荐)
1)安装 sshpass。
```bash
$ yum install -y sshpass
```
2)使用别名让 ssh 和 scp 不输入密码。
> 其他两台服务器的密码必须统一。
```bash
$ alias ssh='sshpass -p 密码 ssh -o StrictHostKeyChecking=no'
$ alias scp='sshpass -p 密码 scp -o StrictHostKeyChecking=no'
```
### 配置默认 SSH 登录用户
> 此步骤可以省略。如果省略此步骤,则在使用 `ceph-deploy` 时必须加上 `--username` 参数。
可以修改 Ceph 管理节点上的 `~/.ssh/config` 文件,这样 `ceph-deploy` 就能使用你所创建的用户名登录 Ceph 节点了。而无需每次执行 `ceph-deploy` 都要指定 `--username` 参数。
这样同时也简化了 ssh 和 scp 的用法。
```bash
$ cat << EOF >> ~/.ssh/config
> Host ceph-node1
> Hostname ceph-node1
> Port 22
> User ceph-operation
> Host ceph-node2
> Hostname ceph-node2
> Port 22
> User ceph-operation
> Host ceph-node3
> Hostname ceph-node3
> Port 22
> User ceph-operation
> EOF
# 此时使用 ssh 默认会使用 ceph-operation 用户登录
$ ssh ceph-node1
[ceph-operation@ceph-node1 ~]$
```