目 錄
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 上。
在第一台控制節點上從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