设为首页 收藏本站
查看: 1067|回复: 0

[经验分享] Deploy Helion Openstack 2.0 KVM for Ceph

[复制链接]

尚未签到

发表于 2018-6-1 09:56:27 | 显示全部楼层 |阅读模式
  目  录

  1.安装Lifecycle Manager1
  2.配置Lifcecycle Manager1
  3.配置环境2
  4.安装部署裸机2
  5.部署Helion3
  6.配置Ceph存储5
  7.安装后配置10
  附1:配置public证书12
  

DSC0000.png

  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/emailAddress=test@ficticious.org/'
  将生成私钥文件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
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-496884-1-1.html 上篇帖子: 学习OpenStack Mitaka单节点部署笔记 下篇帖子: OpenStack 和 Hadoop 的区别是什么?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表