OpenStack一鍵部署安裝

openstack

環境準備
基礎條件:CentOS或Redhat裸機一臺,內存16G以上,並自行安裝基礎工具包(net-tools及vim等)
配置物理機YUM源(請使用官方提供的最完整的倉庫)

TIPS: 前面的步驟均爲環境準備,具體安裝步驟請看該博客最後部分

搭建KVM平臺

yum -y install qemu-kvm \
  > libvirt-client \
  > livbirt-daemon \
  > libvirt-daemon-driver-qemu
systemctl restart libvirtd

物理機:添加一個虛擬網卡

vim /etc/libvirt/qemu/network/vbr.xml
   <network>
          <name>vbr</name>
          <bridge name="vbr"/>
          <forward mode="nat"/>
          <ip address="192.168.1.254" netmask="255.255.255.0"/>
   </network>

virsh net-define vbr.xml         ##創建虛擬網絡
virsh net-start vbr                  ##啓動虛擬網絡
virsh net-autostart vbr           ##設置vbr虛擬網絡開機自啓動
virsh net-list                           ##查看虛擬網絡

物理機:搭建FTP服務(保證與虛擬機的文件傳輸)

yum -y install vsftpd
vim /etc/vsftpd/vsftpd.conf
    listen=YES
    listen_ipv6=NO
systemctl start vsftpd
systemctl enable vsftpd

物理機:搭建DNS和NTP服務

yum -y install bind-chroot
vim /etc/named.conf
   listen-on port 53 { 192.168.1.254; };
   allow-query   { any; };
   forwarders  { 202.106.196.115; };
   dnssec-enable no;
   dnssec-validation no;
systemctl restart named

yum -y install chrony
vim /etc/chrony.conf
   server ntp1.aliyun.com iburst
   bindacqaddress 0.0.0.0
   allow 0/0
systemctl restart chronyd
chronyc sources -v

虛擬機openstack,nova:

yum -y install chrony
vim /etc/chrony.conf
   server 192.168.1.254 iburst
systemctl restart chronyd
chronyc sources -v

創建後端模板虛擬機

qemu-img create -f qcow2 node.qcow2 8G         ##創建後端盤
在virt-manager中使用該後端盤新建一臺虛擬機,具體操作如下:
選擇網絡安裝
-->URL: ftp://176.204.xx.xx/centos
-->RAM: 2048MiB   CPU: 2
-->選擇或創建自定義存儲 /var/lib/libvirt/images/node.qcow2
-->選擇網絡 虛擬網絡'vbr':NAT
-->最小化分區Minimal Install
-->關閉 KUDMP
-->選擇手動分區 I will configure partitioning
-->New mount points will use the following partitioning scheme: 
   Standard Partition     
   選擇 /
設置root密碼,並等待安裝完成

進入後端模板虛擬機:

vim /etc/selinux/config    ##禁用selinux
cd /etc/yum.repos.d/
rm -f *
vi centos.repo
    [local_source]
    name=centos
    baseurl=ftp://192.168.1.254/centos
    enabled=1
    gpgcheck=0

yum repolist
yum -y install vim net-tools

卸載防火牆和NetworkManager

yum -y remove firewalld-*
yum -y remove python-firewall
vim /etc/sysconfig/network-scripts/ifcfg-eth0
   DEVICE=eth0
   ONBOOT=yes
   IPV6INIT=no
   TYPE=Ethernet
   BOOTPROTO=dhcp
yum -y remove NetworkManager-*
systemctl stop NetworkManager
systemctl restart network 

ip route show                                 ##將看到一條空路由,會有一定的影響
vim /etc/sysconfig/network
   NOZEROCONF=yes                  ##添加本行,禁用空路由
systemctl restart network
ip route show                                

導入gpg key

yum -y install lftp
vim /etc/yum.repos.d/centos.repo
       gpgcheck=1    ##僅修改本行
lftp 192.168.1.254/centos
>get RPM-GPG-KEY-CentOS7
>bye
rpm --import RPM-GPG-KEY-CentOS7
yum -y install psmisc                               ##驗證導入KEY後能否安裝軟件

打開串口終端,方便使用virsh console連接

vim /etc/sysconfig/grub
   GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=ttyS0,115200n8"
   GRUB_DISABLE_LINUX_UUID="true"
   GRUB_ENABLE_LINUX_LABEL="true"

grub2-mkconfig -o /boot/grub2/grub.cfg     ##重新生成grub.cfg
vim /etc/fstab
   ##將UUID修改爲/dev/vda1

