5.5. 安装 Ceph 客户端角色

ceph-ansible 实用程序提供 ceph-client 角色,将 Ceph 配置文件和管理密钥环复制到节点。此外,您还可以使用此角色创建自定义池和客户端。

先决条件

流程

在 Ansible 管理节点上执行下列任务:

  1. /etc/ansible/hosts 文件中添加新部分 [clients]

    [clients]
    CLIENT_NODE_NAME

    CLIENT_NODE_NAME 替换为您要安装 ceph-client 角色的节点的主机名。

  2. 进入 /usr/share/ceph-ansible 目录:

    [root@admin ~]# cd /usr/share/ceph-ansible
  3. clients.yml.sample 文件创建一个新副本,取名为 client.yml:

    [root@admin ceph-ansible ~]# cp group_vars/clients.yml.sample group_vars/clients.yml
  4. 打开 group_vars/clients.yml 文件,取消注释以下行:

    keys:
      - { name: client.test, caps: { mon: "allow r", osd: "allow class-read object_prefix rbd_children, allow rwx pool=test" },  mode: "{{ ceph_keyring_permissions }}" }
    1. 使用实际客户端名称替换 client.test,并在客户端定义行中添加客户端密钥,例如:

      key: "ADD-KEYRING-HERE=="

      现在,整行示例类似如下:

      - { name: client.test, key: "AQAin8tUMICVFBAALRHNrV0Z4MXupRw4v9JQ6Q==", caps: { mon: "allow r", osd: "allow class-read object_prefix rbd_children, allow rwx pool=test" },  mode: "{{ ceph_keyring_permissions }}" }
      注意

      ceph-authtool --gen-print-key 命令可以生成新的客户端密钥。

  5. (可选)指示 ceph-client 创建池和客户端。

    1. 更新 clients.yml

      • 取消注释 user_config 设置并将其设置为 true
      • 取消注释 poolskeys 部分,并根据需要进行更新。您可以使用 cephx 功能定义自定义池和客户端名称。
    2. osd_pool_default_pg_num 设置添加到 all.yml 文件的 ceph_conf_overrides 部分:

      ceph_conf_overrides:
         global:
            osd_pool_default_pg_num: NUMBER

      NUMBER 替换为 PG 的默认数量。

  6. ansible 用户身份,运行 Ansible playbook:

    1. 裸机部署:

      [ansible@admin ceph-ansible]$ ansible-playbook site.yml --limit clients -i hosts
    2. 容器部署:

      [ansible@admin ceph-ansible]$ ansible-playbook site-container.yml --limit clients -i hosts

其它资源