OpenStack入門篇(六)之OpenStack環境准備


  • 一、Openstack的概述

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

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

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

Openstack官方網站: https://www.openstack.org/

Openstack官方文檔:https://docs.openstack.org/pike/

  • 二、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的安裝

 

1、環境規划

 

序號 主機名 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

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

3、基礎服務安裝

  • 添加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

4、基礎服務MySQL

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

tips:除了Horizon,OpenStack其他組件都需要連接數據庫
除了Horizon和Keystone,其他組件都需要連接RabbitMQ

  • 安裝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  #綁定ip地址

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 NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] Y New password: 123456 Re-enter new password: 123456 Password updated successfully! Reloading privilege tables.. ... Success!

5、基礎服務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

 

 

6、基礎服務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"
  • 編輯/etc/memcached.conf文件並配置這個服務使用控制節點的管理地址。這是為了讓其它節點可以通過管理網絡進行訪問。
[root@linux-node1 ~]# vim /etc/memcached.conf
192.168.56.11
  • 啟動memcached,並配置為開機自啟
[root@linux-node1 ~]# systemctl enable memcached.service
[root@linux-node1 ~]# systemctl start memcached.service
[root@linux-node1 ~]# systemctl status memcached.service

7、linux-node1節點安裝各項服務

①認證服務keystone,wsgi是用於apache與pythone進行通信的模塊

[root@linux-node1 ~]# yum install -y openstack-keystone httpd mod_wsgi

②鏡像服務glance

[root@linux-node1 ~]# yum install -y openstack-glance

③計算服務nova

[root@linux-node1 ~]# yum install -y openstack-nova-api openstack-nova-conductor \   
    openstack-nova-console openstack-nova-novncproxy \   
    openstack-nova-scheduler

④網絡服務neutron

[root@linux-node1 ~]# yum install -y openstack-neutron openstack-neutron-ml2 \   
    openstack-neutron-linuxbridge ebtables

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM