Openstack之路(一)基礎環境

Openstack的概述

Openstack是一個由NASA(美國國家航空航天局)和Rackspace合作研發併發起的,以Apache許可證授權的自由軟件和開放源代碼項目。

Openstack是一個開源的雲計算管理平臺項目,由幾個主要的組件組合起來完成具體工作。Openstack支持幾乎所有類型的雲環境,項目目標是提供實施簡單、可大規模擴展、豐富、標準統一的雲計算管理平臺。Openstack通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行集成。

Openstack是一個旨在爲公共及私有云的建設與管理提供軟件的開源項目,項目的首要任務是簡化雲的部署過程併爲其帶來良好的可擴展性。

Openstack官方網站
Openstack官方文檔

Openstack之路(一)基礎環境

Openstack的組件

序號 服務名稱 項目名稱 描述
1 Dashboard Horizon 爲Openstack用戶提供一個Web的自服務Portal
2 Compute service Nova 管理VM的生命週期,是Openstack中最核心的服務
3 Networking service Neutron 提供網絡連接服務,負責創建和管理L2、L3網絡,爲VM提供虛擬網絡和物理網絡連接
4 Object Storage service Swift 提供對象存儲服務。VM可以通過RESTful API存放對象數據。作爲可選的方案,Glance可以將鏡像存放在Swift中;Cinder也可以將Volume備份到Swift中
5 Block Storage service Cinder 爲VM提供塊存儲服務。Cinder提供的每一個 Volume在VM看來就是一塊虛擬硬盤,一般用作數據盤
6 Identity service Keystone 爲Openstack的各種服務提供認證和權限管理服務。簡單的說,Openstack上的每一個操作都必須通過Keystone的審覈
7 Image service Glance 管理VM的啓動鏡像,Nova創建VM時將使用Glance提供的鏡像
8 Telemetry service Ceilometer 提供Openstack監控和計量服務,爲報警、統計或計費提供數據
9 Orchestration service Heat 自動化部署的組件
10 Database service Trove 提供數據庫應用服務

Openstack之路(一)基礎環境

Openstack的安裝

環境規劃

序號 主機名 IP地址 描述 系統版本
1 linux-node1 eth0:192.168.56.11 控制節點 CentOS Linux release 7.2
2 linux-node2 eth0:192.168.56.12 計算節點 CentOS Linux release 7.2
3 linux-node3 eth0:192.168.56.13 計算節點 CentOS Linux release 7.2

系統優化

  • 關閉selinux和iptables
