CentOS7安裝OpenStack(Rocky版)-01.控制節點的系統環境准備


分享一下Rocky版本的OpenStack安裝管理經驗:

OpenStack每半年左右更新一版,目前是版本是201808月發布的版本-R版(Rocky),目前版本安裝方法優化較好,不過依然是比較復雜

官方文檔地址:https://docs.openstack.org/install-guide/openstack-services.html

本文主要分享控制節點的環境配置方法:

----------------  完美的分割線  ------------------

1.0.系統環境

1)生產測試應用的服務器最好是物理機,虛擬目前可以完成搭建測試體驗

2)系統選擇是目前的最新版本:CentOS Linux release 7.5.1804 (Core) 

3)控制節點Controller :192.168.1.81
      計算節點Nova:192.168.1.82

1.1.配置域名解析 

1)配置主機名

# 主機名設置好就不能修改,否則會出問題,控制節點和計算節點配置相同,且都需要配置

hostname openstack01.zuiyoujie.com
hostname
echo "openstack01.zuiyoujie.com"> /etc/hostname
cat /etc/hostname

2)配置主機名解析

vim /etc/hosts
-----------------------------------
192.168.1.81    openstack01.zuiyoujie.com controller
192.168.1.82    openstack02.zuiyoujie.com compute02 block02 object02
-----------------------------------

# 配置主機名的FQDN格式,和集群內部角色名稱方便后續配置

1.2.關閉防火牆和selinux

1)關閉iptables

# 在CentOS7上面是firewalld

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

2)關閉 selinux

setenforce 0
getenforce
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
grep SELINUX=disabled /etc/sysconfig/selinux

1.3.配置時間同步

1)在控制端配置時間同步服務

yum install chrony -y

2)編輯配置文件確認有以下配置

vim /etc/chrony.conf
--------------------------------
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
allow 192.168.1.0/24
--------------------------------

3)重啟ntp服務,並配置開機自啟動

systemctl restart chronyd.service
systemctl status chronyd.service
systemctl enable chronyd.service
systemctl list-unit-files |grep chronyd.service

4)設置時區,同步時間

timedatectl set-timezone Asia/Shanghai
chronyc sources
timedatectl status

# 配置完成,如下顯示

[root@openstack01 ~]# chronyc sources                  
210 Number of sources = 2
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
==================================================================================
^* 120.25.115.20                 2   6    17     9    +17ms[  +22ms] +/-   34ms
^+ 203.107.6.88                  2   6    17     9  +3029us[+8251us] +/-   54ms
[root@openstack01 ~]# timedatectl status
      Local time: 一 2018-10-22 15:13:51 CST
  Universal time: 一 2018-10-22 07:13:51 UTC
        RTC time: 一 2018-10-22 07:13:52
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

1.4.配置相關yum源 

1)配置阿里雲的base和epel源

mv -f /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2)安裝openstack-rocky的倉庫

yum install centos-release-openstack-rocky -y
yum clean all
yum makecache

# 也可以手動創建OpenStack的阿里雲yum源地址

vim /etc/yum.repos.d/CentOS-OpenStack-Rocky.repo
----------------------------------
[centos-openstack-rocky]
name=CentOS-7 - OpenStack rocky
baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud

[centos-openstack-rocky-test]
name=CentOS-7 - OpenStack rocky Testing
baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
gpgcheck=0
enabled=0

[centos-openstack-rocky-debuginfo]
name=CentOS-7 - OpenStack rocky - Debug
baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud

[centos-openstack-rocky-source]
name=CentOS-7 - OpenStack rocky - Source
baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud

[rdo-trunk-rocky-tested]
name=OpenStack rocky Trunk Tested
baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/rdo-trunk-rocky-tested/
gpgcheck=0
enabled=0
-----------------------------------

3)更新軟件包

yum update -y

4)安裝openstack客戶端相關軟件

yum install python-openstackclient openstack-selinux -y

1.5.在控制節點安裝數據庫

# 可以修改系統內核更改最大連接數和文件句柄數

1)安裝mariadb相關軟件包

# CentOS7.5默認數據庫為maraidb

yum install mariadb mariadb-server MySQL-python python2-PyMySQL -y

2)創建openstack的數據庫配置文件

vim /etc/my.cnf.d/mariadb_openstack.cnf
# 在[mysqld]添加以下配置
-----------------------------------
[mysqld]
bind-address = 0.0.0.0
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
init-connect = 'SET NAMES utf8'
-----------------------------------

# 配置解釋:

default-storage-engine = innodb    默認存儲引擎
innodb_file_per_table            使用獨享表空間模式,每一個表都會建一個表空間,都會有索引文件,查索引快,共享表空間,共用一個表空間和索引,如果有損壞很難修復,比如說zabbix用到的數據庫如果不使用的獨享表空間,很難進行優化
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

3)啟動數據庫設置開機啟動

