本文并非技术探讨,纯粹是为了记录一次部署过程,备忘。
本文以安装双节点为例讲述Openstack部署过程。
每台服务器至少需要两块网卡,第一块网卡的IP需要固定,所有服务器的网卡名称要一致。
服务器要开启虚拟化。
以下步骤,除了第1步之外,其他都只需要在执行部署的一个节点上操作。
使用CentOS-ocata-x86_64.iso引导,选择install centos7.2 and kolla-ocata(默认),
使用Tab键,修改IP地址、子网掩码、默认网关和主机名,默认IP地址为,主机名分别为node01和node02。
在/etc/hosts文件中加上主机配置。
10.5.11.117 node01
10.5.11.118 node02
生成ssh-key
[root@node01 ~] ssh-keygen
拷贝ssh key到远程主机,ssh的时候就不需要输入密码了
[root@node01 ~] ssh-copy-id root@node01
[root@node01 ~] ssh-copy-id root@node02
[root@node01 ~] ssh-keyscan node01 >> ~/.ssh/known_hosts
[root@node01 ~] ssh-keyscan node02 >> ~/.ssh/known_hosts
编辑文件/etc/kolla/globals.yml,设置如下参数
kolla_install_type: "source"
openstack_release: "4.0.1"
#虚拟IP必须是一个ping不通的地址
kolla_internal_vip_address: "10.5.11.111"
docker_registry: "localhost:4000"
docker_namespace: "lokolla"
#第一块网卡的名称
network_interface: "eno16777728"
#第二块网卡的名称
neutron_external_interface: "eno33554952"
#如果使用ceph存储,配置以下项
enable_ceph: "yes"
enable_ceph_rgw: "yes"
#如果使用lvm存储,配置以下项
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
enable_cinder: "yes"
cinder_backend_ceph: "{{ enable_ceph }}"
ceph_pool_type: "replicated"
enable_ceph_rgw_keystone: "no"
glance_backend_ceph: "{{ enable_ceph }}"
enable_neutron_lbaas: "yes"
enable_neutron_fwaas: "yes"
enable_neutron_qos: "yes"
nova_console: "novnc"
nova_backend_ceph: "{{ enable_ceph }}"
glance_backend_ceph: "{{ enable_ceph }}"
enable_freezer: "yes"
enable_horizon_freezer: "{{ enable_freezer | bool }}"
#kibana 开关
enable_central_logging: “yes”
enable_ceilometer: "yes"
ceilometer_database_type: "mongodb"
ceilometer_event_type: "mongodb"
enable_mongodb: "yes"
启用ceph存储还需要对将要做成osd的磁盘进行初始化准备。例如,在node01上有3块硬盘,其中sda作为系统盘,sdb,sdc未使用,想使用sdb和sdc作为osd,则在node01节点执行以下命令,将磁盘进行初始化:
parted /dev/sdb -s – mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1
parted /dev/sdc -s – mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1
在multnode配置文件中,确定storage组配置的节点均已完成磁盘的初始化,如:
[storage]
Node01
Node02
Node03
Node01,Node02和Node03已完成磁盘初始化的配置。
接下来
[root@node01 ~] kolla-genpwd
编辑 /etc/kolla/passwords.yml ,可修改horizon登陆密码(可选)
keystone_admin_password: admin
执行命令:
[root@node01 ~] egrep -c '(vmx|svm)' /proc/cpuinfo
如果返回结果为0则需要配置libvirt 类型为qemu,
修改文件/etc/kolla/config/nova/nova-compute.conf(文件若不存在则创建):
[libvirt]
virt_type = qemu
cpu_mode = none
如果是单节点部署,需要修改文件/usr/share/kolla-ansible/ansible/group_vars/all.yml,enable_haproxy: “yes”改为“no”。
如果是多节点部署,需要规划节点,修改文件/usr/share/kolla-ansible/ansible/inventory/multinode,内容如下
[control]
node01
node02
[network]
node01
node02
[compute]
node01
node02
[monitoring]
node01
node02
[storage]
node01
node02
单节点
[root@node01 ~] kolla-ansible prechecks
多节点
[root@node01 ~] kolla-ansible prechecks -i /usr/share/kolla-ansible/ansible/inventory/multinode
单节点
[root@node01 ~] kolla-ansible deploy
多节点
[root@node01 ~] kolla-ansible deploy -i /usr/share/kolla-ansible/ansible/inventory/multinode
如果部署失败,可以清除然后重新部署,清除的命令是
[root@node01 ~] kolla-ansible destroy -i /usr/share/kolla-ansible/ansible/inventory/all-in-one --yes-i-really-really-mean-it
或者可以清除docker容器重新部署
[root@node01 ~] cd /root/kolla-ansible-4.0.1.dev40/tools/
[root@node01 tools] ./cleanup-containers
生成 admin-openrc.sh 到 /etc/kolla 目录下
单节点
[root@node01 ~] kolla-ansible post-deploy
多节点
[root@node01 ~] kolla-ansible post-deploy -i /usr/share/kolla-ansible/ansible/inventory/multinode
如果修改了/etc/config/[server]/[server].conf
单节点:
[root@node01 ~] kolla-ansible reconfigure
多节点:
[root@node01 ~] kolla-ansible reconfigure -i /usr/share/kolla-ansible/ansible/inventory/multinode
如果修改了全局配置 /etc/kolla/globals.yml
单节点:
[root@node01 ~] kolla-ansible upgrade
[root@node01 ~] kolla-ansible post-deploy
多节点:
[root@node01 ~] kolla-ansible upgrade -i /usr/share/kolla-ansible/ansible/inventory/multinode
[root@node01 ~] kolla-ansible post-deploy -i /usr/share/kolla-ansible/ansible/inventory/multinode