3.4.2. 配置 Ceph Ansible 节点(ceph05)
登录 Ceph Ansible 节点(ceph05),并将它配置如下。您需要运行 ceph01、ceph02 和 ceph03 节点,以完成这些步骤。
在 Ansible 用户的主目录中,创建一个目录来存储从 ceph-ansible playbook 创建的临时值
# USER_NAME=ansibleadmin # sudo su - $USER_NAME [ansibleadmin@ceph05 ~]$ mkdir ~/ceph-ansible-keys为 ansible 用户启用无密码的 ssh。在 ceph05 上运行 ssh-keygen (将密码短语留空),然后运行 ssh-copy-id 将公钥复制到 ceph01、ceph02 和 ceph03 系统上的 Ansible 用户:
# USER_NAME=ansibleadmin # sudo su - $USER_NAME [ansibleadmin@ceph05 ~]$ ssh-keygen [ansibleadmin@ceph05 ~]$ ssh-copy-id $USER_NAME@ceph01 [ansibleadmin@ceph05 ~]$ ssh-copy-id $USER_NAME@ceph02 [ansibleadmin@ceph05 ~]$ ssh-copy-id $USER_NAME@ceph03 [ansibleadmin@ceph05 ~]$ exit #安装 ceph-ansible 软件包:
# yum install ceph-ansible在这两个目录之间创建一个符号:
# ln -s /usr/share/ceph-ansible/group_vars \ /etc/ansible/group_vars创建 Ceph 示例 yml 文件的副本以进行修改:
# cd /usr/share/ceph-ansible # cp group_vars/all.yml.sample group_vars/all.yml # cp group_vars/osds.yml.sample group_vars/osds.yml # cp site.yml.sample site.yml编辑复制的 group_vars/all.yml 文件。详情请参阅 表 3.1 中的常规 Ansible 设置。例如:
ceph_origin: repository ceph_repository: rhcs ceph_repository_type: cdn ceph_rhcs_version: 3 monitor_interface: eth0 public_network: 192.168.122.0/24请注意,您的网络设备和地址范围可能会有所不同。
编辑复制的
group_vars/osds.yml文件。详情请参阅 表 3.2 中的 OSD Ansible 设置。在本例中,每个 OSD 节点上的第二个磁盘设备(/dev/sdb)用于数据和日志存储:osd_scenario: collocated devices: - /dev/sdb dmcrypt: true osd_auto_discovery: false编辑
/etc/ansible/hosts清单文件,将 Ceph 节点识别为 Ceph 节点,作为 Ceph 监视器、OSD 和管理器节点。在本例中,存储设备也会在每个节点上识别:[mons] ceph01 ceph02 ceph03 [osds] ceph01 devices="[ '/dev/sdb' ]" ceph02 devices="[ '/dev/sdb' ]" ceph03 devices="[ '/dev/sdb' ]" [mgrs] ceph01 devices="[ '/dev/sdb' ]" ceph02 devices="[ '/dev/sdb' ]" ceph03 devices="[ '/dev/sdb' ]"将以下行添加到
/etc/ansible/ansible.cfg文件中,将每个 Ansible playbook 运行的输出保存到 Ansible 用户的主目录中:retry_files_save_path = ~/检查 Ansible 能否访问您配置为 Ansible 用户的所有 Ceph 节点:
# USER_NAME=ansibleadmin # sudo su - $USER_NAME [ansibleadmin@ceph05 ~]$ ansible all -m ping ceph01 | SUCCESS => { "changed": false, "ping": "pong" } ceph02 | SUCCESS => { "changed": false, "ping": "pong" } ceph03 | SUCCESS => { "changed": false, "ping": "pong" } [ansibleadmin@ceph05 ~]$运行 ceph-ansible playbook (以您的 Ansible 用户身份):
[ansibleadmin@ceph05 ~]$ cd /usr/share/ceph-ansible/ [ansibleadmin@ceph05 ~]$ ansible-playbook site.yml此时,Ansible playbook 将检查您的 Ceph 节点,并为您所请求的服务配置它们。如果有任何失败,请进行必要的更正并重新运行该命令。
登录到三个 Ceph 节点之一(ceph01、ceph02 或 ceph03),并检查 Ceph 集群的健康状态:
# ceph health HEALTH_OK在同一节点上,使用 rados 验证监控是否正常工作:
# ceph osd pool create test 8 # echo 'Hello World!' > hello-world.txt # rados --pool test put hello-world hello-world.txt # rados --pool test get hello-world fetch.txt # cat fetch.txt Hello World!