[root@linux-node1 ~]# setenforce 0
[root@linux-node1 ~]# getenforce
Disabled
[root@linux-node1 ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux

[root@linux-node1 ~]# systemctl disable firewalld
[root@linux-node1 ~]# systemctl stop firewalld
  • 同步網絡時間服務器
[root@linux-node1 ~]# ntpdate 0.pool.ntp.org
10 Jan 12:38:28 ntpdate[2446]: adjust time server 120.25.115.20 offset 0.048309 sec
[root@linux-node1 ~]# hwclock
Wed 10 Jan 2018 08:31:31 PM CST  -0.944430 seconds
[root@linux-node1 ~]# crontab -e
####Synchronization Network Time Server####
*/5 * * * * /usr/sbin/ntpdate 0.pool.ntp.org &>/dev/null
[root@linux-node1 ~]# crontab -l
####Synchronization Network Time Server####
*/5 * * * * /usr/sbin/ntpdate 0.pool.ntp.org &>/dev/null

基礎服務安裝

  • 添加Openstack倉庫,安裝Newton版
[root@linux-node1 ~]# yum -y install centos-release-openstack-newton
[root@linux-node1 ~]# rpm -qa centos-release-openstack-newton
centos-release-openstack-newton-1-2.el7.noarch
  • 安裝Openstack客戶端
[root@linux-node1 ~]# yum -y install python-openstackclient openstack-selinux
[root@linux-node1 ~]# rpm -qa python-openstackclient openstack-selinux
python-openstackclient-3.2.1-1.el7.noarch
openstack-selinux-0.8.11-1.el7.noarch

基礎服務MySQL

大多數Openstack服務使用SQL數據庫來存儲信息(生產環境建議做集羣)。 典型地,數據庫運行在控制節點上。當然了Openstack服務也支持其他SQL數據庫,包括PostgreSQL。

  • 安裝MariaDB數據庫
[root@linux-node1 ~]# yum -y install mariadb mariadb-server python2-PyMySQL
[root@linux-node1 ~]# rpm -qa mariadb mariadb-server python2-PyMySQL
python2-PyMySQL-0.7.9-2.el7.noarch
mariadb-10.1.20-1.el7.x86_64
mariadb-server-10.1.20-1.el7.x86_64
  • 創建並編輯/etc/my.cnf.d/openstack.cnf,添加如下內容
[root@linux-node1 ~]# vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.56.11

default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
  • 啓動mariadb,並配置爲開機自啓
[root@linux-node1 ~]# systemctl enable mariadb.service
[root@linux-node1 ~]# systemctl start mariadb.service
[root@linux-node1 ~]# systemctl status mariadb.service
  • 爲了保證數據庫服務的安全性,運行mysql_secure_installation腳本
[root@linux-node1 ~]# mysql_secure_installation

基礎服務RabbitMQ

Openstack使用message queue協調操作和各服務的狀態信息(生產環境建議做集羣)。消息隊列服務一般運行在控制節點上。Openstack支持好幾種消息隊列服務包括RabbitMQ,Qpid, 和ZeroMQ。不過,大多數發行版本的Openstack包支持特定的消息隊列服務。這裏安裝RabbitMQ消息隊列服務,因爲大部分發行版本都支持它。如果你想安裝不同的消息隊列服務,查詢與之相關的文檔。

  • 安裝RabbitMQ消息隊列
[root@linux-node1 ~]# yum -y install rabbitmq-server
[root@linux-node1 ~]# rpm -qa rabbitmq-server
rabbitmq-server-3.6.5-1.el7.noarch
  • 啓動rabbitmq,並配置爲開機自啓
[root@linux-node1 ~]# systemctl enable rabbitmq-server.service
[root@linux-node1 ~]# systemctl start rabbitmq-server.service
[root@linux-node1 ~]# systemctl status rabbitmq-server.service
  • 查看端口狀態,默認監聽在5672端口
[root@linux-node1 ~]# lsof -i:5672
COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
beam    4570 rabbitmq   48u  IPv6  29455      0t0  TCP *:amqp (LISTEN
  • 添加openstack用戶
[root@linux-node1 ~]# rabbitmqctl add_user openstack openstack
Creating user "openstack" ...
  • 配置openstack用戶寫和讀權限
[root@linux-node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
  • 啓動Web管理插件,默認監聽在15672端口
[root@linux-node1 ~]# rabbitmq-plugins list
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status:   * = running on rabbit@linux-node1
 |/
[  ] amqp_client                       3.6.5
[  ] cowboy                            1.0.3
[  ] cowlib                            1.0.1
[  ] mochiweb                          2.13.1
[  ] rabbitmq_amqp1_0                  3.6.5
[  ] rabbitmq_auth_backend_ldap        3.6.5
[  ] rabbitmq_auth_mechanism_ssl       3.6.5
[  ] rabbitmq_consistent_hash_exchange 3.6.5
[  ] rabbitmq_event_exchange           3.6.5
[  ] rabbitmq_federation               3.6.5
[  ] rabbitmq_federation_management    3.6.5
[  ] rabbitmq_jms_topic_exchange       3.6.5
[  ] rabbitmq_management               3.6.5
[  ] rabbitmq_management_agent         3.6.5
[  ] rabbitmq_management_visualiser    3.6.5
[  ] rabbitmq_mqtt                     3.6.5
[  ] rabbitmq_recent_history_exchange  1.2.1
[  ] rabbitmq_sharding                 0.1.0
[  ] rabbitmq_shovel                   3.6.5
[  ] rabbitmq_shovel_management        3.6.5
[  ] rabbitmq_stomp                    3.6.5
[  ] rabbitmq_top                      3.6.5
[  ] rabbitmq_tracing                  3.6.5
[  ] rabbitmq_trust_store              3.6.5
[  ] rabbitmq_web_dispatch             3.6.5
[  ] rabbitmq_web_stomp                3.6.5
[  ] rabbitmq_web_stomp_examples       3.6.5
[  ] sockjs                            0.3.4
[  ] webmachine                        1.10.3
[root@linux-node1 ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  amqp_client
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@linux-node1... started 6 plugins.
[root@linux-node1 ~]# lsof -i:15672
COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
beam    4570 rabbitmq   50u  IPv4  31327      0t0  TCP *:15672 (LISTEN)
  • 瀏覽器訪問192.168.56.11:15672,默認賬號guest,密碼:guest
    Openstack之路(一)基礎環境
    Openstack之路(一)基礎環境

基礎服務Memcached

各類服務的身份認證機制使用Memcached緩存令牌。緩存服務Memecached通常運行在控制節點。在生產部署中,我們推薦聯合啓用防火牆、認證和加密保證它的安全。

  • 安裝Memcached緩存
[root@linux-node1 ~]# yum -y install memcached python-memcached
[root@linux-node1 ~]# rpm -qa memcached python-memcached
memcached-1.4.39-1.el7.x86_64
python-memcached-1.54-3.el7.noarch
  • 編輯/etc/sysconfig/memcached文件,更改監聽地址
[root@linux-node1 ~]# vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 192.168.56.11,::1"
  • 啓動memcached,並配置爲開機自啓
[root@linux-node1 ~]# systemctl enable memcached.service
[root@linux-node1 ~]# systemctl start memcached.service
[root@linux-node1 ~]# systemctl status memcached.service
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章