您好,登錄后才能下訂單哦!
本篇博文主要搭建OpenStack架構(gòu)中的keystone組件,之后會依次帶來OpenStack中的glance、nova、neutron、horizon、cinder和虛擬機(jī)的管理操作。在實驗部署之前,先對OpenStack進(jìn)行以下了解!
OpenStack既是一個社區(qū),也是一個項目和一個開源軟件,提供開放源碼軟件,建立公共和私有云,它提供了一個部署云的操作平臺或工具集,其宗旨在于:幫助組織運行為虛擬計算或存儲服務(wù)的云,為公有云、私有云,也為大云、小云提供可擴(kuò)展的、靈活的云計算。
OpenStackd開源項目由社區(qū)維護(hù),包括OpenStack計算(代號為Nova),OpenStack對象存儲(代號為Swift),并OpenStack鏡像服務(wù)(代號Glance)的集合。 OpenStack提供了一個操作平臺,或工具包,用于編排云。
OpenStack當(dāng)前主要有三個組件:計算,存儲,鏡像。
整個OpenStack是由控制節(jié)點,計算節(jié)點,網(wǎng)絡(luò)節(jié)點,存儲節(jié)點四大部分組成。
控制節(jié)點:負(fù)責(zé)對其余節(jié)點的控制,包含虛擬機(jī)建立,遷移,網(wǎng)絡(luò)分配,存儲分配等等
計算節(jié)點:負(fù)責(zé)虛擬機(jī)運行
網(wǎng)絡(luò)節(jié)點:負(fù)責(zé)對外網(wǎng)絡(luò)與內(nèi)網(wǎng)絡(luò)之間的通信
存儲節(jié)點:負(fù)責(zé)對虛擬機(jī)的額外存儲管理等等
控制節(jié)點包括以下服務(wù):
本實驗需三臺虛擬機(jī),分別為控制節(jié)點(包含鏡像服務(wù))、計算節(jié)點、存儲節(jié)點;建議三臺虛擬機(jī)配置2個CPU,內(nèi)存設(shè)置為4G。
主機(jī) | 系統(tǒng) | IP地址 | 角色 |
---|---|---|---|
controller | CentOS7 | 192.168.37.128 | keystone、ntp、mariadb、rabbitmq、memcached、etcd、apache |
compute | CentOS7 | 192.168.37.130 | nova、ntp |
cinder | CentOS7 | 192.168.37.131 | cinder、ntp |
1、關(guān)閉防火墻 關(guān)閉selinux
systemctl stop firewalld.service
setenforce 0
2、分別修改主機(jī)名
hostnamectl set-hostname controller #控制節(jié)點
bash
hostnamectl set-hostname compute #計算節(jié)點
bash
hostnamectl set-hostname cinder #存儲節(jié)點
bash
3、修改hosts文件
vim /etc/hosts
192.168.37.128 controller
192.168.37.130 compute
192.168.37.131 cinder
4、節(jié)點互通測試
ping -c 4 openstack.org #發(fā)送4個包測試官網(wǎng)聯(lián)通
ping -c 4 compute
ping -c 4 openstack.org #計算節(jié)點測試
ping -c 4 controller
ping -c 4 openstack.org #存儲節(jié)點測試
ping -c 4 controller
5、備份默認(rèn)yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
6、下載最新yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
7、安裝所需openstack軟件包
yum install centos-release-openstack-queens -y
yum upgrade -y #更新軟件倉庫
yum install python-openstackclient -y
yum install openstack-selinux -y
##controller節(jié)點##
1、yum安裝chrony軟件包
yum install chrony -y
2、修改chrony配置文件
vim /etc/chrony.conf #文件開頭插入
server controller iburst #自己為時間源點所有節(jié)點向controller節(jié)點同步時間
allow 192.168.37.0/24 #設(shè)置時間同步網(wǎng)段
3、開啟NTP服務(wù)
systemctl enable chronyd
systemctl stop chronyd
systemctl start chronyd
#因chrony服務(wù)本身開機(jī)自啟動,所以需要關(guān)閉后重新開啟
##其他節(jié)點配置##
1、yum安裝chrony軟件包
yum install chrony -y
2、修改chrony配置文件
vim /etc/chrony.conf
server controller iburst #同步controller
3、開啟服務(wù)
systemctl stop chronyd
systemctl start chronyd
4、controller上驗證時鐘同步服務(wù)
chronyc sources
1、yum安裝mariadb
yum install mariadb mariadb-server python2-PyMySQL -y
2、修改mariadb配置文件
vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#以下是新增內(nèi)容
bind-address = 192.168.37.128 #綁定地址controller
default-storage-engine = innodb #默認(rèn)存儲引擎
innodb_file_per_table = on #獨立表空間
max_connections = 4096 #最大連接
collation-server = utf8_general_ci #字符集設(shè)定
character-set-server = utf8
3、開啟mariadb服務(wù),設(shè)置開啟自啟動
systemctl enable mariadb.service
systemctl start mariadb.service
4、數(shù)據(jù)庫基本設(shè)置
mysql_secure_installation
#基本設(shè)置,除設(shè)置密碼為abc123外全部回車
1、yum安裝rabbitmq-server包
yum install rabbitmq-server -y
2、開啟rabbitmq服務(wù),設(shè)置開啟自啟動
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
3、重啟服務(wù)后添加用戶及權(quán)限
rabbitmqctl add_user openstack 123456 #添加用戶
rabbitmqctl set_permissions openstack "." "." ".*"
1、yum安裝memcached包
yum install memcached python-memcached -y
2、修改memcached配置文件
vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 192.168.37.128,::1" #修改監(jiān)聽IP地址
3、開啟memcached服務(wù),設(shè)置開啟自啟動
systemctl enable memcached.service
systemctl start memcached.service
1、yum安裝etcd包
yum install etcd -y
2、修改etcd配置文件,結(jié)果如下:
ETCD_INITIAL_CLUSTER #開啟群集功能:匹配群集中所有url地址(public、admin、internal)
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.37.128:2380" #監(jiān)聽群集服務(wù)端地址
ETCD_LISTEN_CLIENT_URLS="http://192.168.37.128:2379" #宣告客戶端地址
ETCD_NAME="controller"
[Clustering] #匹配群集地址
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.37.128:2380" #控制端地址
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.37.128:2379" #客戶端地址
ETCD_INITIAL_CLUSTER="controller=http://192.168.37.128:2380" #群集名稱設(shè)定
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" #令牌設(shè)定
ETCD_INITIAL_CLUSTER_STATE="new"
3、開啟etcd服務(wù),設(shè)置開機(jī)自啟動
systemctl enable etcd.service
systemctl start etcd.service
1、單獨創(chuàng)建數(shù)據(jù)庫keystone,聲明用戶并授權(quán)
mysql -uroot -p #密碼abc123
create database keystone;
grant all privileges on keystone. to 'keystone'@'localhost' identified by '123456'; #本地用戶授權(quán)
grant all privileges on keystone. to 'keystone'@'%' identified by '123456';
flush privileges; #其他用戶授權(quán)
2、yum安裝軟件包
yum install openstack-keystone httpd mod_wsgi -y
3、編輯keystone配置文件
vim /etc/keystone/keystone.conf
[database]
#737行
connection = mysql+pymysql://keystone:123456@controller/keystone
[token]
#2922行
provider = fernet #安全消息傳遞算法
4、同步數(shù)據(jù)庫
su -s /bin/sh -c "keystone-manage db_sync" keystone
5、初始化數(shù)據(jù)庫
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
6、給管理員設(shè)置密碼,注冊三種訪問方式
keystone-manage bootstrap --bootstrap-password 123456 \
--bootstrap-admin-url http://controller:35357/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne
1、編輯httpd配置文件
vim /etc/httpd/conf/httpd.conf
ServerName controller
2、建立軟連接,使apache識別keystone
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
3、開啟Apache服務(wù),設(shè)置開機(jī)自啟動
systemctl enable httpd.service
systemctl start httpd.service
4、聲明環(huán)境變量
export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
1、創(chuàng)建域Domain
openstack domain create --description "Domain" example
2、創(chuàng)建項目Service Project
openstack project create --domain default --description "Service Project" service
3、創(chuàng)建平臺demo項目
openstack project create --domain default --description "Demo Project" demo
4、創(chuàng)建demo用戶
openstack user create --domain default --password-prompt demo
#輸入密碼:123456
5、創(chuàng)建用戶角色
openstack role create user
6、添加用戶角色到demo項目和用戶
openstack role add --project demo --user demo user
1、取消環(huán)境變量
unset OS_AUTH_URL OS_PASSWORD
2、admin用戶返回的認(rèn)證token
openstack --os-auth-url http://controller:35357/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name admin --os-username admin token issue
#密碼:123456
3、demo用戶返回的認(rèn)證token
openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name demo --os-username demo token issue
#密碼:123456
4、創(chuàng)建admin-openrc腳本
vim admin-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
5、創(chuàng)建demo-openrc腳本
vim demo-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=123456
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
6、使用腳本,返回認(rèn)證token
source ~/admin-openrc
openstack token issue
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。