2015年12月7日 星期一

RHEL 的 OpenStack (一)--利用 PackStack 安裝OpenStack

使用 PackStack 套件:
  1. 使用 answer file 方便管理者,利用安裝器設定系統參數
  2. 使用指令:packstack
    • --gen-answer-file:可產生 answer file
    • --answer-file:可將 answer file ,送給安裝器,以利於安裝 OpenStack!
    • -d:安裝過程除錯!
    • 安裝過程中,如果有錯誤,在除錯完成之後,應重新執行 pactstack !
  3. 記錄檔:
    • /var/tmp/packstack*/
    • /var/log/messages
    • /var/log/yum.log

最低硬體需求:

<Cloud Controller Node>
  • CPU:64-bit X86 Intel-VT or AMD-v
  • Memory:2GB
  • HDD:100GB
  • NIC:GigaEthernet*2

<Compute Node>
  • CPU:64-bit X86 Intel-VT or AMD-v
  • Memory:2GB
  • HDD:50GB
  • NIC:GigaEthernet*2

<Ceph Storage Node>
  • CPU:64-bit X86 Intel-VT or AMD-v
  • Memory/HDD:per 1TB disk space / mininum 1GB RAM
  • NIC:GigaEthernet*2
※PS:練習時,至少二部電腦!一部為 Cloude Controller ,別一部為 Nova compute node !

PackStack answer file 參數表:
參 數說 明
CONFIG_HEAT_INSTALL=y安裝/啟動 Heat Orchestration 服務!需要設定密碼,以及開啟其他項服務!
CONFIG_NTP_SERVERS=10.1.1.1指定NTP伺服器,用來同步時間!
CONFIG_KEYSTONE_ADMIN_PW=redhat設定 keystone 管理者 admin 密碼!
CONFIG_DEFAULT_PASSWORD=redhat針對所有出入口設定相同的密碼!
CONFIG_CINDER_VOLUMES_CREATE=n是否建立Cinder 中的Volume  Group ,用來作為檔案式的儲存媒介!
CONFIG_LBAAS_INSTALL=y是否開啟利用 Packstack 來設定 Neutron 中的 Load-Balancer as a Service!
CONFIG_NEUTRON_METERING_AGENT_INSTALL=y設定 Neutron metering agent,使得 Neutron 資訊可送進Ceilometer telemetry 服務
CONFIG_NEUTRON_FWAAS=y是否開啟 Neutron 設定 Firewall as a Service!
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vlan設定 Neutron ML2 插入的驅動程式!如果有多個項目,可用逗號分開!
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vlan設定 Neutron ML2 租戶的網路類型!如果有多個項目,可用逗號分開!
CONFIG_NEUTRON_ML2_VLAN_RANGES=physnet1:1:1000設定 Neutron 使用的 Vlan 範圍!如果有多個項目,可用逗號分開!
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth1設定實體網路介面對應至 Neutron OVS 橋接網路!
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-eth1:eth1設定 Neutron OVS 橋接網路至實體網路介面!
CONFIG_HEAT_CFN_INSTALL=y是否將PackStack安裝設定 Heat CloudFormation API!
CONFIG_HORIZON_SSL=y為 Horizon 啟動 SSL !
CONFIG_PROVISION_DEMO=n是否提供展示或測試!
CONFIG_SWIFT_INSTALL=n是否安裝/啟動Swift儲存服務!

Open vSwitch 設定:

  • OpenStack 以驅動程式形態,支援 Open vSwitch 功能!
  • OpenStack 常用的兩種橋接網路形態:
    1. br-int:integration bridge 專用於對進出實體的網路封包,執行 Vlan 貼標籤或不貼標籤功能!
    2. br-ex:external bridge 專用於對進出實體的額外網路封包,按規定路徑遞送!
  • 範例:假設 eth0 是 br-ex 的一個 port ,而且有對外連接!

    所以,需新增設定檔:/etc/sysconfig/network-scripts/ifcfg-br-ex
    DEVICE=br-ex
    DEVICETYPE=ovs
    ;;宣告該硬體使用 Open vSwitch
    TYPE=OVSBridge ;;宣告該硬體為 OVS 橋接器
    BOOTPROTO=static
    IPADDR=172.25.0.10
    NETMASK=255.255.255.0
    GATEWAY=172.25.0.254

    網路卡 eth0 設定檔:/etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes

    TYPE=OVSPort ;;宣告該硬體為 OVS 橋接器上的一個 port
    DEVICETYPE=ovs
    OVS_BRIDGE=br-ex ;;宣告該硬體附屬在哪一個 OVS 橋接器上

  • ※PS:使用 RHEL OpenStack 平台時,必須關閉 NetworkManager 服務,改用 network 服務!

  • 設定完成,需要重新啟動 network 服務!
    # systemctl restart network.service

    利用下列指令來檢查
    # ovs-vsctl show

    如果有錯誤,會顯示無網路,請確認設定檔內的設定是否無誤!接下來可刪除錯誤的 bridge !
    # ovs-vsctl del-br eth0


練習1:利用 OpenStack 安裝 Control Node!
  1. # yum install openstack-packstack
  2. # packstack -h | less
  3. # packstack --gen-answer-file /root/answers.txt
  4. # vim /root/answers.txt
    需修改的項目如上表所列!
  5. # packstack --answer-file /root/answers.txt

    ※PS
    :這步驟執行完,將提示下列資訊:
    1. 建立 /root/keystonerc_admin,並提醒你要去公告這個檔案!
    2. 記得修改 /etc/httpd/conf.d/ssl.conf 檔案內的憑證檔目錄位置!
    3. OpenStack DashBoard : https://10.1.1.1/dashboard,帳密在 /root/keystonerc_admin 內
    4. Nagios : http://10.1.1.1/nagios, username : nagiosadmin , 密碼則是一大串
    5. 安裝的相關記錄檔目錄:/var/tmp/packstack/

  6. # openstack-status
  7. # cp /etc/sysconfig/network-scripts/ifcfg-eth0 /root/
  8. # cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/networkk-scripts/ifcfg-br-ex
  9. # vim /etc/sysconfig/network-scripts/ifcfg-br-ex
  10. # vim /etc/sysconfig/network-scripts/ifcfg-eth0
  11. # systemctl restart network.service
  12. # ovs-vsctl show
  13. # hostnamectl set-hostname servera.pod0.example.com

練習2:利用 OpenStack 新增一個 Compute Node!

  1. # vim /root/answers.txt
    修改:
    CONFIG_COMPUTE_HOSTS=10.1.1.1, 10.1.1.2
  2. # packstack --answer-file /root/answers.txt
    ※PS1:記得要先開 10.1.1.2 這部機器,並且開放 root 可以 ssh 連線!
    ※PS2:這一步驟也要一些時間(重新運作)!
  3. # ssh serverb

參考資料:
  1. http://www.server-world.info/en/note?os=CentOS_7&p=openstack_kilo2&f=12
  2. https://openstack.redhat.com/install/quickstart/
  3. https://access.redhat.com/articles/1127153

課後Lab:利用 RDO 網站上的 PackStack 來安裝 OpenStack

參考網址:
  1. https://www.rdoproject.org/install/quickstart/
  2. http://www.flashguides.co.uk/guide/Installing_OpenStack_Kilo_on_CentOS_with_Packstack
  3. http://www.server-world.info/en/note?os=CentOS_7&p=openstack_kilo2&f=12