天天看點

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

Deploy Helion Openstack 2.0 KVM for Ceph

1. 安裝Lifecycle Manager

1 VM 拓撲

基于此拓撲及下面的配置,可以完成部署,可以在ceph 叢集上建立卷并挂載到VM 上。

在第一台控制節點上從HelionCD光牒啟動作業系統

輸入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連通性

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

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

部署Cobbler時需要設定其它節點的作業系統密碼(該密碼将加密儲存在Cobbler),使用者名和該節點相同

使用Cobbler部署其它節點的作業系統

在所有其他節點上啟用PXE網卡的網絡啟動功能,并将第一啟動順序配置為網絡啟動

重新開機所有其它節點

重新開機後自動通過網絡啟動安裝,等待安裝完畢自動關機

修改第一啟動順序為磁盤,并且重新開機

等待節點自動配置并驗證SSH免輸密碼登陸

如果部分節點安裝失敗,需要重新安裝

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

如果沒有nodelist選項,将自動查找該yml檔案中netboot-enabled: True的節點,在重新安裝前可以确認自動查找結果

也可以通過該指令檢視哪些節點啟用了網絡啟動:sudo cobbler system find --netboot-enabled=1

5. 部署Helion

運作配置處理器

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

該步驟需要輸入加密密碼,該密碼用來加密系統産生的敏感資訊,比如:内部服務密碼

在第一個提示中輸入要設定的密碼或已經設定的密碼(已經運作過配置處理器)

在第二個提示中輸入修改後的密碼(如果要修改密碼)或直接按回車忽略(第一次運作或不修改密碼)

在無人值守環境中采用以下指令可以禁用加密

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

部署雲

建立部署目錄

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腳本

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用戶端

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叢集

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上,需要添加下面内容:

p_w_picpaths_rbd_ceph_conf = /etc/ceph/ceph.conf

p_w_picpaths_rbd_pool = vms

p_w_picpaths_type = rbd

o 如果将Ceph做Cinder的備份後端——

[DEFAULT]

backup_driver = cinder.backup.drivers.ceph

backup_ceph_conf = <ceph-config-file>

backup_ceph_user = <ceph-backup-user>

User見~/helion/my_cloud/config/ceph/user_model.yml檔案的Cinder-backup User——

          name: cinder-backup

      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 = p_w_picpaths

rbd_store_chunk_size = 8

注釋下面Swift小節的全部選項

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

注意:HOS預設采用Swift作為Glance的後端

如果已經上載了鏡像,需要重新上載到RDB上,并且快照或删除使用了這些鏡像的執行個體然後重新建立它

重新部署Ceph

git commit -m "config Ceph backends"

export HOS_USER_PASSWORD_ENCRYPT_KEY=<encryption key>

#如果啟用了密碼加密

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使用者的身份憑據

設定環境變量使得指令行用戶端可以正确使用

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

部署新證書

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

部署CA鍊

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

繼續閱讀