OpenStack Train 安裝過程記錄(一):基礎環境準備

規劃

本次安裝參照官網文檔進行安裝,使用的是當前最新版 Train。
本次安裝是在 VMware 環境下進行安裝,使用 CentOS 7.4 系統,最小化安裝。

硬件配置

官方建議最低配置:

  • 控制節點:1 個處理器,4 GB內存,5 GB存儲
  • 計算節點:1 個處理器,2 GB內存,10 GB存儲

IP規劃

本次安裝僅使用了一張管理網卡,使用Vmware 的 NAT 模式,機器可以直接訪問互聯網:

  • controller:10.1.1.128
  • conpute1:10.1.1.129

修改 hosts 解析

兩臺主機都配置 controller 的解析

# vim /etc/hosts,添加 controller 的解析
10.1.1.128 controller

驗證:

[root@controller ~]# ping controller
PING controller (10.1.1.128) 56(84) bytes of data.
64 bytes from controller (10.1.1.128): icmp_seq=1 ttl=64 time=0.061 ms
64 bytes from controller (10.1.1.128): icmp_seq=2 ttl=64 time=0.027 ms
^C
--- controller ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.027/0.044/0.061/0.017 ms

掛載安裝磁盤,配置本地源

# 掛載鏡像到 /mnt,rc.local 會在用戶登陸之前讀取,在每次系統啓動時都會執行一次
mount /dev/cdrom /mnt
echo 'mount /dev/cdrom /mnt' >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
# 配置本地源
echo '[local]
name=local
baseurl=file:///mnt
gpgcheck=0' > /etc/yum.repos.d/local.repo

安裝基礎服務

NTP 時間同步

修改控制節點爲時間服務器,控制節點與公網同步,計算節點和控制節點同步
控制節點:

# 安裝服務
yum install chrony -y
# 編輯配置文件:vim /etc/chrony.conf
# 刪除自帶的服務器,使用公網時間服務器
server pool.ntp.org iburst
# 允許本地網絡訪問
allow 10.1.1.0/24
# 修改配置文件後開啓服務,設置開機啓動
systemctl enable chronyd.service
systemctl start chronyd.service

計算節點配置文件只修改服務器地址,同樣設置爲開機啓動:

# 編輯配置文件:vim /etc/chrony.conf
# 刪除自帶的服務器,使用控制節點時間服務器
server 10.1.1.128 iburst

驗證:

[root@compute1 ~]#  chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? controller                    0   9     0     -     +0ns[   +0ns] +/-    0ns

安裝 OpenStack 包

所有節點都需要安裝,即控制節點、計算節點。
從當前源中查找 OpenStack repo :

[root@controller ~]# yum search centos-release-openstack
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * centos-ceph-nautilus: mirrors.huaweicloud.com
 * centos-nfs-ganesha28: mirror.bit.edu.cn
 * centos-openstack-train: mirror.bit.edu.cn
 * centos-qemu-ev: mirror.bit.edu.cn
 * extras: mirrors.huaweicloud.com
 * updates: mirror.bit.edu.cn
======================================== N/S matched: centos-release-openstack ========================================
centos-release-openstack-queens.noarch : OpenStack from the CentOS Cloud SIG repo configs
centos-release-openstack-rocky.noarch : OpenStack from the CentOS Cloud SIG repo configs
centos-release-openstack-stein.noarch : OpenStack from the CentOS Cloud SIG repo configs
centos-release-openstack-train.noarch : OpenStack from the CentOS Cloud SIG repo configs

  Name and summary matches only, use "search all" for everything.

安裝 Train 版本的 repo:

yum install -y centos-release-openstack-train.noarch

安裝完成後,會在系統路徑中看到相關的 repo 文件:

[root@controller ~]# ls /etc/yum.repos.d/
CentOS-Base.repo           CentOS-Debuginfo.repo  CentOS-NFS-Ganesha-28.repo   CentOS-Sources.repo         local.repo
CentOS-Ceph-Nautilus.repo  CentOS-fasttrack.repo  CentOS-OpenStack-train.repo  CentOS-Storage-common.repo
CentOS-CR.repo             CentOS-Media.repo      CentOS-QEMU-EV.repo          CentOS-Vault.repo

更新包:

