Deploy Helion Openstack 2.0 KVM for Ceph

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Deploy Helion Openstack 2.0 KVM for Ceph相关的知识,希望对你有一定的参考价值。

目  录

1. 安装Lifecycle Manager 1

2. 配置Lifcecycle Manager 1

3. 配置环境 2

4. 安装部署裸机 2

5. 部署Helion 3

6. 配置Ceph存储 5

7. 安装后配置 10

附1:配置public证书 12


技术分享

1. 安装Lifecycle Manager

1 VM 拓扑

基于此拓扑及下面的配置,可以完成部署,可以在ceph 集群上创建卷并挂载到VM 上。


在第一台控制节点上从Helion光盘启动操作系统

输入install启动安装

选择语言,仅支持英文

选择位置

选择键盘类型

设定网络

创建账号,用stack用户

2. 配置Lifcecycle Manager

必须用stack用户登陆系统,且在执行下面命令时不要随意加sudo

sudo mount Helion-OpenStack-X.X.X.iso /media/cdrom

cp /media/cdrom/hos/hos-2.XXX.tar ~stack/

cd ~stack

tar xvf hos-2.XXX.tar

~/hos-2.X.X/hos-init.bash

在此可以设定一个密码,用于Ansible连接到其它节点时保护密钥,可以为空

在无人值守环境中,可以用export HOS_INIT_AUTO=y来避免提示输入密钥

如设定了密钥,可用eval $(ssh-agent); ssh-add ~/.ssh/id_rsa来避免Ansible每次连接到其它节点时都需输入密码

3. 配置环境

拷贝配置样例至配置文件目录

