openstack詳細安裝配置過程
搭建yum源:
1 [root@roompc901 yum.repos.d]# vim /etc/fstab 2 /var/lib/libvirt/images/iso/CentOS7-1708.iso /local_repo iso9660 defaults 0 0
虛擬機的模板配置:
1 [root@roompc901 ~]# cd /etc/libvirt/qemu/networks/ 2 [root@roompc901 networks]# cd autostart/ 3 [root@roompc901 autostart]# rm -f * 4 [root@roompc901 autostart]# cd .. 5 [root@roompc901 networks]# virsh 6 [root@roompc901 networks]# virsh net-define vbr.xml 7 virsh # net-start vbr 8 virsh # net-autostart private1
創建虛擬機模板:
1 [root@roompc901 images]# qemu-img create -f qcow2 demo.img 2 3 [root@roompc901 ~]# systemctl restart libvirtd.service 4 5 [root@roompc901 networks]# ps -efww | grep -i qemu //查看已啟動虛擬機的進程信息 6 [root@centos7 ~]# yum provides ifconfig //查看yum源中的ifconfig文件位置
yum源的key驗證:
下載RPM-GPG-KEY-CentOS-7
導入 :
1 [root@roompc901 networks]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
修改:gpgcheck=1
使用:yum install lftp lrzsz 驗證
1 [root@centos7 ~]# yum list | grep bash //查看是否安裝tab 2 bash-completion.noarch 3 [root@centos7 ~]# yum install lftp bridge-utils 4 [root@centos7 ~]# lftp 192.168.1.254 5 lftp 192.168.1.254:~> ls 6 drwxr-xr-x 8 0 0 2048 Sep 05 2017 CentOS7
刪除網絡配置里的個性化信息
– /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT="yes“
IPV6INIT="no"
TYPE="Ethernet"
BOOTPROTO ="dhcp"
– 禁用空路由
– /etc/sysconfig/network
NOZEROCONF="yes"
– 重新生成 grub.cfg
[root@centos7 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
安裝分區擴展軟件
1 [root@localhost ~]# yum install -y cloud-utils-growpart 2 virt-sysprep -d 虛擬機名稱 3 [root@roompc901 libvirt]# yum provides virt-sysprep 4 [root@roompc901 libvirt]# yum -y install libguestfs-tools-c-1.36.3-6.el7.x86_64 5 [root@roompc901 libvirt]# virt-sysprep -d centos7.0 6 [root@roompc901 libvirt]# virsh undefine centos7.0 7 [root@roompc901 libvirt]# cd /var/lib/libvirt/images/ 8 [root@roompc901 images]# qemu-img create -b demo.img -f qcow2 demo1.img 32G 9 [root@roompc901 nsd1804]# sed 's/node/node1/' node.xml >/etc/libvirt/qemu/node1.xml 10 [root@roompc901 nsd1804]# vimdiff node.xml node.xml.bak
1)創建 2 個虛擬機
要求:
虛擬機1
8G 內存
2塊網卡
第一塊網卡連接虛擬交換機 vbr
第二塊網卡連接虛擬交換機 private1
設置靜態 IP,默認網關 192.168.1.254
2塊硬盤
其中 / 的 vda1 要求 50G
vdb 20G
2)虛擬機2
6G 內存
2塊網卡
第一塊網卡連接虛擬交換機 vbr
第二塊網卡連接虛擬交換機 private1
設置靜態 IP,默認網關 192.168.1.254
要求與第一台虛擬主機的兩個 IP 都能 ping 通
硬盤
/ 的 vda1 要求 50G
添加網卡
添加硬盤
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 disk.img 20G
############################################################
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 demo.img 8G
准備環境 (真機)
禁用 selinux 配置文件 /etc/selinux/config
SELINUX=disabled
禁用 firewalld
systemctl stop firewalld
systemctl (un)mask firewalld
1 yum 源的安裝和配置(網絡yum源)
光盤作為 yum 源 CentOS7-1708.iso (共9591包)
有 repodata 目錄的才可以作為 yum 源
自定義 yum 源
創建一個 repodata
createrepo .
更新
createrepo --update .
2 dns 服務
yum install bind bind-chroot
編輯配置文件 named.conf
listen-on port 53 { 192.168.1.254; };
allow-query { any; };
forwarders { 202.106.196.115; };
dnssec-enable no;
dnssec-validation no;
[root@openstack ~]# yum -y install bind-utils
[root@nova01 ~]# yum -y install bind-utils
3 時間服務器
yum install -y chrony
server:配置 /etc/chrony.conf
server ntp1.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0
client:配置 /etc/chrony.conf
server 192.168.1.254 iburst
檢查狀態
chronyc sources -v
* 同步成功,+ 備胎 , ? 同步失敗
#######################################################################
初始化虛擬機
1 修改 /etc/selinux/config
SELINUX=disabled
2 配置網卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0
3 停止 firewalld NetworkManager
systemctl stop firewalld
systemctl stop NetworkManager
4 卸載
yum remove -y NetworkManager-* firewalld-* python-firewall
5 重啟機器
6 配置 yum 源
[local_repo]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/centos7"
enabled=1
gpgcheck=0
7 安裝軟件
yum provides 命令
yum install 包名
8 驗證數字簽名
下載 RPM-GPG-KEY-CentOS-7
導入 rpm --import RPM-GPG-KEY-CentOS-7
修改 local.repo gpgcheck=1
使用 yum install lftp lrzsz 驗證
9 配置網絡,禁用空路由
配置文件 /etc/sysconfig/network
NOZEROCONF="yes"
網卡配置文件見范例
10 添加串口終端
配置文件 /etc/default/grub
修改內容看范例
修改完成之后創建引導文件
grub2-mkconfig -o /boot/grub2/grub.cfg
11 修改 fstab
blkid
修改 UUID=xxxxxx 為 /dev/xvda1
12 安裝分區擴展軟件
yum install -y cloud-utils-growpart
擴展磁盤分區空間(讓 /dev/vda1 變大)
/usr/bin/growpart /dev/vda 1
擴展文件系統識別空間(讓 df -h 可使用空間變大)
/usr/sbin/xfs_growfs /
13 關閉虛擬機,清理信息 (真機)
設置語言為英文 LANG=en_US.UTF-8
virt-sysprep -d 虛擬機名稱
14 刪除虛擬機定義
virsh undefine centos7.0
15 快速創建虛擬機
例如創建虛擬機 node1
創建磁盤文件
cd /var/lib/libvirt/images
qemu-img create -b node.img -f qcow2 node1.img 32G
創建虛擬機配置文件
sed 's/node/node1/' node.xml >/etc/libvirt/qemu/node1.xml
virsh define /etc/libvirt/qemu/node1.xml
啟動虛擬機
virsh start node1
連接查看虛擬機
virsh console node1
#-----------------------------------------#
添加網卡
添加硬盤
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 disk.img 20G
#-----------------------------------------#
創建 2 個虛擬機
要求:
虛擬機1
8G 內存
2塊網卡
第一塊網卡連接虛擬交換機 vbr
第二塊網卡連接虛擬交換機 private1
設置靜態 IP,默認網關 192.168.1.254
2塊硬盤
其中 / 的 vda1 要求 50G
vdb 20G
虛擬機2
6G 內存
2塊網卡
第一塊網卡連接虛擬交換機 vbr
第二塊網卡連接虛擬交換機 private1
設置靜態 IP,默認網關 192.168.1.254
要求與第一台虛擬主機的兩個 IP 都能 ping 通
硬盤
/ 的 vda1 要求 50G
/etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="none"
IPADDR="192.168.1.2"
PREFIX="24"
GATEWAY="192.168.1.254"
配置網卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth1
# Generated by dracut initrd
DEVICE="eth1"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="none"
IPADDR="192.168.4.2"
PREFIX="24"
# 環境檢查
sestatus 檢查 selinux 是否關閉了
rpm -qa |grep -P "firewalld|NetworkManager" 是否卸載了 NetworkManager 和 firewalld
chronyc sources -v 檢查時間服務器是否可用
nslookup 檢查 dns 服務器是否可用
yum repolist 檢查包 9591 個
free -m 查看內存是否夠 8G
lsblk 查看是否有 20G 的 vdb 設備
ifconfig 查看是否兩塊網卡,而且都能 ping 通
# 配置 openstack yum 源 共 12 個 10731 包
1 [openstack_extras] 2 name=openstack extras 3 baseurl="ftp://192.168.1.254/openstack-ext" 4 enabled=1 5 gpgcheck=0 6 7 [rhel-7-server-openstack-10-devtools-rpms] 8 name=rhel-7-server-openstack-10-devtools-rpms 9 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-devtools-rpms 10 enabled=1 11 gpgcheck=0 12 13 [rhel-7-server-openstack-10-optools-rpms] 14 name=rhel-7-server-openstack-10-optools-rpms 15 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-optools-rpms 16 enabled=1 17 gpgcheck=0 18 19 [rhel-7-server-openstack-10-rpms] 20 name=rhel-7-server-openstack-10-rpms 21 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-rpms 22 enabled=1 23 gpgcheck=0 24 25 [rhel-7-server-openstack-10-tools-rpms] 26 name=rhel-7-server-openstack-10-tools-rpms 27 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-tools-rpms 28 enabled=1 29 gpgcheck=0 30 31 [rhel-7-server-rhceph-2-mon-rpms] 32 name=rhel-7-server-rhceph-2-mon-rpms 33 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-mon-rpms 34 enabled=1 35 gpgcheck=0 36 37 [rhel-7-server-rhceph-2-osd-rpms] 38 name=rhel-7-server-rhceph-2-osd-rpms 39 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-osd-rpms 40 enabled=1 41 gpgcheck=0 42 43 [rhel-7-server-rhceph-2-tools-rpms] 44 name=rhel-7-server-rhceph-2-tools-rpms 45 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-tools-rpms 46 enabled=1 47 gpgcheck=0 48 49 [rhel-7-server-rhscon-2-agent-rpms] 50 name=rhel-7-server-rhscon-2-agent-rpms 51 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-agent-rpms 52 enabled=1 53 gpgcheck=0 54 55 [rhel-7-server-rhscon-2-installer-rpms] 56 name=rhel-7-server-rhscon-2-installer-rpms 57 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-installer-rpms 58 enabled=1 59 gpgcheck=0 60 61 [rhel-7-server-rhscon-2-main-rpms] 62 name=rhel-7-server-rhscon-2-main-rpms 63 baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-main-rpms 64 enabled=1 65 gpgcheck=0
Openstack
Openstack主要組件
• Horizon
– 用於管理Openstack各種服務的、基於web的管理接口
– 通過圖形界面實現創建用戶、管理網絡、啟勱實例等操作
• Keystone
– 為其他服務提供認證和授權的集中身份管理服務
– 也提供了集中的目錄服務
– 支持多種身份認證模式,如果密碼認證、令牌認證、以及AWS(亞馬遜Web服務)登陸
– 為用戶和其他服務提供了SSO認證服務
• Neutron
– 一種軟件定義網絡服務
– 用於創建網絡、子網、路由器、管理浮勱IP地址
– 可以實現虛擬交換機、虛擬路由器
– 可用於在項目中創建VPN
• Cinder
– 為虛擬機管理存儲卷的服務
– 為運行在Nova中的實例提供永久的塊存儲
– 可以通過快照迚行數據備份
– 經常應用在實例存儲環境中,如果數據庫文件
• Nova
– 在節點上用於管理虛擬機的服務
– Nova是一個分布式的服務,能夠不Keystone交互實現
認證,不Glance交互實現鏡像管理
– Nova被設計成在標准硬件上能夠迚行水平擴展
– 啟勱實例時,如果有需要則下載鏡像
• Glance
– 扮演虛擬機鏡像注冊的角色
– 允許用戶為直接存儲拷貝服務器鏡像
– 這些鏡像可以用於新建虛擬機的模板
1. 配置主機IP地址
2. 配置主機yum客戶端
3. 創建cinder-volumes的卷組
4. 導入rabbitmq的公鑰
5. 安裝依賴的軟件包
6. 創建cinder-volumes的卷組
7. 導入公鑰
8. 安裝依賴的軟件包
demo2:
安裝 openstack
1、配置卷組,安裝依賴軟件包
yum install -y lvm2
pvcreate /dev/vdb
vgcreate cinder-volumes /dev/vdb
vgs
yum install -y qemu-kvm \
libvirt-daemon libvirt-client libvirt-daemon-driver-qemu \
python-setuptools
2、安裝 packstack
yum -y install openstack-packstack
安裝openstack的應答文件
packstack --help | grep answer
packstack --gen-answer-file=answer.ini
3、安裝 openstack
yum install -y openstack-packstack
創建安裝 openstack 的應答文件
packstack --gen-answer-file=answer.ini
編輯應答文件 answer.ini
配置默認密碼
1 11: CONFIG_DEFAULT_PASSWORD=Taren1 //設置禁用 swift (對象存儲) 模塊 2 42: CONFIG_SWIFT_INSTALL=n //NTP 服務器地址 3 75: CONFIG_NTP_SERVERS=192.168.1.254 /計算節點IP地址 4 98: CONFIG_COMPUTE_HOSTS=192.168.1.19 //需要配置vxlan網絡的 IP 地址 5 102: CONFIG_NETWORK_HOSTS=192.168.1.19 //禁用自動創建 cinder-volumns 卷組 6 554: CONFIG_CINDER_VOLUMES_CREATE=n //設置網絡支持協議 7 840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan //設置組播地址 8 876: CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5 //設置虛擬交換機 9 910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //設置虛擬交換機所連接的物理網卡 10 921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 //設置隧道網絡使用的網卡 11 936: CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1 //禁用測試的DEMO 12 1179:CONFIG_PROVISION_DEMO=n
3、安裝 openstack
安裝
1 packstack --answer-file=answer.ini 2 3 **** Installation completed successfully ****** 4 5 [root@openstack ~]# ifconfig 6 br-ex: flags=4163 mtu 1500 7 8 [root@openstack ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf 9 10 WSGIApplicationGroup %{GLOBAL} 11 ServerAlias localhost 12 WSGIDaemonProcess apache group=apache processes=3 13 threads=10 user=apache 14 WSGIProcessGroup apache 15 WSGIApplicationGroup %{GLOBAL} <--- 這里為添加
• 重新載入配置文件 apache graceful
1 [root@openstack ~]# apachectl graceful 2 [root@openstack ~]# cat keystonerc_admin 3 unset OS_SERVICE_TOKEN 4 export OS_USERNAME=admin 5 export OS_PASSWORD=5931f32650194f4c 6 export OS_AUTH_URL=http://192.168.1.2:5000/v2.0 7 export PS1='[\u@\h \W(keystone_admin)]\$ ' 8 [root@roompc901 ~]# firefox http://192.168.1.2 9 [root@openstack ~]# openstack 10 (openstack) help 11 (openstack) openstack user 12 (openstack) openstack user set --password "a" u1 13 [root@openstack system]# cd /usr/lib/systemd/system 14 [root@openstack system]# ls openstack-nova-compute.service 15 [root@openstack system]# systemctl restart openstack-nova-compute.service
利用已安裝openstack主機在重新安裝
1 [root@nova01 ~] yum install -y qemu-kvm \ 2 libvirt-daemon libvirt-client libvirt-daemon-driver-qemu \ 3 python-setuptools 4 5 [root@openstack ~] && [root@nova01 ~]vim /etc/hosts 6 192.168.1.3 nova01 7 192.168.1.2 openstack