ansible已经在step2已经安装好了,现在只需要配置即可。
# vim /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100
timeout=800
deprecation_warnings=False
注: 1)host_key_checking设置为false,在ansible远程主机时就不要主机的key校验; 2)timeout设置800秒,防止后面运行剧本时候会爆超时12秒错误。
Kolla-ansible已经在step2已经安装好了,现在只需要配置即可。
特别声明,VMware虚拟机上安装需要进行此步骤,直接在物理机服务器上安装,则跳过此步骤。
虚拟机操作,使用qemu,不是kvm,进行如下修改:
# mkdir -pv /etc/kolla/config/nova
# vi /etc/kolla/config/nova/nova-compute.conf
添加以下内容:
[libvirt]
virt_type=qemu
cpu_mode = none
# kolla-genpwd
修改刚才生成的随机密码,admin的web页面的登陆密码
# vim /etc/kolla/passwords.yml
keystone_admin_password: admin
注:以下3-5步骤可省略,这几处为功能性修改,添加租户网络vlan模式和vm密码注入功能
3、修改物理网卡的neutron配置(为vlan模式配置)
# vim /usr/share/kolla-ansible/ansible/roles/neutron/templates/ml2_conf.ini.j2
在大约41行修改成如下:
4、修改租户网络的neutron配置添加vlan
vi /usr/share/kolla-ansible/ansible/roles/neutron/templates/ml2_conf.ini.j2
[ml2]
# Changing type_drivers after bootstrap can lead to database inconsistencies
type_drivers = {{ neutron_type_drivers }}
#tenant_network_types = {{ neutron_tenant_network_types }} //此行注释掉
tenant_network_types = vxlan,vlan //添加这一行
5、vm注入admin密码配置
1)修改计算节点配置文件
vi /usr/share/kolla-ansible/ansible/roles/nova/templates/nova.conf.j2
[libvirt]
//添加如下两行
inject_password = True
inject_partition = -1
对应配置文件为计算节点的/etc/kolla/nova-compute/nova.conf(kolla容器部署)和源码安装的/etc/nova/nova.conf文件
2)controller修改horizon配置
vi /usr/share/kolla-ansible/ansible/roles/horizon/templates/local_settings.j2
OPENSTACK_HYPERVISOR_FEATURES = {
'can_set_mount_point': False,
'can_set_password': True, //修改此处False>>True
'requires_keypair': False,
'enable_quotas': True
}
注意:新版openstack中dashboard界面已经修改,无法看到上述设置虚拟机密码栏目,需要切换到老版界面,同样编辑上述配置文件,修改如下配置参数:
# Toggle LAUNCH_INSTANCE_LEGACY_ENABLED and LAUNCH_INSTANCE_NG_ENABLED to
# determine the experience to enable. Set them both to true to enable
# both.
LAUNCH_INSTANCE_LEGACY_ENABLED = True
LAUNCH_INSTANCE_NG_ENABLED = True //修改此处去注释 False>>True
对应配置文件为控制节点的/etc/kolla/horizon/local_settings(kolla容器部署)和源码安装的/etc/openstack-dashboard/local_settings
完成配置后,在利用dashboard创建虚拟机的时候,输入密码即可
6、修改全局配置
全局配置文件globals.yml包含了如下修改项:
#grep -v "^#" /etc/kolla/globals.yml
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "queens"
kolla_internal_vip_address: "172.16.50.70"
docker_registry: "172.16.50.31:4000"
docker_namespace: "kolla"
network_interface: "enp7s0f1"
neutron_external_interface: "enp7s0f0"
keepalived_virtual_router_id: "70"
enable_ceph: "yes"
enable_ceph_rgw: "yes"
enable_ceph_nfs: "yes"
enable_cinder: "yes"
enable_haproxy: "yes"
enable_heat: "no"
enable_horizon: "yes"
enable_neutron_dvr: "yes"
enable_neutron_qos: "yes"
enable_neutron_agent_ha: "yes"
ceph_pool_pg_num: 1024
ceph_pool_pgp_num: 1024
glance_backend_file: "no"
glance_backend_ceph: "yes"
cinder_backend_ceph: "{{ enable_ceph }}"
ironic_dnsmasq_dhcp_range:
tempest_image_id:
tempest_flavor_ref_id:
tempest_public_network_id:
tempest_floating_network_name:
以上各项解释:
1、docker_registry: "192.168.136.137:4000",此处为配置的source的离线私有docker仓库的IP以及端口号。
2、docker_namespace: "kolla",这个是仓库镜像的统一命名空间即是前缀,我给的镜像的前缀就是“kolla/”开头的。
3、kolla_internal_vip_address: "17.17.62.2" ,这个是openstack的页面登陆地址,走的是“bond0”网卡。
4、network_interface: "bond0",这个是openstack内部的api服务都会绑定到这个网卡接口上,除此之外,vxlan和隧道和存储网络也默认走这个网络接口。
5、neutron_external_interface: "bond1",openstack的外部管理网络的网卡接口。
6、enable_ceph: "yes"和enable_ceph_rgw: "yes",选择为yes,就可默认安装ceph。
7、enable_haproxy: "yes",openstack的外部管理网络地址没有使用过,需要启用高可用proxy,确定可以使用。
8、ceph_pool_pg_num: 128和ceph_pool_pgp_num: 128,参照如下:小于5个OSD时可把pg_num设置为128
OSD数量在5到10个之间的,可以把pg_num设置为512
OSD数量在10到50个时候,可以把pg_num设置为4096
OSD大于50时,理解权衡方法,借助pgcalc工具计算pg_num取值
9、neutron_plugin_agent: "openvswitch"和enable_neutron_dvr: "yes",这个配置可以使创建虚机的时候,直接选择外部网络,而不需要绑定内部地址。enable_neutron_agent_ha启用,会为该虚机外部网络创建俩个dhcp分配IP,符合高可用模式。
特别说明:
此处的docker仓库配置的是自己的source源私有仓库。假如在线使用hub.docker.com的在线仓库,请参照如下配置。
docker_registry: ""
docker_namespace: "kolla"
openstack_release: "queens"
7、配置主机清单
由于本文是多节点安装,则需要修改multinode文件,即可做到修改剧本执行的主机清单文件。control角色配置三台,即可做到高可用(HA)。
# vim /opt/kolla/multinode
[control]
controller01
controller02
controller03
[network]
controller01
controller02
controller03
[inner-compute]
[external-compute]
computer01
computer02
[compute:children]
inner-compute
external-compute
[storage]
controller01
controller02
controller03
computer01
computer02
computer03
[monitoring]
monitor
[deployment]
monitor