cp -r ~/helion/examples/entry-scale-kvm-vsa/* ~/helion/my_cloud/definition

编辑配置文件

可选(如果通过域名访问Public API):配置Public证书

提交配置

cd ~/helion/hos/ansible

git add -A

git commit -m "<commit message>"

每次改动配置文件后都需进行提交

4. 安装部署裸机

部署Cobbler

确认IPMI连通性

cd ~/helion/hos/ansible

ansible-playbook -i hosts/localhost bm-power-status.yml

部署Cobbler

cd ~/helion/hos/ansible

ansible-playbook -i hosts/localhost cobbler-deploy.yml

部署Cobbler时需要设定其它节点的操作系统密码(该密码将加密保存在Cobbler),用户名和该节点相同

使用Cobbler部署其它节点的操作系统

在所有其他节点上启用PXE网卡的网络启动功能,并将第一启动顺序配置为网络启动

重启所有其它节点

重启后自动通过网络启动安装,等待安装完毕自动关机

修改第一启动顺序为磁盘,并且重启

等待节点自动配置并验证SSH免输密码登陆

如果部分节点安装失败,需要重新安装

cd ~/helion/hos/ansible

ansible-playbook -i hosts/localhost bm-reimage.yml [-e nodelist=node1,node2,...]

如果没有nodelist选项,将自动查找该yml文件中netboot-enabled: True的节点,在重新安装前可以确认自动查找结果

也可以通过该命令查看哪些节点启用了网络启动:sudo cobbler system find --netboot-enabled=1

5. 部署Helion

运行配置处理器

cd ~/helion/hos/ansible

ansible-playbook -i hosts/localhost config-processor-run.yml

该步骤需要输入加密密码,该密码用来加密系统产生的敏感信息,比如:内部服务密码

在第一个提示中输入要设定的密码或已经设定的密码(已经运行过配置处理器)

在第二个提示中输入修改后的密码(如果要修改密码)或直接按回车忽略(第一次运行或不修改密码)

在无人值守环境中采用以下命令可以禁用加密

ansible-playbook -i hosts/localhost config-processor-run.yml -e encrypt="" -e rekey=""

部署云

创建部署目录

cd ~/helion/hos/ansible

ansible-playbook -i hosts/localhost ready-deployment.yml

可选:擦除磁盘

cd ~/scratch/ansible/next/hos/ansible

ansible-playbook -i hosts/verb_hosts wipe_disks.yml

运行site.yml脚本

cd ~/scratch/ansible/next/hos/ansible

ansible-playbook -i hosts/verb_hosts site.yml

如果运行配置处理器时采用了密码,请改用以下命令,并在提示时输入之前设定的密码

ansible-playbook -i hosts/verb_hosts site.yml --ask-vault-pass

如果有节点部署失败需要单独重新部署

ansible-playbook -i hosts/verb_hosts site.yml --limit @/home/stack/site.retry

ansible-playbook -i hosts/verb_hosts site.yml --limit helion-cp1-comp0002-mgmt

该阶段将运行osconfig命令配置云,并运行hlm-deploy命令部署云,预计需要45分钟,视节点数量而定

检测部署结果

ping任一控制节点的/etc/hosts文件中列出的ip地址

6. 配置Ceph存储

前面的工作将自动安装Ceph软件于指定的节点上,此部分内容描述在此之后的还需进行的手动配置Ceph后端的操作

Ceph集群将会把用于管理网络的网络组保留为默认值,比如MANAGEMENT,改变它将会导致部署失败

Ceph集群监视服务默认安装于控制节点,但也可将其安装于独立的节点

在安装部署云时,需要拷贝的样例配置文件为entry-scale-kvm-ceph/*

仅HOS2.0:当使用--limit选项执行site.yml剧本时,受限节点清单还将包括Ceph的监视服务节点

部署Openstack Cinder后端

登陆Lifecycle Manager

安装Ceph客户端

cd ~/scratch/ansible/next/hos/ansible

ansible-playbook -i hosts/verb_hosts ceph-client-prepare.yml

对已经存在的节点,执行上述命令,对以后新增的节点,使用--limit开关

将会在计算节点上安装Ceph客户端

仅HOS2.0,安装Ceph客户端后将需要手动配置Keyring

拷贝以下文件从Lifecycle Manager节点至所有其它控制节点的相应目录

/etc/ceph/ceph.client.cinder-backup.keyring

/etc/ceph/ceph.client.cinder.keyring

/etc/ceph/ceph.client.glance.keyring

/etc/ceph/client.cinder.key

修改这些文件的权限:chmod 0644 FILES

仅HOS2.1,当Lifecycle Manager为独立节点时:在Lifecycle Manager上安装客户端和配置Keyring文件

需进行配置和设置Keyring文件,使得Lifecycle Manager能够访问Ceph集群

cd ~/scratch/ansible/next/hos/ansible

ansible-playbook -i hosts/verb_hosts ceph-setup-deployer-as-client.yml

将选择其中1台同时具备admin和mon Keyring的控制节点作为管理节点

如果将Ceph做Cinder的存储后端——

编辑~/helion/my_cloud/config/cinder/cinder.conf.j2

# Configure the enabled backends

enabled_backends=ceph-1

[ceph-1]

rbd_secret_uuid = <secret-uuid>

#UUID见~/helion/my_cloud/config/ceph/user_model.yml文件的secret_id——

ceph_user_models:

    - user:

          name: cinder

          type: openstack

          secret_id: 457eb676-33da-42ec-9a8c-9293d545c337

#uuidgen能够产生新UUID,建议修改

pools:

    - name: volumes


rbd_user = <ceph-cinder-user>

rbd_user见~/helion/my_cloud/config/ceph/user_model.yml文件的user name

内容同上,默认为cinder

rbd_pool = <ceph-cinder-volume-pool>

rbd_pool见~/helion/my_cloud/config/ceph/user_model.yml文件的pool name

内容同上,默认为volumes(有多个pool,采用用途为cinder-volume的pool)

rbd_ceph_conf = <ceph-config-file>

Ceph配置文件位置,通常为/etc/ceph/ceph.conf

volume_driver = cinder.volume.drivers.rbd.RBDDriver

volume_backend_name = <ceph-backend-name>

设定一个backend名称,后面将会用到

编辑~/helion/my_cloud/config/nova/kvm-hypervisor.conf.j2,配置下面内容:

[libvirt]

rbd_user = cinder        #用户名见上面

rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337        #UUID见上面

此内容指示libvirt去挂载Ceph,使用从Ceph创建的虚拟机,而不是让内核集成的Ceph功能去挂载它

如果需要将从镜像创建的虚拟机也默认存储在Ceph上,需要添加下面内容:

images_rbd_ceph_conf = /etc/ceph/ceph.conf

images_rbd_pool = vms

images_type = rbd

o 如果将Ceph做Cinder的备份后端——

编辑~/helion/my_cloud/config/cinder/cinder.conf.j2

[DEFAULT]

backup_driver = cinder.backup.drivers.ceph

backup_ceph_conf = <ceph-config-file>

Ceph配置文件位置,通常为/etc/ceph/ceph.conf

backup_ceph_user = <ceph-backup-user>

User见~/helion/my_cloud/config/ceph/user_model.yml文件的Cinder-backup User——

    - user:

          name: cinder-backup

          type: openstack

      pools:

          - name: backups

backup_ceph_pool = <ceph-backup-pool>

Pool见~/helion/my_cloud/config/ceph/user_model.yml文件的pool name

内容同上

o 如果将Ceph做Glance的存储后端——

编辑~/helion/my_cloud/config/glance/glance-api.conf.j2

[glance_store]

stores = rbd

default_store = rbd

#============ RBD Store Options ============

rbd_store_ceph_conf = /etc/ceph/ceph.conf

rbd_store_user = glance

rbd_store_pool = images

rbd_store_chunk_size = 8

注释下面Swift小节的全部选项

#============ SWIFT Store Options ============

注意:HOS默认采用Swift作为Glance的后端

如果已经上载了镜像,需要重新上载到RDB上,并且快照或删除使用了这些镜像的实例然后重新创建它

重新部署Ceph

cd ~/helion/hos/ansible

git add -A

git commit -m "config Ceph backends"

export HOS_USER_PASSWORD_ENCRYPT_KEY=<encryption key>

#如果启用了密码加密

ansible-playbook -i hosts/localhost config-processor-run.yml

ansible-playbook -i hosts/localhost ready-deployment.yml

cd ~/scratch/ansible/next/hos/ansible

ansible-playbook -i hosts/verb_hosts cinder-reconfigure.yml

ansible-playbook -i hosts/verb_hosts nova-reconfigure.yml

ansible-playbook -i hosts/verb_hosts glance-reconfigure.yml

创建卷类型

用admin登陆Openstack Dashboard,转到Admin | System | Volumes页面

Volume Types -> Create Volume Type -> 输入一个名字 -> Create Volume Type

找到刚创建的卷类型,展开右侧的下拉菜单,选择View Extra Specs -> Create

key和value可以用

必须—Key:volume_backend_name;Value:之前在cinder.conf.j2中配置的backend名称

7. 安装后配置

~/scratch/ansible/next/hos/ansible/group_vars存储有admin用户和demo用户的身份凭据

登陆Lifecycle Manager

设置环境变量使得命令行客户端可以正确使用

cd ~/scratch/ansible/next/hos/ansible

ansible-playbook -i hosts/verb_hosts cloud-client-setup.yml

/etc/hosts下不再有Lifecycle Manager的入口,这将会使得访问变慢,可手动添加

127.0.0.1        localhost        hlm

备份SSH Key,位于Lifecycle Manager的~/.ssh目录

附1:配置public证书

(如果采用域名访问Public API,则需配置)

回到安装流程

根据生成的VIP或FQDN来生成证书

openssl req -nodes -newkey rsa:2048 -keyout my-public-cert.key -out my-public-cert.csr -text -subj ‘/C=US/O=Helion Test Certificate/CN=your.domain.com/[email protected]/‘

将生成私钥文件my-public-cert.key和证书请求文件my-public-cert.csr

生成v3 extensions文件

cat > v3_ext.cnf << *EOF*

[ v3_req ]

subjectAltName=DNS:your.domain.com,DNS:10.0.0.1, IP:10.0.0.1

*EOF*

自签名证书

openssl x509 -days 365 -extfile v3_ext.cnf -extensions v3_req -in my-public-cert.csr -signkey my-public-cert.key -req -text -out my-public-cert.crt

将生成证书公钥文件my-public-cert.crt

合成Helion需要的证书

将my-public-cert.key和my-public-cert.crt的内容合并为my-public-cert.crt文件,拷贝到~/helion/my_cloud/config/tls/certs/

my-public-cert.key的内容在前,my-public-cert.crt的内容在后

(如果没有配置证书或者修改证书文件名称)安装或更新证书

修改network_group.yml里相应内容

运行config-processor-run.yml和ready-deployment.yml

部署新证书

cd ~/scratch/ansible/next/hos/ansible

ansible-playbook -i hosts/verb_hosts FND-CLU-deploy.yml

部署CA链

cd ~/scratch/ansible/next/hos/ansible

ansible-playbook -i hosts/verb_hosts horizon-deploy.yml

(可选,如果采用的是FQDN)重新配置nova服务让vnc代理能够应用此更新

cd ~/scratch/ansible/next/hos/ansible

ansible-playbook -i hosts/verb_hosts nova-reconfigure.yml

回到安装流程

作者:小布(ZHC)原HPE

本文出自 “HellionOpenstackDeploy” 博客,转载请与作者联系!

以上是关于Deploy Helion Openstack 2.0 KVM for Ceph的主要内容,如果未能解决你的问题,请参考以下文章

安装HPE Helion Openstack

Deploy sahara on openstack-icehouse

openstack-ansible Chapter 4. Deployment configuration

Ceph 之 使用ceph-deploy部署ceph集群

如何使用 Apache jclouds 访问 HP Helion

Ubuntu20.04利用ceph-deploy部署Ceph