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的主要内容,如果未能解决你的问题,请参考以下文章
Deploy sahara on openstack-icehouse
openstack-ansible Chapter 4. Deployment configuration