天天看點

openstack(二)一鍵安裝

  這裡寫一下紅帽的一鍵部署openstack的方式,這裡說一下用packstack根據應答檔案(answer-file)方式自動部署,後續再針對每個服務單獨講解。

一、Preinstallation

1、在安裝之前,說一下官方給出的硬體要求最小配置:

Controller Node: 1 processor, 2 GB memory, and 5 GB storage

Network Node: 1 processor, 512 MB memory, and 5 GB storage

Compute Node: 1 processor, 2 GB memory, and 10 GB storage

2、裝系統時,建議最小化安裝、LVM、block storage 

3、配置好yum源(openstack+rhel)

4、Red Hat Enterprise Linux Openstack與NetworkManager有沖突!!!

開始安裝Openstack之前先關閉NetworkManager并啟動network服務。

5、我們自己搭建的實驗環境,可以把計算節點和存儲、控制節點分開裝,也可以都安裝在一台伺服器上;推薦的最小化配置是兩台,其中一台用作計算,控制、存儲等節點,另一台當做計算節點。

6、如果是用虛拟機搭建的環境,不要忘記開機機器的虛拟化功能,我的兩台機器就是搭在vmware虛拟主機上的。

二、測試環境拓撲:

<a href="http://s4.51cto.com/wyfs02/M02/7C/81/wKiom1bR29KBqIpvAAJz3RXhfz0222.png" target="_blank"></a>

我的測試環境用172.25.4.10(servera)和172.25.4.11(serverb)

三、安裝

1.在servera上安裝openstack-packstack軟體包

<code>#yum -y install openstack-packstack</code>

2.生成應答檔案answer.txt

<code>#packstack --gen-answer-file /root/answer.txt</code>

3.修改自定義應答檔案answer.txt,可根據自己的要求,更改相關配置;E.g.:

<code>CONFIG_DEFAULT_PASSWORD=mypassword                         </code><code>//</code><code>設定預設密碼</code>

<code>CONFIG_HEAT_INSTALL=y                                      </code><code>//</code><code>安裝heat元件</code>

<code>CONFIG_NTP_SERVERS=172.25.254.254                          </code><code>//</code><code>設定時間伺服器</code>

<code>CONFIG_COMPUTE_HOSTS=172.25.4.10,172.25.4.11        </code><code>//</code><code>安裝計算節點的主機</code>

<code>CONFIG_KEYSTONE_ADMIN_PW=redhat                     </code><code>//keystone</code><code>管理者密碼</code>

<code>CONFIG_CINDER_VOLUMES_CREATE=n                      </code><code>//</code><code>預設有一個cinder-volume卷組,不建立測試卷組</code>

<code>CONFIG_LBAAS_INSTALL=y                               </code><code>//</code><code>安裝負載均衡即服務元件</code>

<code>CONFIG_NEUTRON_METERING_AGENT_INSTALL=y              </code><code>//</code><code>使得ceilometer可以檢測到網絡資料</code>

<code>CONFIG_NEUTRON_FWAAS=y                               </code><code>//</code><code>配置防火牆即服務</code>

<code>CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vlan                 </code><code>//</code><code>網絡驅動模型,使用vlan劃分網絡</code>

<code>CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vlan</code>

<code>CONFIG_NEUTRON_ML2_VLAN_RANGES=physnet1:1:1000       </code><code>//</code><code>設定網絡名稱(任意字元即可)及vlan編号範圍</code>

<code>CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex    </code><code>//</code><code>設定網橋名稱(實體網絡綁定網橋)</code>

<code>CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0          </code><code>//</code><code>設定網橋接口(網橋綁定網卡接口)</code>

<code>CONFIG_HORIZON_SSL=y                                 </code><code>//</code><code>安裝Web管理端界面</code>

<code>CONFIG_HEAT_CFN_INSTALL=y                            </code><code>//</code><code>支援相容亞馬遜的HEAT API接口</code>

