openstack详细安装配置过程

时间:2022-10-07 09:20:20

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 
准备两台虚拟机:openstack 和nova01
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