Ansible部署RHCS存储集群详解(3)

提示:主机名应该能正确解析主机名,若管理节点同时也是一个Ceph节点,也要确认能正确解析自己的主机名和IP地址。本实验环境此3.1步骤可省略。

3.2 创建相关用户

[root@servera ~]# useradd student
[root@servera ~]# echo student | passwd --stdin student  #创建非root的管理用户
[root@servera ~]# for i in {a..e}; do echo "====server${i}====";ssh root@server${i} 'useradd -d /home/student -m student; echo "student" | passwd --stdin student'; done                #所有OSD server节点创建student用户
[root@servera ~]# for i in {a..e}; do echo "====server${i}====";ssh root@server${i} 'useradd -d /home/ceph -m ceph; echo "redhat" | passwd --stdin ceph'; done
[root@servera ~]# for i in {a..e}; do echo "====server${i}====";ssh root@server${i} 'echo "student ALL = (root) NOPASSWD:ALL" > /etc/sudoers'; done
[root@servera ~]# for i in {a..e}; do echo "====server${i}====";ssh root@server${i} 'chmod 0440 /etc/sudoers'; done

3.3 配置部署节点免密钥

[root@servera ~]# su - student [student@servera ~]$ ssh-keygen -f ~/.ssh/id_rsa -N '' [student@servera ~]$ for i in {a..e}; do echo "====server${i}====";ssh-copy-id student@server$i;ssh-copy-id ceph@server$i; done

 

3.4 配置Ansible Inventory

[student@servera ~]$ sudo vi /usr/share/ceph-ansible/ansible.cfg log_path = /tmp/ansible.log #修改日志路径为student用户可写入的/tmp路径 deprecation_warnings = False #禁用在ansible-playbook输出结果相关必须要警告

提示:Ansible默认使用/etc/ansible/hosts作为Inventory文件,也可使用-f参数手动指定其他文件。

[student@servera ~]$ sudo vi /etc/ansible/hosts
[mons]
server[c:e]

[mgrs]
server[c:e]
[student@servera ~]$ ansible mons -m ping  #测试mons组节点通信
[student@servera ~]$ ansible mgrs -m ping  #测试mgrs组节点通信
[student@servera ~]$ ansible mons -m command -a id #通过命令测试mons组节点
[student@servera ~]$ ansible mgrs -m command -a id #通过命令测试mgrs组节点

提示:ceph ansible playbook为每种Ceph节点类型使用一个主机组:monitors节点使用mons, osds节点使用osds,managers节点使用mgrs,MDSs使用mdss, Ceph客户端使用clients, RADOS网关节点使用raws, iSCSI网关使用iscsi-gws,启用RBD mirroring使用rd-mirror。

因此需要需要根据Ceph主机的角色将它们在对应的Inventory文件中配置为对应的组。

3.5 创建site.yml

[student@servera ~]$ cd /usr/share/ceph-ansible/
[student@servera ceph-ansible]$ sudo cp site.yml.sample site.yml
[student@servera ceph-ansible]$ sudo vi site.yml
#……
- hosts: osds
  gather_facts: false
  become: True
  serial: 1                  #在osd(80行左右)添加此行

提示:添加serial: 1添,会减慢了OSD的部署,但是使我们更有可能预测哪个OSD编号被分配给哪个OSD主机,以便将来的实验室练习。

3.6 创建all.yml

[student@servera ~]$ cd /usr/share/ceph-ansible/group_vars/
[student@servera group_vars]$ sudo cp all.yml.sample all.yml
[student@servera group_vars]$ sudo vi all.yml
---
dummy:
ntp_service_enabled: false   #本实验采用chrony进行时钟同步
ceph_origin: repository
ceph_repository: rhcs
ceph_rhcs_version: "3"
ceph_repository_type: cdn
rbd_cache: "true"    #开启RBD回写缓存
rbd_cache_writethrough_until_flush: "false" #在切换回写之前,不从写透开始。
rbd_client_directories: false  #不要创建客户机目录(它们应该已经存在)。
monitor_interface: eth0
journal_size: 1024    #本环境存储设备很小,OSD日志比通常建议的要小
public_network: 172.25.250.0/24
cluster_network: "{{ public_network }}"
ceph_conf_overrides:
  global:
    mon_osd_allow_primary_affinity: 1
    mon_clock_drift_allowed: 0.5  #允许MON时钟间隔最多0.5秒
    osd_pool_default_size: 2
    osd_pool_default_min_size: 1  #降低存储池复制大小的默认设置
    mon_pg_warn_min_per_osd: 0  #见提示一
    mon_pg_warn_max_per_osd: 0  #见提示二
    mon_pg_warn_max_object_skew: 0  #见提示三
  client:
    rbd_default_features: 1   #仅为以后的练习启用一组特定的客户机功能

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/aaf437860d303ec6f454ccd001ebd91d.html