<code>CONFIG_PROVISION_DEMO=n                              </code><code>//</code><code>部署環境是否為示範環境</code>

4.用應答檔案部署openstack,用的puppet自動部署工具

<code>#packstack --answer-file /root/answer.txt</code>

部署過程大概需要30min左右。

5.部署完成之後,檢視openstack的服務狀态

<code>#cat keystonerc_admin</code>

<code>unset</code> <code>OS_SERVICE_TOKEN</code>

<code>export</code> <code>OS_USERNAME=admin</code>

<code>export</code> <code>OS_PASSWORD=mypassword</code>

<code>export</code> <code>OS_AUTH_URL=http:</code><code>//172</code><code>.25.4.10:5000</code><code>/v2</code><code>.0</code>

<code>export</code> <code>PS1=</code><code>'[\u@\h \W(keystone_admin)]\$ '</code>

<code>export</code> <code>OS_TENANT_NAME=admin</code>

<code>export</code> <code>OS_REGION_NAME=RegionOne</code>

<code>#source keystonerc_admin                 //加載環境變量</code>

<code>#openstack-status                       //檢視狀态</code>

<code>== Nova services ==</code>

<code>openstack-nova-api:                     active</code>

<code>openstack-nova-cert:                    active</code>

<code>openstack-nova-compute:                 active</code>

<code>openstack-nova-network:                 inactive  (disabled on boot)</code>

<code>openstack-nova-scheduler:               active</code>

<code>openstack-nova-conductor:               active</code>

<code>== Glance services ==</code>

<code>openstack-glance-api:                   active</code>

<code>openstack-glance-registry:              active</code>

<code>== Keystone service ==</code>

<code>openstack-keystone:                     inactive  (disabled on boot)</code>

<code>== Horizon service ==</code>

<code>openstack-dashboard:                    301</code>

<code>== neutron services ==</code>

<code>neutron-server:                         active</code>

<code>neutron-dhcp-agent:                     active</code>

<code>neutron-l3-agent:                       active</code>

<code>neutron-metadata-agent:                 active</code>

<code>neutron-lbaas-agent:                    active</code>

<code>neutron-openvswitch-agent:              active</code>

<code>neutron-metering-agent:                 active</code>

<code>== Swift services ==</code>

<code>openstack-swift-proxy:                  active</code>

<code>openstack-swift-account:                active</code>

<code>openstack-swift-container:              active</code>

<code>openstack-swift-object:                 active</code>

<code>== Cinder services ==</code>

<code>openstack-cinder-api:                   active</code>

<code>openstack-cinder-scheduler:             active</code>

<code>openstack-cinder-volume:                active</code>

<code>openstack-cinder-backup:                active</code>

<code>== Ceilometer services ==</code>

<code>openstack-ceilometer-api:               active</code>

<code>openstack-ceilometer-central:           active</code>

<code>openstack-ceilometer-compute:           active</code>

<code>openstack-ceilometer-collector:         active</code>

<code>openstack-ceilometer-alarm-notifier:    active</code>

<code>openstack-ceilometer-alarm-evaluator:   active</code>

<code>openstack-ceilometer-notification:      active</code>

<code>== Heat services ==</code>

<code>openstack-heat-api:                     active</code>

<code>openstack-heat-api-cfn:                 active</code>

<code>openstack-heat-api-cloudwatch:          inactive  (disabled on boot)</code>

<code>openstack-heat-engine:                  active</code>

<code>== Support services ==</code>

<code>mysqld:                                 active    (disabled on boot)</code>

<code>openvswitch:                            active</code>

<code>dbus:                                   active</code>

<code>target:                                 active</code>

<code>rabbitmq-server:                        active</code>

<code>memcached:                              active</code>

<code>== Keystone </code><code>users</code> <code>==</code>

<code>Warning keystonerc not sourced</code>

6、安裝完成功之後,網卡的配置已經自動更改:

<code>[root@servera ~]</code><code># cat /etc/sysconfig/network-scripts/ifcfg-eth0</code>

