基础环境准备 1.禁用selinux 2.卸载firewalld 3.卸载 NetworkManager 4.配置主机IP地址 5.配置主机yum客户端 6.创建cinder-volumes的卷组 7.导入公钥 8.安装依赖软件包
配置卷组
[root@node1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 200G 0 disk
└─vda1 253:1 0 16G 0 part /
vdb 253:16 0 20G 0 disk
安装卷组管理软件
[root@node1 ~]# yum -y install lvm2
创建卷组
[root@node1 ~]# pvcreate /dev/vdb
Physical volume "/dev/vdb" successfully created.
创建卷组名为clinder-volumes
[root@node1 ~]# vgcreate clinder-volumes /dev/vdb
Volume group "clinder-volumes" successfully created
查询卷组信息
[root@node1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
clinder-volumes 1 0 0 wz--n- <20.00g <20.00g
导入公钥
[root@nova ~]# rpm --import RPM-GPG-KEY-CentOS-7
两台虚拟机安装额外软件包
[root@nova ~]# yum install -y qemu-kvm libvirt-client libvirt-daemon
libvirt-daemon-driver-qemu python-setuptools
配置packstack
• 安装packstack
[root@vh02 ~]# yum install -y openstack-packstack
修改yum源签名验证
[root@node1 ~]#vim /etc/yum.repos.d/base.repo
[base]
name=centos
baseurl=ftp://192.168.1.254/centos 物理机ftp yum源
gpgcheck=1
enabled=1
创建应答文件
[root@node1 ~]# packstack --gen-answer-file answer.ini
修改应答文件
[root@node1 ~]# vim answer.ini
11行 CONFIG_DEFAULT_PASSWORD=Taren1
42 CONFIG_SWIFT_INSTALL=n
75 CONFIG_NTP_SERVERS=192.168.1.254
98 CONFIG_COMPUTE_HOSTS=192.168.1.20,192.168.1.30 两台虚拟机IP
102 CONFIG_NETWORK_HOSTS=192.168.1.20,192.168.1.30
554 CONFIG_CINDER_VOLUMES_CREATE=n
840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan
876 CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5
910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex
921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
936 CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
1179 CONFIG_PROVISION_DEMO=n
一键部署Openstack
[root@node1 ~]# packstack --answer-file answer.ini
ERROR : The cinder server should contain a cinder-volumes volume group
报错提示,没有卷组,卷组名错误,正确的应该为: cinder-volumes
[root@node1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
clinder-volumes 1 0 0 wz--n- <20.00g <20.00g
修改卷组名称
[root@node1 ~]# vgrename clinder-volumes cinder-volumes
Volume group "clinder-volumes" successfully renamed to "cinder-volumes"
修改完成后查询
[root@node1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
cinder-volumes 1 0 0 wz--n- <20.00g <20.00g
重新部署Openstack
[root@node1 ~]# packstack --answer-file answer.ini
Welcome to the Packstack setup utility
The installation log file is available at: /var/tmp/packstack/20180630-163406-78uc5o/openstack-setup.log
Installing:
Clean Up [ DONE ]
Discovering ip protocol version [ DONE ]
Setting up ssh keys [ DONE ]
Preparing servers [ DONE ]
Pre installing Puppet and discovering hosts' details [ DONE ]
Preparing pre-install entries [ DONE ]
Installing time synchronization via NTP [ DONE ]
Setting up CACERT [ DONE ]
Preparing AMQP entries [ DONE ]
Preparing MariaDB entries [ DONE ]
Fixing Keystone LDAP config parameters to be undef if empty[ DONE ]
Preparing Keystone entries [ DONE ]
Preparing Glance entries [ DONE ]
Checking if the Cinder server has a cinder-volumes vg[ DONE ]
Preparing Cinder entries [ DONE ]
Preparing Nova API entries [ DONE ]
Creating ssh keys for Nova migration [ DONE ]
Gathering ssh host keys for Nova migration [ DONE ]
Preparing Nova Compute entries [ DONE ]
Preparing Nova Scheduler entries [ DONE ]
Preparing Nova VNC Proxy entries [ DONE ]
Preparing OpenStack Network-related Nova entries [ DONE ]
Preparing Nova Common entries [ DONE ]
Preparing Neutron LBaaS Agent entries [ DONE ]
Preparing Neutron API entries [ DONE ]
Preparing Neutron L3 entries [ DONE ]
Preparing Neutron L2 Agent entries [ DONE ]
Preparing Neutron DHCP Agent entries [ DONE ]
Preparing Neutron Metering Agent entries [ DONE ]
Checking if NetworkManager is enabled and running [ DONE ]
Preparing OpenStack Client entries [ DONE ]
Preparing Horizon entries [ DONE ]
Preparing Gnocchi entries [ DONE ]
Preparing MongoDB entries [ DONE ]
Preparing Redis entries [ DONE ]
Preparing Ceilometer entries [ DONE ]
Preparing Aodh entries [ DONE ]
Preparing Puppet manifests [ DONE ]
Copying Puppet modules and manifests [ DONE ]
Applying 192.168.1.20_controller.pp
192.168.1.20_controller.pp: [ DONE ]
Applying 192.168.1.30_network.pp
Applying 192.168.1.20_network.pp
192.168.1.20_network.pp: [ DONE ]
192.168.1.30_network.pp: [ DONE ]
Applying 192.168.1.30_compute.pp
Applying 192.168.1.20_compute.pp
192.168.1.20_compute.pp: [ DONE ]
192.168.1.30_compute.pp: [ DONE ]
Applying Puppet manifests [ DONE ]
Finalizing [ DONE ]
**** Installation completed successfully ******
Additional information:
- File /root/keystonerc_admin has been created on OpenStack client host 192.168.1.20. To use the command line tools you need to source the file.
- To access the OpenStack Dashboard browse to http://192.168.1.20/dashboard . Please, find your login credentials stored in the keystonerc_admin in your home directory.
- The installation log file is available at: /var/tmp/packstack/20180630-163406-78uc5o/openstack-setup.log
- The generated manifests are available at: /var/tmp/packstack/20180630-163406-78uc5o/manifests
配置br-ex为外部OVS网桥 [root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br-ex ONBOOT=yes IPADDR=192.168.1.20 PROFIX=24 GATEWAY=192.168.1.254 DEVICE=br-ex NAME=br-ex DEVICETYPE=ovs OVSBOOTPROTO="static" TYPE=OVSBridge
配置外部OVS网桥端口 [root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 NAME=eth0 DEVICETYPE=ovs TYPE=OVSPort OVS_BRIDGE=br-ex ONBOOT=yes BOOTPROTO=none 验证OVS配置 [root@node1 ~]# ovs-vsctl show fabfec4c-7acf-4f34-9083-64e2557417a7 Manager "ptcp:6640:127.0.0.1" is_connected: true Bridge br-ex Controller "tcp:127.0.0.1:6633" is_connected: true fail_mode: secure Port phy-br-ex Interface phy-br-ex type: patch options: {peer=int-br-ex} Port "eth0" Interface "eth0" ............... 2.[root@node1 ~]# ip -o addr show ............... 8: br-ex inet 192.168.1.20/24 brd 192.168.1.255 scope global br-ex\ valid_lft forever preferred_lft forever 配置Horizon 安装虽然没有报错,但默认无法打开Horizon,这是一个软件的配置BUG 我们修改配置文件 [root@node1 ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf WSGIApplicationGroup %{GLOBAL} #在文件内添加这一行 重新载入配置文件 [root@node1 ~]# apachectl graceful 使用浏览器打开页面192.168.1.20 http://192.168.1.20/dashboard/auth/login/?next=/dashboard/ 打开后就可以看到登录页面了 初始化环境变量 [root@node1 ~]# source ~/keystonerc_admin [root@node1 ~(keystone_admin)]# env |grep OS HOSTNAME=node1 OS_REGION_NAME=RegionOne OS_PASSWORD=50e519fda73a40eb #默认密码在这 OS_AUTH_URL=http://192.168.1.20:5000/v2.0 OS_USERNAME=admin #默认管理员账户名 OS_TENANT_NAME=admin 可以使用openstack help查询命令信息 [root@node1 ~(keystone_admin)]# openstack help