systemctl restart mariadb.service
systemctl status mariadb.service 

systemctl enable mariadb.service 
systemctl list-unit-files |grep mariadb.service

4)初始化數據庫並重新啟動

# 設置密碼,默認密碼為空,然后輸入密碼123456,一路y回車

/usr/bin/mysql_secure_installation                                                                 
systemctl restart mariadb.service

# 注意:生產環境可以使用pwgen工具生成數據庫密碼

openssl rand -hex 10

5)創建openstack相關數據庫,進行授權

# 測試下數據庫,相關的數據庫在需要時單獨創建

mysql -p123456
-----------------------------------
flush privileges; show databases; select user,host from mysql.user; exit -----------------------------------

# 至此,數據庫配置完畢

1.6.在控制節點安裝消息隊列rabbitmq

消息隊列( MQ)全稱為 Message Queue, 是一種應用程序對應用程序的通信方法。應用程序通過讀寫出入隊列的消息(針對應用程序的數據)來通信,而無需專用連接來鏈接它們。
消息傳遞指的是程序之間通過在消息中發送數據進行通信,而不是通過直接調用彼此來通信,直接調用通常是用於諸如遠程過程調用的技術。排隊指的是應用程序通過 隊列來通信。
隊列的使用除去了接收和發送應用程序同時執行的要求。
RabbitMQ 是一個在 AMQP 基礎上完整的,可復用的企業消息系統。他遵循 Mozilla Public License 開源協議。

1)安裝rabbitmq-server

yum install rabbitmq-server -y

2)啟動rabbitmq,並配置自啟動

# 端口5672,15672,用於拍錯

systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.service

systemctl enable rabbitmq-server.service
systemctl list-unit-files |grep rabbitmq-server.service

3)創建消息隊列中openstack賬號及密碼

# 添加openstack用戶和密碼,配置用戶權限,配置讀,寫權限

rabbitmqctl add_user openstack openstack
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
rabbitmqctl set_permissions -p "/" openstack ".*" ".*" ".*"

4)啟用rabbitmq_management插件實現 web 管理

# 查看支持的插件

rabbitmq-plugins list

# 啟用web管理插件,需要重啟服務使之生效

rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server.service
rabbitmq-plugins list
lsof -i:15672

5)瀏覽器訪問RabbitMQ進行測試

訪問地址:http://192.168.1.81:15672

# 默認用戶名密碼都是guest
# web界面可以管理創建用戶,管理權限

 

# rabbitmq配置完畢

1.7.在控制節點上安裝Memcached

認證服務認證緩存使用Memcached緩存令牌。緩存服務memecached運行在控制節點。在生產部署中,推薦聯合啟用防火牆、認證和加密保證它的安全。

1)安裝Memcached用於緩存令牌

yum install memcached python-memcached -y

2)修改memcached配置文件

vim /etc/sysconfig/memcached
----------------------------------
OPTIONS="-l 127.0.0.1,controller"
----------------------------------

# 如果沒有啟用IPv6地址需要刪掉::1的地址綁定

3)啟動memcached並設置開機自啟動

systemctl start memcached.service
systemctl status memcached.service
netstat -anptl|grep memcached

systemctl enable memcached.service
systemctl list-unit-files |grep memcached.service

# memcached參數說明:

-d選項是作為守護進程在后台運行 
-m是分配給Memcache使用的內存數量,單位是MB,我這里是10MB, 
-u是運行Memcache的用戶,我這里是root, 
-l是監聽的服務器IP地址,如果有多個地址的話 
-p是設置Memcache監聽的端口,我這里設置了12000,最好是1024以上的端口, 
-c選項是最大運行的並發連接數,默認是1024,我這里設置了256,按照你服務器的負載量來設定, 
-P是設置保存Memcache的pid文件
-vv是以very vrebose模式啟動,將調試信息和錯誤輸出到控制台

# 至此,memcached配置完畢

1.8.在控制節點上安裝Etcd服務

# 這個Etcd服務是新加入的,用於自動化配置

1)安裝etcd服務

yum install etcd -y

2)修改etcd配置文件

vim /etc/etcd/etcd.conf
-----------------------------------
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.1.81:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.1.81:2379"
ETCD_NAME="controller"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.81:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.81:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.1.81:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
------------------------------------

# 注意上面的IP地址不能用controller替代,無法解析

3)啟動etcd並設置開機自啟動

systemctl start etcd.service
systemctl status etcd.service
netstat -anptl|grep etcd

systemctl enable etcd.service
systemctl list-unit-files |grep etcd.service

# 至此,控制節點controller就完成基礎環境的配置,下面可以開始安裝 openstack 的組件

# 虛擬機的話配置完成可以關機做快照

======== 完畢,呵呵呵呵 ========

附:openstack計算節點的系統環境配制方法:https://www.cnblogs.com/tssc/p/9857647.html


免責聲明!

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



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