<code>DEVICE=eth0</code>

<code>DEVICETYPE=ovs</code>

<code>TYPE=OVSPort</code>

<code>OVS_BRIDGE=br-ex</code>

<code>ONBOOT=</code><code>yes</code>

<code>BOOTPROTO=none</code>

<code>[root@servera ~]</code><code># cat /etc/sysconfig/network-scripts/ifcfg-br-ex</code>

<code>DEFROUTE=</code><code>yes</code>

<code>NAME=eth0</code>

<code>IPADDR=172.25.4.10</code>

<code>PREFIX=24</code>

<code>GATEWAY=172.25.4.254</code>

<code>DEVICE=br-ex</code>

<code>OVSBOOTPROTO=none</code>

<code>TYPE=OVSBridge</code>

四、安裝完成

安裝過程中可能遇到的報錯:

1、MissingRequirements: The cinder server should contain a cinder-volumes volume group

解決辦法:建立一個cinder-volumes的vg

<code>#pvcreate /dev/sdb1</code>

<code>#vgcreate cinder-volumes /dev/sdb1</code>

2、NTP報錯:

Error: /usr/sbin/ntpdate 10.13.25.14 returned 1 instead of one of [0]

25 Feb 09:31:47 ntpdate[4771]: the NTP socket is in use, exiting

解決辦法:

<code>#systemctl stop ntp.service</code>

傻白甜犯錯:ntpserver 配置的是本身!!!

3、NTP的另一種報錯:mNotice: /Stage[main]/Main/Exec[ntpdate]/returns: 25 Feb 09:40:42 ntpdate[7217]: no server suitable for synchronization found

1)在server上debug一下:

<code>[root@serverb ~]</code><code># ntpdate -d 10.13.25.14</code>

<code>25 Feb 09:52:40 ntpdate[7260]: ntpdate [email protected] Fri Oct 16 08:51:51 UTC 2015 (1)</code>

<code>Looking </code><code>for</code> <code>host 10.13.25.14 and service ntp</code>

<code>host found : servera.pod4.example.com</code>

<code>transmit(10.13.25.14)</code>

<code>10.13.25.14: Server dropped: no data</code>

<code>server 10.13.25.14, port 123</code>

<code>stratum 0, precision 0, leap 00, trust 000</code>

<code>refid [10.13.25.14], delay 0.00000, dispersion 64.00000</code>

<code>transmitted 4, </code><code>in</code> <code>filter 4</code>

<code>reference </code><code>time</code><code>:    00000000.00000000  Sun, Dec 31 1899 19:00:00.000</code>

<code>originate timestamp: 00000000.00000000  Sun, Dec 31 1899 19:00:00.000</code>

<code>transmit timestamp:  da7993be.d66affb9  Thu, Feb 25 2016  9:52:46.837</code>

<code>filter delay:  0.00000  0.00000  0.00000  0.00000</code>

<code>         </code><code>0.00000  0.00000  0.00000  0.00000</code>

<code>filter offset: 0.000000 0.000000 0.000000 0.000000</code>

<code>         </code><code>0.000000 0.000000 0.000000 0.000000</code>

<code>delay 0.00000, dispersion 64.00000</code>

<code>offset 0.000000</code>

<code>25 Feb 09:52:48 ntpdate[7260]: no server suitable </code><code>for</code> <code>synchronization found</code>

2) 檢查服務是否啟動成功,如果沒啟動,則start:

<code>#systemctl status ntpd.service</code>

3)檢查ntp的版本,如果你使用的是ntp4.2(包括4.2)之後的版本,在restrict的定義中使用了notrust的話,會導緻以上錯誤

# ntpq -c version  

4)檢查防火牆是否屏蔽了udp的123端口

      本文轉自Jx戰壕  51CTO部落格,原文連結:http://blog.51cto.com/xujpxm/1745682,如需轉載請自行聯系原作者

繼續閱讀