安裝分區擴展軟件(有擴容需求時執行)

yum -y install cloud-utils-growpart
shutdown
物理機:virt-sysprep -d node            ##執行信息清理工作

快速創建虛擬機

virsh undefine node                 ##取消定義,保證後端模板只讀
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 -b node.qcow2 node1.img 30G
sed 's,node,node1,' /root/node.xml > /etc/libvirtd/qemu/node1.xml
virsh define /etc/libvirtd/qemu/node1.xml
virsh start node1

添加一塊新的網卡和設備

virsh console node1
ip link show
Ctrl + ]                                                   ##退出虛擬機,進入物理機
virsh edit node1
     <interface type='bridge'>                 ##在第一個</interface>後添加4行
             <source bridge='private1'/>
             <model type='virtio'>
     </interface>

poweroff -p 
virsh start --console node1
ip link show
ifconfig -a
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth1
vim ifcfg-eth1
   DEVICE=eth1
   ONBOOT=yes
   IPV6INIT=yes
   TYPE=Ethernet
   BOOTPROTO=static
   IPADDR=192.168.4.100
   PREFIX=24

systemctl restart network

物理機:爲虛擬機node1添加一塊硬盤

qemu-img create -f qcow2 disk.img 20G
virsh edit node1
     <disk type='file' device='disk'>
           <driver name='qemu' type='qcow2'/>
           <source file='/var/lib/libvirt/images/disk.img'/>
           <target dev='vdb' bus='virtio'>
    </disk>

halt -p
virsh start node1
lsblk

離線修改前,後端磁盤的方式(非需要操作,需謹慎)

##注意:修改後端盤後,所有前端盤都會失效
guestmount -a /var/lib/libvirt/images/node.qcow2 -i /mnt/     ##-a 指定鏡像的位置  -i 指定一個空的目錄
chroot /mnt/
cd /mnt/
umount /mnt

切記:每臺機器只能有一個網關!
在/etc/sysconfig/network-scripts/ifcfg-eth0將網關配置爲192.168.1.254
使private1能夠上網
物理機:

virsh net-edit private1
     <forward mode='nat'/>

虛擬機openstack:
創建openstack存儲卷

yum -y install lvm2
vgcreate cinder-volumes /dev/vdb

修改centos1708YUM源的gpgcheck=1,並導入公鑰,

rpm --import RPM-GPG-KEY-CentOS-7
yum -y install qemu-kvm \
  > libvirt-client \
  > livbirt-daemon \
  > libvirt-daemon-driver-qemu \
  > python-setuptools

最後的環境檢測

sestatus                                        ##查看SELinux狀態並禁用
rpm -qa |grep firewall                    ##查看是否已卸載防火牆
rpm -qa |grep NetworkManager    ##查看是否已卸載NetworkManager
ping 192.168.4.xx                         ##查看ip是否正確
yum repolist                                  ##查看YUM源
vgs                                                ##查看是否存在cinder-volumes卷組
gpgcheck=1                                  ##查看是否已修改第一個系統源的gpgcheck=1
virsh                                              ##查看KVM平臺是否搭建成功
##注意:需修改所有ip爲靜態IP,取消DHCP服務
##兩臺虛擬機均需符合以上配置:第一臺修改主機名爲openstack,內存8G;第二臺修改主機名爲nova,內存6G

開始安裝openstack

虛擬機openstack:

yum -y install openstack-packstack
packstack --gen-answer-file answer.ini                                                  ##ini文件自帶顏色,便於發現錯誤
vim answer.ini                                                                                        ##修改應答文件
   CONFIG_DEFAULT_PASSWORD=Taren1                                        ##第11行
   CONFIG_CINDER_INSTALL=n                                                          ##第25行 使用本機硬盤存儲,不適用共享存儲
   CONFIG_SWIFT_INSTALL=n                                                             ##第42行
   CONFIG_NTP_SERVERS=192.168.1.254                                         ##第75行
   CONFIG_CINDER_VOLUMES_CREATE=n                                       ##第554行
   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行

packstack --answer-file answer.ini

openstack安裝完成後

vim /etc/httpd/conf.d/15-horizon_vhost.conf
    WSGIApplicationGroup %{GLOBAL}              ##添加本行
apachectl graceful

在虛擬機家目錄下:
cat ~/keystonerc_admin                                       ##查看密碼

物理機:
firefox 192.168.1.100                                           ##通過瀏覽器訪問dashboard,可以看到登錄頁面
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章