陈沙克在他的经典文章里分析了多个安装部署工具,用于openstack部署。
当然时代变了,所以很多这些工具都改头换面了。
目前看,
1 Mirantis Fuel仍然是最好的商业用选择,虽然还有瑕疵。
fuel在7和7之后已经提供开源的plugin插件,例如contrail的插件。并将fuel plugin方案放入openstack发展会中。
fuel在6的时候已经在提供商业化的plugin了。
fuel目前的8有个讨厌的地方就是需要联网取些内容(是我网的问题,联网去取docker image供slave用),对centos7.0的版本兼容性也不好。(是centos7.0的问题,其升kernel到7.1很大可能会挂)
fuel的瑕疵主要是有些场景会莫名的出现异常,部分删除和增加云会导致异常,一些硬盘大小识别在安装快结束时才告诉你容量不足。(主要是6的问题,8因网络问题至今无感)
2 RDO,即原来的packstack
RDO无光盘,也是出了名的网络安装,没网怎么活?
RDO安装的粒度必须是全openstack
RDO安装了ceilemeter,第二次换了ip(如果是dhcp申请的),重装,如果不选择ceilemeter,则原来的ceil不会自动消亡,还在那里盲目发信息要求通讯。
3 其他puppet类,如陈所言。
其中rackspace,我没找到光盘,也没找到脚本。rackspace是不是已经不怎么玩openstack了?
4 ansible和kolla
ansible比较方便,因为总有人讨厌puppet,在下不懂puppet,所以也不愿意碰
kolla是ansible语言的上层开发。提供了以openstack 服务级粒度的openstack安装部署。
kolla可以支持对失败的openstack的nova,keystone服务重新单独部署。
kolla还基于docker
fuel7.0安装,和fuel5.0、6安装相似,这次小弟是在virtualbox上安装的。
小弟修改了config.sh
主要改动点
1 master, 1compute, 1controller,
给计算节点多点资源。
不过安装成功后,惊讶的发现fuel7很智能的把整张盘的大小都给了compute,controller
内存上各节点的配置则和config.sh相同。
贴上config.sh
#!/bin/bash # Copyright 2013 Mirantis, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. source ./functions/memory.sh # Get the first available ISO from the directory 'iso' iso_path=`ls -1t iso/*.iso 2>/dev/null | head -1` # Every Mirantis OpenStack machine name will start from this prefix vm_name_prefix=fuel- # By default, all available network interfaces vboxnet won't be removed, # if their IP addresses don't match with fuel_master_ips (10.20.0.1 172.16.0.254 # 172.16.1.1) # If you want to remove all existing vbox interfaces, then use rm_network=1 # 0 - don't remove all vbox networks. Remove only fuel networks if they exist # 1 - remove all vbox networks rm_network=0 # Please add the IPs accordingly if you going to create non-default NICs number # 10.20.0.1/24 - Mirantis OpenStack Admin network # 172.16.0.1/24 - OpenStack Public/External/Floating network # 172.16.1.1/24 - OpenStack Fixed/Internal/Private network # 192.168.0.1/24 - OpenStack Management network # 192.168.1.1/24 - OpenStack Storage network (for Ceph, Swift etc) fuel_master_ips="10.20.0.1 172.16.0.254 172.16.1.1" # Network mask for fuel interfaces mask="255.255.255.0" # Determining the type of operating system and adding CPU core to the master node case "$(uname)" in Linux) os_type="linux" if [ "$(nproc)" -gt "1" ]; then vm_master_cpu_cores=2 else vm_master_cpu_cores=1 fi ;; Darwin) os_type="darwin" mac_nproc=`sysctl -a | grep machdep.cpu.thread_count | sed 's/^machdep.cpu.thread_count\:[ \t]*//'` if [ "$mac_nproc" -gt "1" ]; then vm_master_cpu_cores=2 else vm_master_cpu_cores=1 fi ;; CYGWIN*) os_type="cygwin" if [ "$(nproc)" -gt "1" ]; then vm_master_cpu_cores=2 else vm_master_cpu_cores=1 fi ;; *) echo "$(uname) is not supported operating system." exit 1 ;; esac # Master node settings vm_master_memory_mb=1536 vm_master_disk_mb=65535 # Master node access to the internet through the host system, using VirtualBox NAT adapter vm_master_nat_network=192.168.200.0/24 vm_master_nat_gateway=192.168.200.2 # These settings will be used to check if master node has installed or not. # If you modify networking params for master node during the boot time # (i.e. if you pressed Tab in a boot loader and modified params), # make sure that these values reflect that change. vm_master_ip=10.20.0.2 vm_master_username=root vm_master_password=r00tme vm_master_prompt='root@fuel ~]#' # The number of nodes for installing OpenStack on # - for minimal non-HA installation, specify 2 (1 controller + 1 compute) # - for minimal non-HA with Cinder installation, specify 3 (1 ctrl + 1 compute + 1 cinder) # - for minimal HA installation, specify 4 (3 controllers + 1 compute) if [ "$CONFIG_FOR" = "16GB" ]; then cluster_size=5 elif [ "$CONFIG_FOR" = "8GB" ]; then cluster_size=3 else # Section for custom configuration cluster_size=2 fi # Slave node settings. This section allows you to define CPU count for each slave node. # You can specify CPU count for your nodes as you wish, but keep in mind resources of your machine. # If you don't, then will be used default parameter if [ "$CONFIG_FOR" = "16GB" ]; then vm_slave_cpu_default=1 vm_slave_cpu[1]=1 vm_slave_cpu[2]=1 vm_slave_cpu[3]=1 vm_slave_cpu[4]=1 vm_slave_cpu[5]=1 elif [ "$CONFIG_FOR" = "8GB" ]; then vm_slave_cpu_default=1 vm_slave_cpu[1]=1 vm_slave_cpu[2]=1 vm_slave_cpu[3]=1 else # Section for custom configuration vm_slave_cpu_default=1 vm_slave_cpu[1]=4 vm_slave_cpu[2]=1 fi # This section allows you to define RAM size in MB for each slave node. # Keep in mind that PXE boot might not work correctly with values lower than 768. # You can specify memory size for the specific slaves, other will get default vm_slave_memory_default # Mirantis OpenStack 3.2 controllers require 1280 MiB of RAM as absolute minimum due to Heat! # You may comment out all the following memory parameters to use default value for each node. # It is recommended if you going to try HA configurations. # for controller node at least 1.5Gb is required if you also run Ceph and Heat on it # and for Ubuntu controller we need 2Gb of ram # For compute node 1GB is recommended, otherwise VM instances in OpenStack may not boot # For dedicated Cinder, 768Mb is OK, but Ceph needs 1Gb minimum if [ "$CONFIG_FOR" = "16GB" ]; then vm_slave_memory_default=1536 vm_slave_memory_mb[1]=2048 vm_slave_memory_mb[2]=2048 vm_slave_memory_mb[3]=2048 vm_slave_memory_mb[4]=2048 vm_slave_memory_mb[5]=2048 elif [ "$CONFIG_FOR" = "8GB" ]; then vm_slave_memory_default=1024 vm_slave_memory_mb[1]=1536 vm_slave_memory_mb[2]=1536 vm_slave_memory_mb[3]=1536 else # Section for custom configuration vm_slave_memory_default=1024 vm_slave_memory_mb[1]=12048 vm_slave_memory_mb[2]=1024 vm_slave_memory_mb[3]=1024 fi # Within demo cluster created by this script, all slaves (controller # and compute nodes) will have identical disk configuration. Each # slave will have three disks with sizes defined by the variables below. In a disk configuration # dialog you will be able to allocate the whole disk or it's part for # operating system (Base OS), VMs (Virtual Storage), Ceph or other function, # depending on the roles applied to the server. # Nodes with combined roles may require more disk space. vm_slave_first_disk_mb=85535 vm_slave_second_disk_mb=35535 vm_slave_third_disk_mb=65535 # Set to 1 to run VirtualBox in headless mode headless=0 skipfuelmenu="no"