1. 程式人生 > >openstack集群環境部署

openstack集群環境部署

src centos iso 禁用selinux cal 文件刪除 init phy del

首先開啟路由轉發
#cd /e t c/sysctl.d/
#vim 99-sysctl.conf
net ipv4.ip_forward = 1
真機上配置虛擬網卡配置文件
[root@localhost ~]# cd /etc/libvirt/qemu/networks/
[root@localhost networks]# vim vbr.xml
<network>
<name>vbr</name>
<forward mode=‘nat‘/>
<bridge name=‘vbr‘/>
<ip address=‘192.168.1.254‘ netmask=‘255.255.255.0‘>
<dhcp>
<range start=‘192.168.1.100‘ end=‘192.168.1.200‘/>
</dhcp>
</ip>
</network>
[root@localhost networks]# virsh net-define vbr.xml //激活虛擬網卡
[root@localhost networks]# virsh net-start vbr //開啟虛擬網卡
[root@localhost networks]# ifconfig
創建虛擬磁盤
[root@localhost ~]# cd /var/lib/libvirt/images/
[root@localhost images]# qemu-img create -f qcow2 node.qcow2 16G
裝虛擬機:
網絡安裝--》提供URL地址ftp://176.233.4.241/centos7 選擇根據安裝介質自動偵測操作系統--》2G 內存+2個CPU--》選擇創建自定義存儲--》選擇自己創建的qcow2--》起名 選擇在安裝前自定義配置,選擇網絡--》完成
裝機配置
選擇英語環境--》選擇最小安裝--》選擇手動配置磁盤--》選擇標準分區,添加根分區--》去選kdump--》開始安裝
配置系統:(除了裝包,還要卸載firewalld,NetworkManager,禁用SElinux)
#cd /etc/yum.repos.d/
#rm -rf *
#vi dvd.repo //配yum源
#yum provides ifconfig
yum -y install net-tools
#yum provides vim
#yum -y install vim-enhanced
#yum provides ip
#yum -y install iproute
#yum -y install bash-completion //table鍵補齊

配DNS
#vim /e tc/resolve.conf
nameserver 176.233.0.227

禁用空路由
#vim /e tc/sysconfig/network
NOZEROCONF=”yes”

配置console連接
[root@localhost ~]# vim /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="rhgb quiet console=tty0 console=ttyS0" //修改這一行 rhgb quiet//顯示過程
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg //查找啟動項

測試console連接
#virsh console centos7.0 //直接連接虛擬機名稱
創建虛擬機模板
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
#Generated by dracut initrd
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
IPV6INIT=no
BOOTPROTO=dhcp
TYPE=Ethernet

