在CentOS 8上安装和配置OpenStack Ussuri
这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。
以PDF格式下载指南
关
这是续集。
这是续集。
这是续集。
你好!今天的指南描述了如何在CentOS 8 Linux服务器上安装和配置OpenStack Ussuri。本指南不适用于在CentOS 8服务器上安装高可用性的Production OpenStack Cloud,但适用于POC和家庭实验室。 OpenStack是一个免费的开源软件平台,旨在帮助用户构建私有云环境和为其客户提供云服务。本指南涵盖的主要OpenStack组件包括:
- 煤壳 –块存储服务
- 中子 –网络服务
- 新星 –计算
- 快 –对象存储服务
- 梯形失真 –身份服务
- 热 –编排服务
- 扫视 –图片服务
- 地平线 -仪表板
如前所述,此安装是在具有以下硬件规格的单个物理服务器上完成的:
Memory: 128GB RAM
CPU: Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz (12 cores)
Disk: 3 x 4TB SATA
Network: 1Gbit
IPV4 Adresses: 1 x IPV4 + /28 Subnet (14 IPs)
------------------------------------------------------------
$ grep -c ^processor /proc/cpuinfo
12
$ free -h
total used free shared buff/cache available
Mem: 125G 207M 125G 21M 244M 124G
Swap: 0B 0B 0B
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 3G 1 loop
sda 8:0 0 3.7T 0 disk
sdb 8:16 0 3.7T 0 disk
sdc 8:32 0 3.7T 0 disk
sdd 8:32 0 3.7T 0 disk
这并不意味着硬件要求必须符合以上要求,才能使我们对正在研究的内容有所了解。
第1步:预设置要求
由于CentOS 8上的OpenStack安装使用PackStack,因此必须禁用某些服务(例如firewalld和NetworkManager)才能成功安装。在禁用NetworkManager服务之前,请安装network-scripts程序包。它提供了CentOS 8系统用来管理网络的网络服务。
sudo dnf install -y network-scripts
sudo systemctl disable --now firewalld NetworkManager
sudo systemctl enable network && sudo systemctl start network
禁用弃用警告。
sudo touch /etc/sysconfig/disable-deprecation-warnings
检查网络服务的状态。
$ systemctl status network
● network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; generated)
Active: active (exited) since Fri 2020-07-03 17:36:41 CEST; 11s ago
Docs: man:systemd-sysv-generator(8)
Process: 14766 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)
Jul 03 17:36:40 osp.computingforgeeks.com systemd[1]: Starting LSB: Bring up/down networking...Jul 03 17:36:40 osp.computingforgeeks.com network[14766]: WARN : [network] You are using 'network' service provided by 'network-scripts', which are now de>
Jul 03 17:36:40 osp.computingforgeeks.com network[14766]: WARN : [network] 'network-scripts' will be removed in one of the next major releases of RHEL.Jul 03 17:36:40 osp.computingforgeeks.com network[14766]: WARN : [network] It is advised to switch to 'NetworkManager' instead for network management.
Jul 03 17:36:41 osp.computingforgeeks.com network[14766]: Bringing up loopback interface: [ OK ]
Jul 03 17:36:41 osp.computingforgeeks.com network[14766]: Bringing up interface enp5s0: ERROR : [ipv6_set_default_route] Given IPv6 default gateway 'fe80:>
Jul 03 17:36:41 osp.computingforgeeks.com network[14766]: [ OK ]
Jul 03 17:36:41 osp.computingforgeeks.com systemd[1]: Started LSB: Bring up/down networking.
确保DNS正常运行。
$ ping -c 2 google.com
PING google.com(arn09s11-in-x0e.1e100.net (2a00:1450:400f:807::200e)) 56 data bytes
64 bytes from arn09s11-in-x0e.1e100.net (2a00:1450:400f:807::200e): icmp_seq=1 ttl=120 time=7.27 ms64 bytes from arn09s11-in-x0e.1e100.net (2a00:1450:400f:807::200e): icmp_seq=2 ttl=120 time=7.34 ms
--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 7.269/7.306/7.343/0.037 ms
另外,禁用SELinux以避免麻烦排除故障。
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
设置服务器的主机名。
sudo hostnamectl set-hostname openstackcloud.example.com --static
确保本地名称解析正常。
$ sudo vim /etc/hosts
192.168.21.20 openstackcloud.example.com
最后,更新系统并安装基本实用程序。
sudo dnf -y install vim wget curl telnet bash-completion network-scripts dnf-utils
步骤2:安装PackStack软件包
将OpenStack Ussuri版本存储库添加到您的CentOS 8计算机。如果在新发行的OpenStack中使用本文,请用发行名称替换stein。
sudo dnf config-manager --enable PowerTools
sudo dnf install -y centos-release-openstack-ussuri
sudo dnf -y update
添加存储库后,为CentOS安装packstack软件包。
sudo dnf install -y openstack-packstack
启用高级Virt模块。
sudo dnf -y module enable virt
更新系统:
sudo dnf update -y
sudo systemctl reboot
步骤3:使用packstack在CentOS 8上部署OpenStack
有两种使用packstack在CentOS 8上部署OpenStack的方法。
方法1:简单的单节点OpenStack部署-默认值(仅简单POC)
对于单节点OpenStack部署,请运行以下命令:
sudo packstack --allinone
要禁用演示设置:
sudo packstack --allinone --provision-demo=n
方法2:定制的单节点安装
您需要生成一个配置文件,该文件将用于通过PackStack安装OpenStack Cloud。该文件包含诸如要安装的服务,存储配置和网络之类的信息。
sudo packstack
--keystone-admin-passwd='MySr0ngAdminPassw0rd'
--cinder-volumes-create=n
--provision-demo=n
--os-heat-install=y
--os-ceilometer-install=y
--os-horizon-ssl=n
--os-neutron-ml2-mechanism-drivers=openvswitch
--os-neutron-ml2-tenant-network-types=vxlan
--os-neutron-ml2-type-drivers=vxlan,flat,vlan
--os-neutron-l2-agent=openvswitch
--nova-libvirt-virt-type=kvm
--os-swift-storages=/dev/sdc
--os-swift-storage-fstype=xfs
--gen-answer-file /root/packstack-answers.txt
哪里:
- / dev / sdc Swift对象存储使用的原始定义。它也可以是/ dev / sdc1之类的分区。如果没有原始磁盘,则可以删除该行并指定回送设备的大小。 –os-swift-storage-size =20GB
- MySr0ngAdminPassw0rd 管理员用户的密码。
检查生成的文件以确保正确的值适合您的部署。
sudo vi /root/packstack-answers.txt
准备煤渣量
将LVM分区用于您创建的Cinder逻辑卷(cinder-volume)。
为此,我有 / dev / sdd 和 / dev / sde 在我的服务器上。从两个磁盘创建RAID 0设备。
$ sudo mdadm --create --verbose /dev/md2 --level=0 --raid-devices=2 /dev/sdd /dev/sde
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
接下来,创建一个Cinder物理卷,卷组和精简池。
$ sudo pvcreate /dev/md2 Physical volume "/dev/md2" successfully created. $ sudo vgcreate cinder-volumes /dev/md2 Volume group "cinder-volumes" successfully created $ sudo lvcreate -l 100%FREE -T cinder-volumes/cinder-volumes-pool Logical volume "cinder-volumes-pool" created.
清洁LVM和RAID设备
如果要再次执行此操作,请使用以下命令来清洁LVM和RAID设备。
# ONLY RUN IF YOU WANT TO DESTROY LOGICAL VOLUME AND RAID DEVICES
sudo vgremove cinder-volumes
sudo mdadm --stop /dev/md2
sudo mdadm --zero-superblock /dev/sdd
sudo mdadm --zero-superblock /dev/sdbe
这可以通过不带RAID设备的标准分区来完成。请参见下面的示例。
$ sudo pvcreate /dev/sdd1 Physical volume "/dev/sdd1" successfully created. $ sudo vgcreate cinder-volumes /dev/sdd1 Volume group "cinder-volumes" successfully created $ sudo lvcreate -l 100%FREE -T cinder-volumes/cinder-volumes-pool Logical volume "cinder-volumes-pool" created.
如果没有原始设备或可用分区,则也可以使用回送设备。 –Cinder-volumes-create = y 生成answer.txt文件或添加行 CINDER_VOLUMES_CREATE = y 直接到文件。
使用PackStack安装CentStack 8和OpenStack
现在您可以使用响应文件了,您可以使用packstack命令行来引导OpenStack云。
sudo packstack --answer-file /root/packstack-answers.txt --timeout=1500 | tee packstrack-output.txt
请参阅下面的安装输出。
......
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 ]
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 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 Swift builder entries [ DONE ]
Preparing Swift proxy entries [ DONE ]
Preparing Swift storage entries [ DONE ]
Preparing Gnocchi entries [ DONE ]
Preparing Redis entries [ DONE ]
Preparing Ceilometer entries [ DONE ]
Preparing Aodh entries [ DONE ]
Preparing Puppet manifests [ DONE ]
Copying Puppet modules and manifests [ DONE ]
Testing if puppet apply is finished: 10.10.20.10_controller.pp [ ]
10.10.20.10_controller.pp: [ DONE ]
Applying 10.10.20.10_network.pp
10.10.20.10_network.pp: [ DONE ]
Applying 10.10.20.10_compute.pp
10.10.20.10_compute.pp: [ DONE ]
Applying Puppet manifests [ DONE ]
Finalizing [ DONE ]
**** Installation completed successfully ******
成功安装后,将显示仪表板登录URL。
步骤4:配置OpenStack网络
安装程序将自动创建一个OVS桥,您可以使用以下命令进行检查:
$ sudo ovs-vsctl show
9ed1d854-1950-4ea3-99b5-1e5be0f0f230
Manager "ptcp:6640:127.0.0.1"
is_connected: true
Bridge br-ex
Port "patch-provnet-f62aa13c-c6e5-41a2-bd30-9760f2773e07-to-br-int"
Interface "patch-provnet-f62aa13c-c6e5-41a2-bd30-9760f2773e07-to-br-int"
type: patch
options: {peer="patch-br-int-to-provnet-f62aa13c-c6e5-41a2-bd30-9760f2773e07"}
Port br-ex
Interface br-ex
type: internal
Bridge br-int
fail_mode: secure
Port br-int
Interface br-int
type: internal
Port "patch-br-int-to-provnet-f62aa13c-c6e5-41a2-bd30-9760f2773e07"
Interface "patch-br-int-to-provnet-f62aa13c-c6e5-41a2-bd30-9760f2773e07"
type: patch
options: {peer="patch-provnet-f62aa13c-c6e5-41a2-bd30-9760f2773e07-to-br-int"}
ovs_version: "2.12.0"
如果接口和OVS桥映射不正确,请更改接口配置并将接口添加到OpenStack使用的桥。
在接口上创建一个外部OVS桥。
$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eno1
DEVICE=eno1
ONBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
$ sudo vi /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
BOOTPROTO=none
ONBOOT=yes
TYPE=OVSBridge
DEVICETYPE=ovs
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=192.168.10.1
将已配置接口的静态路由移动到br-ex。
sudo mv /etc/sysconfig/network-scripts/route-eno1 /etc/sysconfig/network-scripts/route-br-ex
网络物理接口 布雷克斯 打开vSwitch网桥。
sudo ovs-vsctl add-port br-ex eno1; systemctl restart network.service
可以以类似方式配置其他网桥。您需要使用正确的映射配置Open vSwitch。
$ sudo vi /etc/neutron/plugins/ml2/openvswitch_agent.ini
bridge_mappings=extnet:br-ex
重新启动Nova服务。
sudo systemctl restart openstack-nova-compute
sudo systemctl restart openstack-nova-api
sudo systemctl restart openstack-nova-scheduler
创建一个OpenStack专用网络。
$ source keystonerc_admin
$ openstack network create private
确认已创建网络。
$ openstack network list
+--------------------------------------+---------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+---------+--------------------------------------+
| a5e2a8f0-a953-4eb4-8fc1-2712c2c879d5 | private | 238ec5c5-602d-4fb8-9fca-053d444d9187 |
+--------------------------------------+---------+--------------------------------------+
将子网添加到创建的专用网络。
openstack subnet create --network private
--allocation-pool start=10.1.1.50,end=10.1.1.200
--dns-nameserver 8.8.8.8
--subnet-range 10.1.1.0/24
private_subnet
创建一个公共网络。
openstack network create
--provider-network-type flat
--provider-physical-network extnet
--external
public
添加一个公共网络子网。
openstack subnet create --network public
--allocation-pool start=,end=
--no-dhcp
--subnet-range /27 public_subnet
添加新路由器并配置路由器接口。
openstack router create --no-ha router1
openstack router set --external-gateway public router1
openstack router add subnet router1 private_subnet
检查网络名称空间以验证网络配置
ip netns show
步骤5:将Cinder配置为使用LVM
配置Cinder以使用配置的LVM卷。
$ sudo vi /etc/cinder/cinder.conf
enabled_backends=lvm
volume_clear = none
[lvm]
volume_backend_name=lvm
volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver
iscsi_ip_address=192.168.10.10
iscsi_helper=lioadm
volume_group=cinder-volumes
volumes_dir=/var/lib/cinder/volumes
进行更改后,您必须重新启动Cinder服务。
sudo systemctl restart openstack-cinder-volume
sudo systemctl restart openstack-cinder-api
进行更改后,重新启动Cinder服务。
sudo systemctl restart openstack-cinder-volume
sudo systemctl restart openstack-cinder-api
步骤6:创建风味和安全性组
让我们添加一个OpenStack风格:
openstack flavor create --id 0 --ram 1024 --vcpus 1 --swap 2048 --disk 10 m1.tiny
openstack flavor create --id 1 --ram 2048 --vcpus 1 --swap 4096 --disk 20 m1.small
openstack flavor create --id 2 --ram 4096 --vcpus 2 --swap 8192 --disk 40 m1.medium
openstack flavor create --id 3 --ram 8192 --vcpus 4 --swap 8192 --disk 80 m1.large
openstack flavor create --id 4 --ram 16384 --vcpus 8 --swap 8192 --disk 160 m1.xlarge
和基本安全组
openstack security group create basic --description "Allow base ports"
openstack security group rule create --protocol TCP --dst-port 22 --remote-ip 0.0.0.0/0 basic
openstack security group rule create --protocol TCP --dst-port 80 --remote-ip 0.0.0.0/0 basic
openstack security group rule create --protocol TCP --dst-port 443 --remote-ip 0.0.0.0/0 basic
openstack security group rule create --protocol ICMP --remote-ip 0.0.0.0/0 basic
步骤7:创建私钥并添加一览表图像
为您的帐户创建一个新密钥或使用现有的密钥。
$ ssh-keygen -q -N ""
$ openstack keypair create --public-key=~/.ssh/id_rsa.pub adminkey
+-------------+-------------------------------------------------+
| Field | Value |
+-------------+-------------------------------------------------+
| fingerprint | e4:00:26:64:1c:f7:20:06:d6:59:c6:31:20:53:59:c8 |
| name | adminkey |
| user_id | 9f7d84c3014445e7aac3048c9a0fd856 |
+-------------+-------------------------------------------------+
有关扫视图像,请参阅前一指南。
如何将Glance Cloud映像添加到OpenStack
步骤8:访问OpenStack仪表板
要访问OpenStack仪表板,请访问http:// openstackip /仪表板。
登录凭据是 keystonerc_admin 在您的主目录中的文件。
$ grep OS_PASSWORD keystonerc_admin
export OS_PASSWORD='c11661db5ecf4ebd'
登录后,您可以开始创建可在项目中使用的实例。有几篇OpenStack文章可用。
如何在OpenStack中运行CentOS 8实例
如何在OpenStack中重命名实例/服务器
如何在OpenStack中调整/扩展Cinder的大小
如何为OpenStack实例分配浮动IP地址
使用静态/静态IP地址创建OpenStack实例
如何创建OpenStack项目,用户和角色
如何调整OpenStack实例/虚拟机的大小
这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。
以PDF格式下载指南
关
这是续集。
这是续集。
这是续集。