當用戶可以經過互聯網方便的獲取到計算、存儲等服務時,咱們比喻本身使用到了「雲計算」,雲計算並不能被稱爲是一種計算技術,而更像是一種服務模式。每一個運維人員內心都有一個對雲計算的理解,而最廣泛接受的是NIST(美國國家標準與技術研究院)的定義:html
雲計算是一種按使用量付費的服務模式,這是一種可以提供可用的、便捷的、按需求的網絡訪問模式,計算共享池可以快速的爲用戶提供網絡、服務器、存儲、應用軟件及其餘服務,而且只須要花費不多的管理時間。node
、python
OpenStack官方網站:https://www.openstack.org/mysql
Openstack項目的版本按照ABCDEFG……的順序發佈,每6個月更新一次。linux
Openstack最初是由NASA和Rackspace共同發起的雲端計算服務項目,該項目以Apache許可證受權的方式成爲了一款開源產品,目的是將多個組件整合後從而實現一個開源的雲計算平臺,目前Openstack項目正在被紅帽、IBM、AMD、Intel、戴爾、思科、微軟等超過一百家廠商共同研發,並已經支持了幾乎全部的常見雲計算環境,擁有了良好的可擴展性,並且部署搭建Openstack服務也變得十分簡單,目前國內對於雲計算的需求也逐漸增長,華勝天成、高德地圖、京東、阿里巴巴、百度、中興、華爲等中國企業也加入到了Openstack項目研發當中,Openstack項目也正在隨着全球內獲得了衆多廠商的參與支持而快速成熟。sql
Open是開放,Stack則是堆砌之意,合起來就是將衆多的功能服務堆積起來的集合,讓人們經過Openstack雲計算項目,可以將諸如計算能力、存儲、網絡和軟件等資源抽象成服務,以便讓用戶能夠經過互聯網遠程來享用,付費的形式也變得因需而定,調整方便,擁有極強的虛擬可擴展性,是公共和私有云的建設與管理軟件中的優秀開源項目。shell
功能 | 項目名稱 | 描述數據庫 |
計算服務 | Nova | 負責虛擬機的建立、開關機、掛起、遷移、調整CPU、內存等規則。 (核心服務) vim |
對象存儲 | Swift | 用於在大規模可擴展系統中經過內置的冗餘及高容差機制實現對象存儲的系統。(可選服務)centos |
鏡像服務 | Glance | 用於建立、上傳、刪除、編輯鏡像信息的虛擬機鏡像查找及索引系統。 (核心服務) |
身份服務 | Keystone | 爲其餘的功能服務提供身份驗證、服務規則及服務令牌的功能。 (核心服務) |
網絡管理 | Neutron | 用於爲其餘服務提供雲計算的網絡虛擬化技術,可自定義各類網絡規則,支持主流的網絡廠商技術。(核心服務) |
塊存儲 | Cinder | 爲虛擬機實例提供穩定的數據塊存儲的建立、刪除、掛載、卸載、管理等服務。(核心服務) |
圖形界面 | Horizon | 爲用戶提供簡單易用的Web管理界面,下降用戶對功能服務的操做難度。 |
測量服務 | Ceilometer | 收集項目內全部的事件,用於監控、計費或爲其餘服務提供數據支撐。 |
部署編排 | Heat | 實現經過模板方式進行自動化的資源環境部署服務。 |
數據庫服務 | Trove | 爲用戶提供可擴展的關係或非關係性數據庫服務。 |
中間菱形VM是虛擬機,圍繞 VM 的那些長方形表明 OpenStack 不一樣的模塊
本教程部署的openstack版本爲O版
準備兩臺虛擬機,一臺做爲控制節點,一臺做爲計算節點
控制節點(Controller Node): 管理 OpenStack,其上運行的服務有 Keystone、Glance、Horizon 、Neutron、Cinder以及 Nova 和 Neutron 中管理相關的組件。 控制節點也運行支持 OpenStack 的服務,例如 SQL 數據庫(一般是 MySQL)、消息隊列(一般是 RabbitMQ)和網絡時間服務 NTP。
計算節點(Compute Node):其上運行 Hypervisor(默認使用 KVM)。 同時運行 Neutron 服務的 agent,爲虛擬機提供網絡支持。
控制節點IP: 192.168.64.7
計算節點IP: 192.168.64.8
第一步:關閉防火牆
兩臺虛擬機都要操做
[root@ken-node1 ~]# setenforce 0 [root@ken-node1 ~]# systemctl stop firewalld
第二步:域名解析
兩臺節點都須要操做
[root@ken-node1 ~]# vim /etc/hosts [root@ken-node1 ~]# scp /etc/hosts 192.168.64.8:/etc/ The authenticity of host '192.168.64.8 (192.168.64.8)' can't be established. ECDSA key fingerprint is SHA256:EO1X8PdzqfD689Y2WYB6eLvaO/gvrWwhDd0cGDGmsgo. ECDSA key fingerprint is MD5:6d:25:31:df:78:ef:63:1f:2a:2e:23:11:73:bb:fc:9b. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.64.8' (ECDSA) to the list of known hosts. root@192.168.64.8's password: hosts 100% 205 113.9KB/s 00:00 [root@ken-node1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.64.7 ken-node1 192.168.64.8 ken-node2
192.168.254.6 download.yunwei.edu #解析公司內部源(外部用戶沒法使用)
第三步:測試外網連通性
兩臺都操做
個人兩臺節點都是使用的nat模式
[root@ken-node1 ~]# ping -c 2 baidu.com PING baidu.com (123.125.115.110) 56(84) bytes of data. 64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=128 time=11.2 ms 64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=2 ttl=128 time=12.5 ms --- baidu.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 11.241/11.889/12.537/0.648 ms
第四步:使用公司源
兩臺主機都安裝
[root@ken-node1 ~]# cat yum-repo.sh mkdir /etc/yum.repos.d/old mv /etc/yum.repos.d/C* /etc/yum.repos.d/old/ wget -O /etc/yum.repos.d/Centos7-Base-yunwei.repo 192.168.254.6/shell/Centos7-Base-yunwei.repo wget -O /etc/yum.repos.d/epel-yunwei.repo 192.168.254.6/shell/epel-yunwei.repo wget -O /etc/yum.repos.d/rdo-release-yunwei.repo 192.168.254.6/shell/rdo-release-yunwei.repo wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud 192.168.254.6/shell/RPM-GPG-KEY-CentOS-SIG-Cloud wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 192.168.254.6/shell/RPM-GPG-KEY-EPEL-7 yum repolist
第五步:開啓虛擬機的虛擬化
第六步:兩臺虛擬機時間統一
[root@ken-node2 ~]# ntpdate time1.aliyun.com 20 Mar 14:18:49 ntpdate[1160]: step time server 203.107.6.88 offset -28800.262060 sec [root@ken-node2 ~]# date Wed Mar 20 14:18:52 CST 2019
第一步:安裝啓用OpenStack倉庫的包
[root@ken-node1 ~]# yum install centos-release-openstack-ocata -y
第二步:安裝OpenStack客戶端
[root@ken-node1 ~]# yum install python-openstackclient -y
第三步: 安裝 openstack-selinux 軟件包以便自動管理 OpenStack 服務的安全策略
[root@ken-node1 ~]# yum install openstack-selinux -y
第一步:安裝軟件包
[root@ken-node1 ~]# yum install mariadb mariadb-server python2-PyMySQL -y
第二步:建立並編輯 /etc/my.cnf.d/openstack.cnf,而後完成以下動做:
在 [mysqld] 部分,設置 ``bind-address``值爲控制節點的管理網絡IP地址以使得其它節點能夠經過管理網絡訪問數據庫:
[root@ken-node1 ~]# cat /etc/my.cnf.d/openstack.cnf [mysqld] bind-address = 192.168.64.7 #綁定控制節點IP default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8
第三步:啓動數據庫服務,並將其配置爲開機自啓
[root@ken-node1 ~]# systemctl enable mariadb.service Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. [root@ken-node1 ~]# systemctl start mariadb.service
第四步:爲了保證數據庫服務的安全性,運行``mysql_secure_installation``腳本
[root@ken-node1 ~]# mysql_secure_installation
第一步:安裝
[root@ken-node1 ~]# yum install rabbitmq-server -y
第二步:啓動消息隊列服務並將其配置爲隨系統啓動
[root@ken-node1 ~]# systemctl enable rabbitmq-server.service Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service. [root@ken-node1 ~]# systemctl start rabbitmq-server.service
第三步:添加 openstack 用戶
密碼爲openstack
[root@ken-node1 ~]# rabbitmqctl add_user openstack openstack Creating user "openstack" ...
第四步:給``openstack``用戶配置寫和讀權限
[root@ken-node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*" Setting permissions for user "openstack" in vhost "/" ...
第一步:安裝
[root@ken-node1 ~]# yum install memcached python-memcached -y
第二步:編輯配置文件/etc/sysconfig/memcached
[root@ken-node1 ~]# vim /etc/sysconfig/memcached [root@ken-node1 ~]# cat /etc/sysconfig/memcached PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1,::1,192.168.64.7" #後面添加Ip便可
第三步:啓動
[root@ken-node1 ~]# systemctl enable memcached.service Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service. [root@ken-node1 ~]# systemctl start memcached.service
至此,全部的組件已經安裝完畢,下節開始安裝配置認證服務!