[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# cp centos7.0.xml centos7.xml //拷貝配置文件
[root@localhost qemu]# virsh undefine centos7.0 //刪除虛擬機
[root@localhost qemu]# vim centos7.xml //編輯配置文件刪除UUID、MAC地址 能多刪不能少刪

創建虛擬機
1、創建虛擬機配置文件
[root@localhost qemu]# cp centos7.xml node1.xml
[root@localhost qemu]# vim node1.xml
<name>node1</name>
<source file=‘/var/lib/libvirt/images/node1.img‘/>
或者:[root@localhost qemu]# sed ‘s/node/node1/g‘ centos7.xml > node1.xml
2、創建虛擬機磁盤文件
[root@localhost images]# cd /etc/libvirt/qemu/
[root@localhost qemu]# virsh define node1.xml

[root@localhost qemu]# cd /var/lib/libvirt/images/
[root@localhost images]# qemu-img create -b node.qcow2 -f qcow2 node1.img

[root@localhost qemu]# virsh start node1 //啟動虛擬機
[root@localhost qemu]# virsh console node1 //console連接

上面咱們把模板做好 下來部署openstack環境
基礎環境檢查

  1. 禁用 selinux
  2. 卸載 firewalld
  3. 卸載 NetworkManager
  4. 配置主機IP地址
  5. 配置主機yum客戶端
  6. 創建cinder-volumes的卷組
  7. 導入公鑰
  8. 安裝依賴的軟件包

安裝環境前的準備
物理機
安裝配置dns, 能作為轉發dns服務器即可
yum provides named
yum -y install bind-9.9.4-50.el7.x86_64
vim /etc/named.conf
options {
listen-on port 53 { 192.168.1.254; }; //這個是真機的 vbr 網橋的IP
//listen-on-v6 port 53 { ::1; }; ///註釋掉這一行 IPV6 的
allow-query { any; }; ///這一行括號改成any

recursion yes;
forwarders { 176.233.0.227; }; //真機的DNS地址
dnssec-enable no; // yes 改成no
dnssec-validation no; // yes 改成no

systemctl restart named //重啟服務
systemctl enable named //開機自起
安裝配置時間服務器 chronyd server
vim /etc/chrony.conf //添加以下配置
server ntp1.aliyun.com iburst //指定阿裏雲的時間服務器
bindacqaddress 0.0.0.0 //默認只能自己訪問 加上這一行允許任何人訪問
allow 0/0
stemctl restart chronyd.service //重起服務
chronyc sources -v //測試成功同步與否
? 不成功 + 備胎 星 是成功 - 是有差距
^*120.25.115.20 2 10 377 782 -835us[ -789us] +/- 21ms

添加一個網橋 vbr1 不需要能上網
cd /etc/libvirt/qemu/networks/
cp vbr.xml vbr1.xml
vim vbr1.xml //vbr.xml參照前邊的vbr.xml
<network>
<name>vbr1</name>
<bridge name=‘vbr1‘ stp=‘on‘ delay=‘0‘/>
<ip address=‘192.168.2.254‘ netmask=‘255.255.255.0‘>
<dhcp>
<range start=‘192.168.2.100‘ end=‘192.168.2.200‘/>
</dhcp>
</ip>
</network>
cd /etc/libvirt/qemu/networks/
virsh net-autostart vbr1 開機自啟 網卡
配置2個虛擬機

1.安裝管理節點最少 8G內存
單獨添加一塊硬盤給openstack cinder 使用20G
單獨添加一塊網卡 使用vbr1

      cd /etc/libvirt/qemu/
        cp centos7.example.xml   node1.xml   以下藍的必須一樣
        vim    node1.xml  
        <domain type=‘kvm‘>
          <name>node1</name>                           //名字改成node1
          <memory unit=‘GB‘>9</memory>               //大於給的內存 上面說的給8G 
          <currentMemory unit=‘GB‘>9</currentMemory> //大於給的內存
        <disk type=‘file‘ device=‘disk‘>
        <driver name=‘qemu‘ type=‘qcow2‘/>
        <source file=‘/var/lib/libvirt/images/node1.img‘/>
        <target dev=‘vda‘ bus=‘virtio‘/>
     </disk>
    <disk type=‘file‘ device=‘disk‘>
        <driver name=‘qemu‘ type=‘qcow2‘/>
        <source file=‘/var/lib/libvirt/images/disk.img‘/>
        <target dev=‘vdb‘ bus=‘virtio‘/>
     </disk>
       <interface type=‘network‘>
                     <source network=‘vbr‘/>
                     <model type=‘virtio‘/>
        </interface>
    <interface type=‘network‘>
                     <source network=‘vbr1‘/>
                     <model type=‘virtio‘/>
        </interface>

cd /var/lib/libvirt/images/
qemu-img create -b node.qcow2 -f qcow2 node1.img 200G
qemu-img create -f qcow2 disk.img 20G
cd /etc/libvirt/qemu/
virsh define node1.xml
virsh start node1
virsh console node1
yum -y install cloud-utils-growpart-0.29-2.el7.noarch
growpart /dev/vda 1 //這是先擴展空間
xfs_growfs / //在擴展文件系統
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
ONBOOT=yes
NETBOOT=no
IPV6INIT=no
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.2.10
PREFIX=24
GATEWAY=192.168.2.254
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT=yes
NETBOOT=no
IPV6INIT=no
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.1.10
PREFIX=24
GATEWAY=192.168.1.254
2.安裝 nova 節點 最少5G 內存
單獨添加一塊網卡 使用vbr1

cd /etc/libvirt/qemu/
cp centos7.example.xml node2.xml 以下藍的必須一樣
vim node1.xml
<domain type=‘kvm‘>
<name>node2</name> //名字改成node2
<memory unit=‘GB‘>6</memory> //大於給的內存
<currentMemory unit=‘GB‘>6</currentMemory> //大於給的內存
<disk type=‘file‘ device=‘disk‘>
<driver name=‘qemu‘ type=‘qcow2‘/>
<source file=‘/var/lib/libvirt/images/node2.img‘/>
<target dev=‘vda‘ bus=‘virtio‘/>
</disk>
<interface type=‘network‘>
<source network=‘vbr‘/>
<model type=‘virtio‘/>
</interface>
<interface type=‘network‘>
<source network=‘vbr1‘/>
<model type=‘virtio‘/>
</interface>

cd /var/lib/libvirt/images/
qemu-img create -b node.qcow2 -f qcow2 node2.img 200G
cd /etc/libvirt/qemu/
virsh define node2.xml
virsh start node2
virsh console node2
yum -y install cloud-utils-growpart-0.29-2.el7.noarch
growpart /dev/vda 1 //這是先擴展空間
xfs_growfs / //在擴展文件系統
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
ONBOOT=yes
NETBOOT=no
IPV6INIT=no
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.2.11
PREFIX=24
GATEWAY=192.168.2.254
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT=yes
NETBOOT=no
IPV6INIT=no
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.1.11
PREFIX=24
GATEWAY=192.168.1.254
部署安裝環境
物理機
cd /var/ftp/
mkdir openstack
mkdir openstack.ex
vim /et c/fstab
/home/CentOS7-1708.iso /var/ftp/Centos7 iso9660 defaults 0 0
/home/RHEL7-extras.iso /var/ftp/openstack.ext iso9660 defaults 0 0
/home/RHEL7OSP-10.iso /var/ftp/openstack iso9660 defaults 0 0
/home/CentOS7-1708.iso RHEL7-extras.iso RHEL7OSP-10.iso 這三個鏡像必須在物理機的/home下
[root@hanhan openstack]# pwd
/var/ftp/openstack
[root@hanhan openstack]# ls
docs rhel-7-server-rhceph-2-osd-rpms
rhel-7-server-openstack-10-devtools-rpms rhel-7-server-rhceph-2-tools-rpms
rhel-7-server-openstack-10-optools-rpms rhel-7-server-rhscon-2-agent-rpms
rhel-7-server-openstack-10-rpms rhel-7-server-rhscon-2-installer-rpms
rhel-7-server-openstack-10-tools-rpms rhel-7-server-rhscon-2-main-rpms
rhel-7-server-rhceph-2-mon-rpms version.txt

[root@hanhan openstack.ext]# ls
comps.xml Packages repodata version.txt
[root@hanhan openstack.ext]# pwd
/var/ftp/openstack.ext

2臺虛擬機的部署
yum search wget
yum -y install wget.x86_64
wget ftp://176.233.4.242/Centos7/RPM-GPG-KEY-CentOS-7

rpm --import RPM-GPG-KEY-CentOS-7 導入公鑰
配置YUM源
vim /etc/yum.repos.d/dvd.repo
[centos7]
name=centos7
baseurl=ftp://192.168.1.254/Centos7
enabled=1
gpgcheck=1 //必須是1
[openstack1]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-devtools-rpms
enabled=1
gpgcheck=0
[openstack2]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-optools-rpms
enabled=1
gpgcheck=0
[openstackopenstackopenstack3]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-rpms
enabled=1
gpgcheck=0
[openstackopenstack4]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-tools-rpms
enabled=1
gpgcheck=0
[openstack5]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-mon-rpms
enabled=1
gpgcheck=0
[openstack6]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-osd-rpms
enabled=1
gpgcheck=0
[openstack7]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-tools-rpms
enabled=1
gpgcheck=0
[openstack8]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-agent-rpms
enabled=1
gpgcheck=0
[openstack9]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-installer-rpms
enabled=1
[openstack10]
name=centos7
baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-main-rpms
enabled=1
gpgcheck=0
[openstack11]
name=centos7
baseurl=ftp://192.168.1.254/openstack.ext
enabled=1
gpgcheck=0
scp /etc/yum.repo.d/dvd/repo 192.168.1.11:/etc/yum.repo.d/

配置時間同步
vim /etc/chrony.conf
server 192.168.1.254 iburst
yum -y install ntpdate
ntpdate 192.168.1.254
在10這臺虛擬機上部署
1.pvcreate /dev/vdb //創建物理卷
2.vgcreate cinder-volumes /dev/vdb創建邏輯卷名字是cinder-volumes 名字必須是這個
3.安裝依賴包yum install -y qemu-kvm 、libvirt-client、libvirt-daemon 、 libvirt-daemon-driver-qemu、 python-setuptools

配置 packstack
安裝packstack
[root@vh02 ~]# yum install -y openstack-packstack
[root@vh02 ~]# packstack --gen-answer-file answer.ini //創建一個應答文件的模板
修改應答文件
[root@nova ~]# vim answer.ini
CONFIG_DEFAULT_PASSWORD=Taren1 //11行設置個密碼
CONFIG_SWIFT_INSTALL=n //42行
CONFIG_NTP_SERVERS=192.168.1.254 //75行 NTPserver 的地址
CONFIG_COMPUTE_HOSTS=192.168.1.10,192.168.1.11 //98行
CONFIG_COMPUTE_HOSTS=192.168.1.10,192.168.1.11 //102行必須是同一網段的
CONFIG_CINDER_VOLUMES_CREATE=n //554行 禁止主機自己創建邏輯卷
CONFIG_CINDER_VOLUMES_SIZE=20G //561行邏輯卷的大小和咱們上面創建的一致
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan //840行
CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5 //876行配置一個組播地址
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //910行把一個物理網絡映射給一個設備
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 //921 綁定一個物理網絡 上邊指定的
CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1 //936 隧道網絡配置
CONFIG_PROVISION_DEMO=n //1179 demo測試改成no

安裝openstack
packstack --answer-file answer.ini
如果出現SSSE3報錯
修改如圖
技術分享圖片

配置下面的復合主機打V (勾) 2臺虛擬機 關機執行
在11上裝 libvirt-client 包
在執行安裝命令就OK了
配置外部OVS網橋
配置br-ex為外部OVS網橋
以下是運行成功自動生成的
[root@nova ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT="yes"
NM_CONTROLLED="no"
IPADDR="192.168.1.66"
PREFIX="24"
GATEWAY="192.168.1.254"
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs //驅動協議
OVSBOOTPROTO="static" //手動配置
TYPE=OVSBridge
配置外部OVS網橋端口
? 配置eth0為外部OVS網橋的端口
[root@nova ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
驗證OVS配置

  1. ovs-vsctl show
  2. ip -o addr show
    [root@nova ~]# ovs-vsctl show
    Bridge br-ex
    Controller "tcp:127.0.0.1:6633"
    is_connected: true
    fail_mode: secure
    ... ...
    Port br-ex
    Interface br-ex
    type: internal
    Port "eth0"
    Interface "eth0"

? 安裝雖然沒有報錯,但默認無法打開 Horizon,這是
一個軟件的配置 BUG
– /etc/httpd/conf.d/15-horizon_vhost.conf
– WSGIApplicationGroup %{GLOBAL}
ServerAlias localhost
WSGIDaemonProcess apache group=apache processes=3
threads=10 user=apache
WSGIProcessGroup apache
WSGIApplicationGroup %{GLOBAL} <--- 這裏添加
重新載入配置文件 apachectl graceful基本配置

剩下的在圖形界面操作這裏不多做解釋

openstack集群環境部署