OpenStack基礎環境 [一]node
openstack
時間:2016年11月22日
python
openstack是一個雲平臺管理的項目,它不是一個軟件。也就是說咱們可使用openstack
來管理咱們一個數據中心大量資源池。它裏面包含了不少子項目
mysql
openstack包含三大項:計算
網絡
存儲
openstack主要目標是來簡化資源
的管理和分配,把計算
網絡
存儲
。三大項虛擬成三大資源池
,例如須要計算資源我這裏能夠提供,須要網絡資源這裏也能夠提供以及存儲資源的需求,對外提供api
,經過api
進行交互
openstack的設計基本上是按照亞馬遜
進行設置的,咱們能夠將openstack
理解爲開源版本的aws
。由於它不少地方都參考亞馬遜
進行操做的,並且openstack
的不少api
跟亞馬遜是相通的。
openstack火起來的緣由首先是apache
旗下的開源軟件,第二它是由python
進行編寫
(由於python比較簡單,深受技術人員的喜歡)linux
openstack官方網站:http://www.openstack.orgweb
openstack版本是每6
個月發佈一次,每次版本的順序按照A-Z
進行排序。
那麼咱們應該如何選擇版本呢?
咱們選擇版本的時候,除了新版本的那些功能不得不用,那咱們能夠選擇新的版本。其實咱們能夠選擇稍微落後的一個版本。上述圖不夠準確,如今已經達到N版。國內openstack是從E班開始火的。由於E版本當時是比較完善的,國內openstack最火的時候是在G版的時候。如今國內不管是傳統行業仍是互聯網行業都在使用openstacksql
服務名稱 | 項目名稱 | 描述 |
---|---|---|
Dasgviard | Horizon | 基於Openstack API接口使用diango開發的Web管理 |
Compute | Nova | 經過虛擬化技術提供計算資源池 |
Networking | Neutron | 實現了虛擬機的網絡資源管理。 |
Storage (存儲) | ||
Object Storage | Swift | 對象存儲,適用於「一次寫入、屢次讀取」 |
Block Storage | Cinder | 塊存儲,提供存儲資源池 |
Share | Services (共享服務) | |
Identify Service | Keystone | 認證管理 |
Image Service | Glance | 提供虛擬鏡像的註冊和存儲管理 |
Telemetry | Ceilometer | 提供監控和數據採集、計量服務 |
Higher-level Services (高層服務) | ||
Orchestration | Heat | 自動化部署的組件 |
Database Service | Trove | 提供數據庫應用服務 |
解釋:這裏面全部的服務都是圍繞着VM
進行提供服務的,虛擬機須要什麼資源,咱們就提供什麼資源docker
咱們能夠將服務分爲兩大類
,一個是服務的提供者
,一個是服務的消費者
。提供者是我能夠提供某個服務,消費者是我能夠用到這個服務。
openstack默認是沒有建立
虛擬機的功能,是經過調用KVM
來建立虛擬機還能夠調用esxi
來建立虛擬機,總之openstack沒有建立虛擬機的功能都是經過調用其餘服務來進行操做。openstack就是一個框架,它能夠調用其餘的服務,因此openstack也就是一個管理平臺
數據庫
MySQL
:爲各個服務提供數據存儲 RabbitMq
:爲各個服務之間通訊提供認證和服務註冊 Keystone
:爲各個服務器之間通信提供認證和服務註冊 Glance
:爲虛擬機提供鏡像管理 Nova
:爲虛擬機提供計算資源 Neutron
:爲虛擬機提供網絡資源apache
中文文檔:http://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/
提示:這個中文文檔是直接翻譯過來的,因此會有不少不通順的地方vim
特別提示:環境請和我保持一致!!!!!!!!保持一致!保持一致!保持一致!
本次咱們安裝Openstack M版,M版是在2016-4月發佈的
環境
[root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@linux-node1 ~]# uname -r3.10.0-327.36.2.el7.x86_64[root@linux-node1 ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.56.11 linux-node1.abcdocker.com192.168.56.12 linux-node2.abcdocker.com
安裝時間同步
[root@linux-node1 ~]# yum install ntpdate -y[root@linux-node1 ~]# ntpdate time1.aliyun.com[root@linux-node1 ~]# timedatectl set-timezone Asia/Shanghai #設置時區另外一種設置時區方法[root@linux-node1 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
提示: 生產環境中必須保證openstack節點時間同步,若是時間不一樣步是沒法建立虛擬機的
基礎軟件包須要在全部的Openstack
節點上進行安裝,包括控制
節點和計算
節點
一、安裝EPEL倉庫
[root@linux-node1 ~]# rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
二、安裝Openstack倉庫
[root@linux-node1 ~]# yum install -y centos-release-openstack-mitaka#安裝完成後會在/etc/yum.repos.d/下生成CentOS-OpenStack-mitaka.repo
三、安裝Openstack客戶端
[root@linux-node1 ~]# yum install -y python-openstackclient提示:會把openstack經常使用的客戶端都進行安裝
四、安裝openstack SELinux管理包
yum install -y openstack-selinux
若是咱們沒有進行關閉selinux
openstack-selinux
就會自動幫咱們設置
RabbitMq在openstack幾大用處
1.作服務之間相互通信的工具
2.信息同步(異步執行)
若是沒有RabbitMq
服務之間將沒法進行通信
提示:若是是生產環境,數據庫是須要作備份的,不然數據庫一掛數據將會丟失,openstack也將沒法進行提供服務
[root@linux-node1 ~]# yum install -y mariadb mariadb-server python2-PyMySQLcentos7 默認安裝mysql 會在/etc/my.cnf裏面includedir /etc/my.cnf.d/ 因此咱們須要將配置文件放在這個目錄下就能夠生效[root@linux-node1 ~]# cd /etc/my.cnf.d/[root@linux-node1 my.cnf.d]# vim openstack.cnf[mysqld]bind-address = 192.168.56.11 #監聽的IP地址(也能夠寫0.0.0.0)default-storage-engine = innodb #默認存儲引擎[innodb]innodb_file_per_table # 使用獨享表空間max_connections = 4096 #最大鏈接數是4096 (默認是1024)collation-server = utf8_general_ci #數據庫默認校對規則character-set-server = utf8 #默認字符集
[root@linux-node1 ~]# systemctl start mariadb[root@linux-node1 ~]# systemctl enable mariadbCreated symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
啓動後咱們須要進行檢查
爲了保證數據庫服務的安全性,運行mysql_secure_installation
腳本。特別須要說明的是,爲數據庫的root用戶設置一個適當的密碼。
[root@linux-node1 ~]# mysql_secure_installation#它會幫咱們刪除測試數據庫等
數據庫安裝完成後咱們須要給咱們後面所要用到的服務建立用戶並進行受權
建立認證服務的數據庫並進行受權
[root@linux-node1 ~]# mysql -uroot -p123456建立keystone數據庫create database keystone;grant all on keystone.* to 'keystone'@'localhost' identified by 'keystone';grant all on keystone.* to 'keystone'@'%' identified by 'keystone';
建立鏡像數據庫並進行受權
建立glance數據庫create database glance;grant all on glance.* to 'glance'@'%' identified by 'glance';grant all on glance.* to 'glance'@'localhost' identified by 'glance';
建立虛擬化數據庫並進行受權
建立nova數據庫create database nova;grant all on nova.* to 'nova'@'localhost' identified by 'nova';grant all on nova.* to 'nova'@'%' identified by 'nova';
由於Nova有2個項目,因此咱們要建立2個數據庫
建立nova-api數據庫
create database nova_api;rant all on nova_api.* to 'nova_api'@'localhost' identified by 'nova_api';grant all on nova_api.* to 'nova_api'@'%' identified by 'nova_api';
提示:nova_api是新版本纔有
建立網絡資源管理數據庫
create database neutron;grant all on neutron.* to 'neutron'@'%' identified by 'neutron';grant all on neutron.* to 'neutron'@'localhost' identified by 'neutron';
刷新
flush privileges;
安裝消息隊列rabbitmq
[root@linux-node1 ~]# yum install rabbitmq-server -y消息隊列的端口是5672
啓動消息隊列服務並將其配置爲隨系統啓動:
[root@linux-node1 ~]# systemctl enable rabbitmq-server.service[root@linux-node1 ~]# systemctl start rabbitmq-server.service
由於咱們一會要使用openstack
,因此咱們在rabbitmq
上建立一個openstack
用戶
[root@linux-node1 ~]# rabbitmqctl add_user openstack openstack[root@linux-node1 ~]# rabbitmqctl add_user用戶 密碼
給openstack
用戶讀寫權限
[root@linux-node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*".*分別表明配置、寫入、讀取
提示:若是rabbitmq沒有啓動說明主機名沒有解析
開啓rabbitmq監控插件 rabbitmq
有不少插件,咱們可使用rabbitmq-plugins list
查看可用插件 rabbitmq_management
插件提供一個web界面,因此咱們要將它開啓
[root@linux-node1 ~]# rabbitmq-plugins enable rabbitmq_managementrabbitmq啓動以後會監聽15672
訪問路徑:http://ip:15672
默認Username:guest
默認Password:guest
示例圖
提示:這裏不能使用openstack
用戶進行登錄,由於咱們若是想使用openstack用戶進行登錄還須要在web
頁面進行受權
如今咱們就進行rabbitmq
的管理界面了
rabbitmq默認有一個http
的api
,咱們若是想監控 可使用http的api進行監控。裏面基本上想監控的東西都有,能夠經過腳原本獲取經過url
來判斷等。
zabbix相關文章:http://www.abcdocker.com/zabbix
基礎介紹完!