yum upgrade

安裝 OpenStack client 和 openstack-selinux。

注:HEL和CentOS默認情況下啓用SELinux。安裝openstack-selinux軟件包以自動管理OpenStack服務的安全策略。

yum install python-openstackclient openstack-selinux -y

控制節點需要安裝的服務

數據庫

  1. 安裝:
    yum install mariadb mariadb-server python2-PyMySQL -y
    
  2. 編輯配置文件/etc/my.cnf.d/openstack.cnf,添加以下內容:
    [mysqld]
    bind-address = 10.0.0.11
    
    default-storage-engine = innodb
    innodb_file_per_table = on
    max_connections = 4096
    collation-server = utf8_general_ci
    character-set-server = utf8
    
  3. 完成安裝,開啓服務並設置爲開機啓動
    systemctl enable mariadb.service
    systemctl start mariadb.service
    
  4. 初始化數據庫,設置密碼
    mysql_secure_installation
    
    這裏我用的是空密碼,選項順序是:n y y y y y

消息隊列

OpenStack 使用消息隊列來協調服務之間的操作和狀態信息,默認使用的是rabbitmq

  1. 安裝並啓動服務

    yum install rabbitmq-server
    systemctl enable rabbitmq-server.service
    systemctl start rabbitmq-server.service
    
  2. 添加用戶併爲用戶配置授權

    # 用戶名 openstack 密碼 RABBIT_PASS
    rabbitmqctl add_user openstack RABBIT_PASS
    # 爲用戶配置讀、寫、訪問權限
    rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    
  3. 安裝 web 管理(非必需)

    rabbitmq-plugins enable rabbitmq_management
    
  4. 驗證安裝
    rabbitmq 服務使用的是 5672 和 25672 端口,web 端使用 15672 端口
    可以通過netstat -nltp | grep 5672來查看端口是否已監聽

    注:最小化安裝沒有 netstat 命令,可以通過 yum install net-tools -y來安裝

    [root@controller ~]# netstat -nltp | grep 5672
    tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      1208/beam.smp       
    tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      1208/beam.smp       
    tcp6       0      0 :::5672                 :::*                    LISTEN      1208/beam.smp 
    

    通過http://controller_ip:15672來訪問,默認賬號密碼是 guest,我的控制節點 IP 是 10.1.1.128,訪問如下:

    注:如果端口開通,但是無法訪問,一般情況是防火牆限制,請添加策略或直接關閉,我是直接關閉:systemctl stop firewalld

    rabbitmq 網頁

Memcached

  1. 安裝

    yum install memcached python-memcached -y
    
  2. 編輯配置文件 /etc/sysconfig/memcached,允許其他節點來訪問 memcached,0.0.0.0表示誰都可以訪問。

    OPTIONS="-l 0.0.0.0"
    
  3. 啓動服務

    systemctl enable memcached.service
    systemctl start memcached.service
    

    驗證:
    使用netstat -nltup | grep 11211查看 端口是否已監聽。

Etcd

OpenStack服務可以使用 Etcd 進行分佈式鍵鎖定,存儲配置,跟蹤服務活動性和其他情況。

  1. 安裝

    yum install etcd -y
    
  2. 編輯配置文件/etc/etcd/etcd.conf,替換ETCD_INITIAL_CLUSTER, ETCD_INITIAL_ADVERTISE_PEER_URLS, ETCD_ADVERTISE_CLIENT_URLS, ETCD_LISTEN_CLIENT_URLS幾項內容爲管理節點的 IP。

    #[Member]
    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="http://10.1.1.128:2380"
    ETCD_LISTEN_CLIENT_URLS="http://10.1.1.128:2379"
    ETCD_NAME="controller"
    #[Clustering]
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.1.1.128:2380"
    ETCD_ADVERTISE_CLIENT_URLS="http://10.1.1.128:2379"
    ETCD_INITIAL_CLUSTER="controller=http://10.1.1.128:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
    ETCD_INITIAL_CLUSTER_STATE="new"
    
  3. 開啓服務

    systemctl enable etcd
    systemctl start etcd
    

    驗證:
    使用netstat -nltup | grep 23查看 2379、2380 端口是否已監聽。

至此,OpenStack 需要的基礎環境已經搭建完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章