控制節點controller 內存4G 192.168.136.134
計算節點Nova 內存2G 192.168.136.135
1、最基礎的必備環境
[root@controller ~]# ifconfig ens33#檢查網絡是否可用
[root@controller ~]# ping www.baidu.com #檢查網絡是否連外網
[root@controller ~]# yum repolist #檢查yum源是否可用
[root@controller ~]# hostnamectl set-hostname controller.cn #設置主機名
[root@controller ~]# hostname #查看主機名
controller.cn
[root@controller ~]# vim /etc/selinux/config #修改selinux配置
SELINUX=disabled
[root@controller ~]#reboot #必須重啟,修改的selinux才能生效
[root@controller ~]# systemctl disable firewalld #禁止防火墻
[root@controller ~]# systemctl stop firewalld
[root@controller ~]# systemctl status firewalld
[root@controller ~]# systemctl disable NetworkManager#禁止NetworkManager
[root@controller ~]#systemctl stop NetworkManager
[root@controller ~]# systemctl enable network #重啟network服務
[root@controller ~]# systemctl start network
[root@control ~]# ping www.baidu.com #檢查網絡是否連外網
[root@controller ~]# vim /etc/hosts #設置主機名解析
192.168.136.134 openstack.cn openstack #一定要寫對,否則后面有很多坑排錯
[root@controller ~]# vim /etc/environment #設置語言環境,非必須步驟
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
[root@controller ~]# yum -y install chrony #安裝時間同步NTP包
[root@controller ~]# vim /etc/chrony.conf #修改chrony.conf配置文件
server ntp1.aliyun.com iburst #,將原來4個centos的時間刪除,指向阿里云時間同步
allow 0/0 #允許所有主機連接本臺機子,也可以設置其他網段連接
[root@controller ~]#systemctl restart chronyd#重啟ntp服務
[root@controller ~]# chronyc sources -v #檢驗時間源是否生效
^* 120.25.115.20 2 6 377 39 +233us[ +595us] +/- 26ms
將yum源改成在線阿里源
將原來的Centos-Base.repo 更換成阿里的Centos-7.repo 否則在后面部署Nova時會出問題
[root@control ~]#mv -f /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@control ~]#cd /etc/yum.repos.d/
[root@control yum.repos.d]#curl -O http://mirrors.aliyun.com/repo/Centos-7.repo
[root@control yum.repos.d]#curl -O http://mirrors.aliyun.com/repo/epel-7.repo
[root@control yum.repos.d]#yum clean all #清除緩存
[root@control yum.repos.d]#yum makecache
[root@control ~]#yum -y install centos-release-openstack-queens #安裝centos-release-openstack-queens包
[root@control ~]# yum-config-manager --enable openstack-queens#保證centos-release-openstack-queens包可用
[root@control ~]#yum update -y 更新系統及內核
2、手動部署數據庫、消息服務、Etcd服務
[root@controller ~]# yum install python-openstackclient -y #安裝openstack客戶端
1、手動安裝和配置SQL數據庫
[root@controller ~]# yum -y install mariadb mariadb-server python2-PyMySQL #安裝SQL數據庫。通常安裝MariaDB。
[root@controller ~]# /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.136.134 # 值為控制節點的管理網絡IP地址以使得其它節點可以通過管理網絡訪問數據庫
default-storage-engine = innodb#默認存儲引擎
innodb_file_per_table = on#為每個表獨立表空間文件
max_connections = 4096 #最大連接數
collation-server = utf8_general_ci #默認字符集
character-set-server = utf8
[root@controller ~]# systemctl start mariadb #啟動數據庫
[root@controller ~]# systemctl enable mariadb # 加入開機自啟動
[root@controller ~]# mysql_secure_installation#為了保證數據庫服務的安全性,數據庫安全初始化,一定要執行要不然后面時間同步會有坑
Enter current password for root (enter for none): #直接回車即可
Set root password? [Y/n] y#設置數據庫密碼
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y #禁止root遠程登錄 選擇Y
Disallow root login remotely? [Y/n] Y #移除data的數據庫和訪問他的權限 選擇 y
Remove test database and access to it? [Y/n] y #重載權限表 選擇 y
Reload privilege tables now? [Y/n] y
2、手動安裝NoSQL數據庫
①在控制節點上安裝Redis,也可以安裝其他NoSQL數據庫如MongoDB
[root@controller ~]# yum -y install redis python-redis #安裝redis相關軟件包
[root@controller ~]# systemctl start redis.service #啟動redis數據庫
[root@controller ~]# systemctl enable redis.service#加入開機自啟動
②在空節點上安裝memcached
[root@controller ~]# yum -y install memcached python-memcached #安裝memcached相關軟件包
[root@controller ~]# vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 192.168.136.134,127.0.0.1"# 如果沒有啟用IPv6地址需要刪掉::1的地址綁定,ip地址也可以用主機名controller代替,注意在/etc/hosts中ip地址與主機名一定要對應上,否則無法啟動memcached。
[root@controller ~]# systemctl start memcached.service #啟動memcached數據庫
[root@controller ~]# systemctl enable memcached.service#加入開機自動啟
[root@controller ~]# systemctl status memcached.service #查看memcached狀態
[root@controller ~]# netstat -anptl|grep memcached #查看端口號
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 3595/memcached
tcp 0 0 192.168.136.134:11211 0.0.0.0:* LISTEN 3595/memcached
3、手動安裝RabbitMQ
[root@controller ~]# yum install rabbitmq-server -y # 安裝服務
[root@controller ~]# systemctl enable rabbitmq-server.service #將其配置為隨系統啟動
[root@controller ~]# systemctl start rabbitmq-server.service # 啟動消息隊列服務
[root@controller ~]# rabbitmqctl add_user openstack whj1218 #添加用戶openstack,設置密碼 whj1218
[root@controller ~]# rabbitmqctl set_permissions openstack "." "." "." #授權給openstack用戶配置寫和讀權限
[root@controller ~]# netstat -lntup |grep 5672 #查看端口,驗證服務
tcp 0 0 0.0.0.0:25672 0.0.0.0: LISTEN 4338/beam.smp
tcp6 0 0 :::5672 :::* LISTEN 4338/beam.smp
[root@controller ~]# rabbitmq-plugins list #查看支持插件
[root@controller ~]# rabbitmq-plugins enable rabbitmq_management #啟動管理界面(插件)
[root@controller ~]# systemctl restart rabbitmq-server.service 啟用web管理插件,需要重啟服務使之生效
web頁面登陸,輸入http://192.168.136.134:15672 默認用戶名密碼都是guest,驗證其是否有效。
4、在控制節點上安裝Etcd服務
用于自動化配置
[root@controller ~]# yum install etcd -y
[root@controller ~]# vim /etc/etcd/etcd.conf ##修改配置文件,主要修改下面內容,其他原文不變
[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.136.134:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.136.134:2379"
ETCD_NAME="controller"
[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.136.134:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.136.134:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.136.134:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
注意:IP地址不能用controller替代,無法解析
[root@controller ~]#systemctl enable etcd #設置開機自啟動
[root@controller ~]#systemctl start etcd #啟動etcd服務
[root@controller ~]# netstat -anptl|grep etcd #查看端口服務
tcp 0 0 192.168.136.134:2379 0.0.0.0:* LISTEN 7420/etcd
tcp 0 0 192.168.136.134:2380 0.0.0.0:* LISTEN 7420/etcd
tcp 0 0 192.168.136.134:47662 192.168.136.134:2379 ESTABLISHED 7420/etcd
tcp 0 0 192.168.136.134:2379 192.168.136.134:47662 ESTABLISHED 7420/etcd
至此 OpenStack控制節點上的基礎環境配置完成。