通过使用Packstack安装实用程序,你可以在几分钟内在CentOS 7上运行一体化OpenStack Cloud,部署后,可以向OpenStack云添加更多节点。
前提条件 在此设置中,我们将使用CentOS上的Packstack和以下服务构建OpenStack Cloud: Cinder - 块存储服务 Neutron - 网络服务 Nova - 计算 Swift - 对象存储服务 Keystone - 身份服务 Heat - 编排服务 Glance - 图像服务 Horizon - 仪表板 Magnum -Container服务 我正在使用以下规范在物理服务器上进行安装: 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 $ free -h $ lsblk $ ip link show
一、满足设置要求 我们将使用此处共享的命令禁用firewalld、NetworkManager和SELinux: sudo systemctl disable --now firewalld NetworkManager sudo setenforce 0 sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config 参考:在RHEL 8/CentOS 8系统中禁用SELinux的方法。 设置服务器主机名: sudo hostnamectl set-hostname openstackcloud.example.com --static 参考:在CentOS 7/8、Fedora 30/29/28上更改主机名(hostname)。 最后,更新系统并安装基本实用程序: sudo yum -y update sudo yum -y install vim wget curl telnet bash-completion sudo reboot
二、安装Packstack包 使用以下命令添加RDO(OpenStack的RPM分发)存储库: --- OpenStack Stein ---- $ sudo yum install -y centos-release-openstack-stein --- OpenStack Rocky ---- $ sudo yum install -y centos-release-openstack-rocky 如果你在有较新版本的Openstack时关注本文,请使用版本名称替换stein或rocky。 添加存储库后,安装CentOS的packstack包: sudo yum install -y openstack-packstack
三、创建packstack answers文件 我们需要生成一个配置文件,用于通过Packstack安装OpenStack Cloud,此文件包含安装服务、存储配置、网络等信息: $ sudo packstack --gen-answer-file /root/answers.txt Packstack changed given value to required value /root/.ssh/id_rsa.pub 打开生成的配置文件并对其进行编辑以适合你所需的安装,这些是我的参数设置: CONFIG_NTP_SERVERS=0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org CONFIG_CONTROLLER_HOST=192.168.10.10 CONFIG_COMPUTE_HOSTS=192.168.10.10 CONFIG_NETWORK_HOSTS=192.168.10.10 CONFIG_STORAGE_HOST=192.168.10.10 CONFIG_KEYSTONE_ADMIN_PW=b29e883d82dd45f8 CONFIG_SWIFT_STORAGES=/dev/sdc2 CONFIG_PROVISION_DEMO=n CONFIG_HEAT_INSTALL=y CONFIG_HEAT_CFN_INSTALL=y CONFIG_CEILOMETER_INSTALL=y CONFIG_MAGNUM_INSTALL=y CONFIG_LBAAS_INSTALL=y CONFIG_CINDER_VOLUMES_CREATE=n CONFIG_NOVA_SCHED_RAM_ALLOC_RATIO=3.0 CONFIG_NOVA_LIBVIRT_VIRT_TYPE=%{::default_hypervisor} CONFIG_HORIZON_SSL=n Cinder和Swift存储将在我的块设备/dev/sdc上: sudo parted -s -a optimal -- /dev/sdc mklabel gpt sudo parted -s -a optimal -- /dev/sdc mkpart primary 0% 70% sudo parted -s -a optimal -- /dev/sdc mkpart primary 70% 100% sudo mkfs.xfs /dev/sdc2 对于Cinder,我将创建一个使用/dev/sdc1的单独LVM卷组: $ sudo pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created. $ sudo vgcreate cinder-volumes /dev/sdc1 Volume group "cinder-volumes" successfully created $ sudo lvcreate -l 100%FREE -T cinder-volumes/cinder-volumes-pool Thin pool volume with chunk size 256.00 KiB can address at most 63.25 TiB of data. Logical volume "cinder-volumes-pool" created. Swift存储将位于分区/dev/sc2上。
四、使用packstack安装OpenStack 现在我们有了要使用的答案文件,我们可以使用packstack命令行来引导OpenStack Cloud: sudo packstack --answer-file /root/answers.txt --timeout=1500 | tee packstrack-output.txt 见下面的安装输出:
五、配置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 在Open vSwitch中将网络物理接口添加到br-ex网桥: 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 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=<startip>,end=<lastip> \ --no-dhcp \ --subnet-range <subnet>/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 qrouter-188d5388-6f58-4387-8a13-018b9c2e81f4 (id: 1) qdhcp-e406e76f-e89d-42a2-bab1-9c883b2e49aa (id: 0)
六、配置Cinder 配置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
七、创建flavor和安全组 让我们添加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
八、创建私钥并添加Glance images 为你的帐户创建新密钥或使用现有密钥: $ ssh-keygen -q -N "" $ openstack keypair create --public-key=~/.ssh/id_rsa.pub adminkey
九、访问OpenStack仪表板 要访问OpenStack Dashboard,请浏览到http://openstackip/dashboard:
注:你的登录信息存储在主目录的keystonerc_admin文件中。
相关主题 |