16.3. 使用 cephadm_bootstrap 和 cephadm_registry_login 模块引导存储集群
作为存储管理员,您可以使用 Ansible 中的 cephadm_bootstrap
和 cephadm_registry_login
模块来引导存储集群。
先决条件
- 第一个 Ceph 监控容器的 IP 地址,也是存储集群中第一个节点的 IP 地址。
-
登录到
registry.redhat.io
。 -
至少 10 GB 的可用空间用于
/var/lib/containers/
。 -
Red Hat Enterprise Linux 8.10 或 9.4 或更高版本,将
ansible-core
捆绑到 AppStream 中。 -
在 Ansible 管理节点上安装
cephadm-ansible
软件包。 - 在存储集群中的所有主机上设置免密码 SSH。
- 主机通过 CDN 注册。
流程
- 登录 Ansible 管理节点。
进入 Ansible 管理节点上的
/usr/share/cephadm-ansible
目录:示例
[ceph-admin@admin ~]$ cd /usr/share/cephadm-ansible
创建
hosts
文件并添加主机、标签和监控存储集群中第一个主机的 IP 地址:语法
sudo vi INVENTORY_FILE HOST1 labels="['LABEL1', 'LABEL2']" HOST2 labels="['LABEL1', 'LABEL2']" HOST3 labels="['LABEL1']" [admin] ADMIN_HOST monitor_address=MONITOR_IP_ADDRESS labels="['ADMIN_LABEL', 'LABEL1', 'LABEL2']"
示例
[ceph-admin@admin cephadm-ansible]$ sudo vi hosts host02 labels="['mon', 'mgr']" host03 labels="['mon', 'mgr']" host04 labels="['osd']" host05 labels="['osd']" host06 labels="['osd']" [admin] host01 monitor_address=10.10.128.68 labels="['_admin', 'mon', 'mgr']"
运行 preflight playbook:
语法
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs"
示例
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs"
创建 playbook 以启动集群:
语法
sudo vi PLAYBOOK_FILENAME.yml --- - name: NAME_OF_PLAY hosts: BOOTSTRAP_HOST become: USE_ELEVATED_PRIVILEGES gather_facts: GATHER_FACTS_ABOUT_REMOTE_HOSTS tasks: -name: NAME_OF_TASK cephadm_registry_login: state: STATE registry_url: REGISTRY_URL registry_username: REGISTRY_USER_NAME registry_password: REGISTRY_PASSWORD - name: NAME_OF_TASK cephadm_bootstrap: mon_ip: "{{ monitor_address }}" dashboard_user: DASHBOARD_USER dashboard_password: DASHBOARD_PASSWORD allow_fqdn_hostname: ALLOW_FQDN_HOSTNAME cluster_network: NETWORK_CIDR
示例
[ceph-admin@admin cephadm-ansible]$ sudo vi bootstrap.yml --- - name: bootstrap the cluster hosts: host01 become: true gather_facts: false tasks: - name: login to registry cephadm_registry_login: state: login registry_url: registry.redhat.io registry_username: user1 registry_password: mypassword1 - name: bootstrap initial cluster cephadm_bootstrap: mon_ip: "{{ monitor_address }}" dashboard_user: mydashboarduser dashboard_password: mydashboardpassword allow_fqdn_hostname: true cluster_network: 10.10.128.0/28
运行 playbook:
语法
ansible-playbook -i INVENTORY_FILE PLAYBOOK_FILENAME.yml -vvv
示例
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts bootstrap.yml -vvv
验证
- 在运行 playbook 后检查 Ansible 输出。