• 192.168.205.7: as Chrony, DNS and YUM Source server(爲了安裝更快,自建yum源) • 192.168.205.147: as DataBase, install MariaDB, RabbitMQ, Memcached • 192.168.205.167: as controller, install keystone, placement, nova, neutron, dashboard • 192.168.205.187: as compute node, install neutron agent and nova agent
注:全部操做系統默認停用firewalld,iptable爲空,關閉selinuxnode
• OS: centos 7 1810 with mini install for controller and SQL server • OS: CentOS 7 1511 with mini install for compute node • Openstack Minimal deployment for Stein • mariadb-10.3.10
注:其它未註明均爲yum 安裝python
• 最小化安裝openstack stein最新版本 • 安裝完成後各組件正常運行 • 測試成功創建實列並運行 • 經過運行實列測試基本的網絡功能
1. 安裝前的環境準備 2. 安裝keystone 3. 安裝glance鏡像服務 4. 安裝placement 5. 安裝Nova on controller 6. 安裝Nova on compute node 7. 安裝Neutron on controller node 8. 安裝Neutron on compute node 9. 安裝dashboard 10. 驗證測試
安裝的準備工做很重要,由於openstack服務很是多,服務之間的依賴關係緊密,合理的規劃不會導至安裝出現問題,不然會出現各類的問題。mysql
#yum install chrony #systemctl start chronyd #cat /etc/chrony.conf server 192.168.205.7 iburst #systemctl status chronyd #chronyc sources -v #檢查chrony時間是否同步,看到^*爲同步,不然沒有同步
#cat /etc/hosts 192.168.205.167 controller1 192.168.205.147 master 192.168.205.187 node1
域名:flex.net name server 192.168.205.7 A stack.flex.net 192.168.205.167 controller1 A dbs.flex.net 192.168.205.147 database, memcached, rabbitMQ 同進DNS也作爲轉發服務器爲yum提像安裝軟件
eth0爲管理和API的網絡 #cat ifcfg-eth0 NAME="eth0" DEVICE="eth0" ONBOOT=yes BOOTPROTO=static IPADDR=192.168.205.x NETMASK=255.255.255.0 TYPE=Ethernet eth1爲租戶tenant網絡使用,不配IP,設置成none #cat ifcfg-eth1 NAME="eth1" DEVICE="eth1" ONBOOT=yes BOOTPROTO=none eth2爲外網安裝yum源使用,使用nat方式,同時將dns設置爲內網的dns: 192.168.205.7 #cat ifcfg-eth2 NAME="eth2" DEVICE="eth2" ONBOOT=yes BOOTPROTO=static IPADDR=172.18.18.x NETMASK=255.255.255.0 GATEWAY=172.18.18.2 DNS1=192.168.205.7 注:不要修改HWADDR和UUID
安裝源,首先啓用extras packges,我使用原cenos安裝時自帶的源, 也能夠啓用aliyun或tinghua的extras源linux
#ls backup CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo backup1 CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo #yum list Centos-release-OpenStack* … Available Packages centos-release-openstack-stein.noarch 1-1.el7.centos extras centos-release-openstack-ocata.noarch 1-2.el7 extras centos-release-openstack-pike.x86_64 1-1.el7 extras centos-release-openstack-queens.noarch 1-2.el7.centos extras 注:安裝時咱們要禁用epel源
#yum install centos-release-openstack-stein
安裝完成後咱們看到目錄中多了一些源sql
#ls backup CentOS-Debuginfo.repo CentOS-QEMU-EV.repo backup1 CentOS-fasttrack.repo CentOS-Sources.repo CentOS-Base.repo CentOS-Media.repo CentOS-Storage-common.repo CentOS-Ceph-Nautilus.repo CentOS-NFS-Ganesha-28.repo CentOS-Vault.repo #cat CentOS-OpenStack-stein.repo CentOS-OpenStack-stein.repo …
# yum upgrade
# yum install python-openstackclient
# yum install mariadb mariadb-server python2-PyMySQL
# vi /etc/my.cnf.d/openstack.cnf [mysqld] bind-address = 192.168.205.147 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8
# systemctl enable mariadb.service # systemctl start mariadb.service
# mysql_secure_installation
Openstack的服務之間使用消息隊列協調操做和狀態信息,消息隊列一般地運行在controller上, openstack支持幾種消息隊列如:rabbitMQ, Qpid, ZeroMQ. 大多的發行版都支持這些特定的消息隊列,本實驗咱們用RabbitMQ由於大多發行版都支持它,本列中,咱們的消息隊列運行在dababase中數據庫
# yum install rabbitmq-server
# systemctl enable rabbitmq-server.service # systemctl start rabbitmq-server.service
# rabbitmqctl add_user openstack openstack123
# rabbitmqctl set_permissions openstack ".*" ".*" ".*" 注:在vhost "/" ...中給用戶 "openstack" 受權
身份識別服務驗證機制使用Memcached緩存令牌,Memcached一般運行在controller上,對於生產部署,咱們建議啓用防火牆、身份驗證和加密的組合來保護它。centos
# yum install memcached python-memcached
#vi /etc/sysconfi/memcached OPTIONS="-l 127.0.0.1,::1,master" #若是你裝在數據庫服務器上,那麼就改數據庫服務器的名字, 由於hosts中已經作解析
# systemctl enable memcached.service # systemctl start memcached.service