利用Devstack 可以安裝快速openstack,但為了更好的理清openstack,本文使用手動安裝。
參考
安裝版本為Queue 版本,最小的openstack需安裝以下組件:
- Identity service – keystone installation for Queens
- Image service – glance installation for Queens
- Compute service – nova installation for Queens
- Networking service – neutron installation for Queens
建議安裝的軟件包為:
- Dashboard – horizon installation for Queens
- Block Storage service – cinder installation for Queens
安裝環境
設置主機名及IP
- 編輯 /etc/hosts
IP controller
即 "IP地址,域名,主機名"
其中域名可以省略,不要刪除127.0.0.1項。
192.168.125.115 controller
網絡時間同步協議(NTP)
- 安裝包
yum install chrony
- 編輯chrony.conf文件
在/etc/chrony.conf文件中寫入以下內容
server NTP_SERVER iburst
NTP_SERVER 為主機名或IP地址
server 192.168.125.115 iburst
- 保證其他服務節點可以訪問控制節點的chrony daemon,需要在同一個chrony.conf文件中寫入以下內容
allow 10.0.0.0/24
將10.0.0.0/24 替換為相對的子網
allow 192.168.125.0/24
4.重啟NT服務
systemctl enable chronyd.service
systemctl start chronyd.service
SQL 數據庫
大多數OpenStack服務使用SQL數據庫來存儲信息。數據庫通常在controller節點上運行。本指南中的過程根據發行版使用MariaDB或MySQL。
- 安裝相應軟件包
yum install mariadb mariadb-server python2-PyMySQL
- 創建并修改/etc/my.cnf.d/openstack.cnf文件,并新增[mysql]字段,并將bind-address設置為管理節點地址,并將編碼方式設置未utf8,修改內容如下
[mysqld]
# 監聽地址,0.0.0.0設置為全部可以監聽
# 可以設置未controller的IP地址
bind-address = 0.0.0.0
# 默認存儲引擎innodb
default-storage-engine = innodb
# 設置獨享的表空間,如果不設置,會是共享表空間
innodb_file_per_table = on
# 最大連接數
max_connections = 4096
# 校對規則
collation-server = utf8_general_ci
# 數據庫建庫字符集
character-set-server = utf8
- 啟動服務,并設置為開機啟動
# 設置為開機啟動
systemctl enable mariadb.service
# 啟動服務
systemctl start mariadb.service
- 執行mysql_secure_installation腳本設置安全屬性,并為root帳號設置合適密碼
mysql_secure_installation
安裝openstack相關包
- 安裝包
yum install centos-release-openstack-queens
- 更新軟件包
yum upgrade
- 安裝OpenStack client
yum install python-openstackclient
- RHEL and CentOS 默認啟動了 SELinux 安裝openstack-selinux為openstack服務器自動管理安全策略
yum install openstack-selinux
消息隊列RabbitMQ
OpenStack使用消息隊列來協調服務之間的操作和狀態信息。
消息隊列服務通常在控制器節點上運行。OpenStack支持多個消息隊列服務,包括RabbitMQ、Qpid和ZeroMQ。但是,大多數penStack的發行版都支持特定的消息隊列服務。因為大多數發行版均支持RabbitMQ消息隊列服務,故安裝RabbitMQ消息隊列
- 安裝包
yum install rabbitmq-server
- 啟動消息隊列并設置為開機啟動
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
- 添加openstack用戶
rabbitmqctl add_user openstack RABBIT_PASS
RABBIT_PASS 替換為合適的密碼
- 許可設定,未openstack用戶添加讀寫權限
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
安裝Memcached
服務的身份服務身份驗證機制使用Memcached緩存令牌。memcached服務通常在控制器節點上運行。
- 安裝相應軟件包
yum install memcached python-memcached
- 編寫文件/etc/sysconfig/memcached
確定服務使用的是controller節點的management IP地址,以使其他節點可以通過management網絡訪問控制節點
OPTIONS="-l 127.0.0.1,::1,controller"
更改之前的OPTIONS="-l 127.0.0.1,::1".
- 開啟Memcached服務并設為開機啟動
systemctl enable memcached.service
systemctl start memcached.service
Etcd
OpenStack服務可以使用Etcd,這是一種分布式可靠的鍵值存儲,用于分布式鍵鎖定、存儲配置、跟蹤服務實時性和其他場景。
- 安裝相應軟件包
yum install etcd
- 編寫/etc/etcd/etcd.conf 文件并設置以下字段 ETCD_INITIAL_CLUSTER, ETCD_INITIAL_ADVERTISE_PEER_URLS, ETCD_ADVERTISE_CLIENT_URLS, ETCD_LISTEN_CLIENT_URLS.使其他節點可以連接值管理網絡
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.125.115:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.125.115:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.125.115:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.125.115:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.125.115:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
其中10.0.0.11為控制節點的網絡,需改成自己的IP地址
- 啟動服務
systemctl enable etcd
systemctl start etcd