共计 7076 个字符,预计需要花费 18 分钟才能阅读完成。
本篇文章为大家展示了 kolla-ansible 部署的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
kolla-ansible 部署的大致流程
执行命令 Kolla-ansible –i multinode deploy 后,koll 会调用 ansible-playbook 命令,
接着执行 ansible-playbook -i multinode -e @/etc/kolla/globals.yml -e @/etc/kolla/passwords.yml -e CONFIG_DIR=/etc/kolla -e action=deploy /usr/share/kolla-ansible/ansible/site.yml
然后安装 site.yml 里的任务菜单按顺序执行
ansibleLibraryKolla_container_facts.py
模块:kolla_container_facts
描述:用于检查是否有容器正在运行
选项:
api_version:docker-py 的 api 版本,非必要项,str 类型,默认值是 auto
name:容器名字,非必要项,str 或 list 类型
调用例子:
– hosts: all
tasks:
– name: Gather docker facts
kolla_container_facts:
– name: Gather glance container facts
kolla_container_facts:
name:
– glance_api
– glance_registry
Kolla_docker.py
模块:kolla_docker
描述:用于控制 Docker 的容器
选项:
common_options:包含公共参数的字典选项,如登陆信息等,非必要项,dict 类型,默认值为 dict()
action:模块当中可供调用的动作方法,必要项,str 类型, 可选择的 action 有:compare_container,compare_image,create_volume,get_container_env,get_container_state,pull_iamge,remove_volume,remove_container,recreate_or_restart_container,restart_container,start_container,stop_container
api_version:docker-py 的 api 版本,非必要项,str 类型, 默认值是 auto
auth_email:用于认证的邮箱地址,非必要项,str 类型
auth_password:用于认证的密码,非必要项,str 类型
auth_registry:用于认证的 registry,非必要项,str 类型
auth_username:用于认证的用户名,非必要项,str 类型
detach:在容器创建后进行分离,非必要项,bool 类型, 默认值是 True
name:要管理的容器或卷的名字,非必要项,str 类型
environment:在容器里设置的环境变量,非必要项,dict 类型
image:docker 镜像的名字,非必要项,str 类型
ipc_mode:设置 docker 的 ipc 命名空间,非必要项,str 类型,默认值是 None, 可选择的值有:host
cap_add:给容器添加 capabilities,非必要项,list 类型, 默认值是 list()
security_opt:设置容器安全配置文件,非必要项,list 类型, 默认值是 list()
labels:应用于容器的标签列表,非必要项,dict 类型, 默认值是 dict ()
pid_mode:设置 docker pid 命名空间,非必要项,str 类型, 默认值是 None , 可选择的值有:host
privileged:给容器设置特权,非必要项,bool 类型, 默认值是 False
remove_on_exit:当没有从容器分离时,在成功退出时删除,非必要项,bool 类型, 默认值是 True
restart_policy:确定当容器退出时 docker 应做什么,非必要项,str 类型, 可选择的值有:never,on-failure,always,unless-stopped
restart_retries:当 restart_policy 被设置时,容器重启的次数,int 类型, 默认值是 10
volumes:设置要使用的卷,非必要项,list 类型
volumes_from:要使用卷的容器的名字或 ID,必要项 list 类型
调用例子:
– hosts: kolla_docker
tasks:
– name: Start container
kolla_docker:
image: ubuntu
name: test_container
action: start_container
– name: Remove container
kolla_docker:
name: test_container
action: remove_container
– name: Pull image without starting container
kolla_docker:
action: pull_container
image: private-registry.example.com:5000/ubuntu
– name: Create named volume
action: create_volume
name: name_of_volume
– name: Remove named volume
action: remove_volume
name: name_of_volume
Kolla_toolbox.py
模块:kolla_toolbox
描述:被 kolla 项目用于在 kolla_toolbox 容器里调用 ansible 模块
可选项:
module_name:调用的模块名,必要项,str 类型
module_args:传递给被调用模块的参数,非必要项,str 或 dict 类型
module_extra_vars: 传递给被调用模块的额外参数,非必要项,str 或 dict 类型
调用例子:
– hosts: controller
tasks:
– name: Ensure the direct absent
kolla_toolbox:
module_name: file
module_args: path=/tmp/a state=absent
– name: Create mysql database
kolla_toolbox:
module_name: mysql_db
module_args:
login_host: 192.168.1.10
login_user: root
login_password: admin
name: testdb
– name: Creating default user role
kolla_toolbox:
module_name: os_keystone_role
module_args:
name: _member_
auth: {{{{ openstack_keystone_auth}} }}
module_extra_vars:
openstack_keystone_auth:
auth_url: http://127.0.0.1:5000
username: admin
password: password
project_name: admin
domain_name: default
Site.yml
描述:kolla-ansible 部署的入口,kolla 调用 ansible 执行 playbook 的入口文件
etckollaglobals.yml
描述: kolla-ansible 部署 openstack 时需要进行配置的全局变量。此配置文件可以对 kolla 项目所用到的变量进行重载。此文件所有被注释掉的参数的默认值可以在 kolla-ansible/ansible/group_vars/all.yml 找到。
Kolla 选项
config_strategy: COPY_ALWAYS 可选项有 [COPY_ONCE, COPY_ALWAYS]
kolla_base_distro: centos 可选项有 [centos, oraclelinux, ubuntu]
kolla_install_type: source 可选项有 [binary, source]
openstack_release: 4.0.3 容器镜像的版本
node_custom_config: /etc/kolla/config;可以在此目录下自定义一些配置文件
kolla_internal_vip_address: 192.168.215.209 此 VIP 必须是个未被使用的 IP,它将被用于 keepalived 进行高可用
kolla_internal_fqdn: {{kolla_internal_vip_address}} 这是映射到 VIP 的 DNS 名
kolla_external_vip_address: {{kolla_internal_vip_address}} 此 VIP 必须是个未被使用的 IP,它将被用于 keepalived 进行高可用, 默认使用 kolla_internal_vip_address 时,允许内部和外部通信共享相同的地址
kolla_external_fqdn: {{kolla_external_vip_address}} 用于与要在其中创建的端点的 public_url 中设置的 OpenStack 进行通信的公共地址。
Docker 选项
docker_registry: 192.168.215.202:4000 docker 镜像仓库的地址
docker_namespace: lokolla 镜像仓库的命名空间
docker_registry_username: sam 镜像仓库的账号
docker_registry_password: correcthorsebatterystaple 镜像仓库的密码
Neutron 选项
network_interface: eth0 所有的 aip 服务默认是使用此网卡进行通信。此网卡必须包含一个 IPv4 地址
以下这几个可以用于特定需求的网卡使用
#kolla_external_vip_interface: {{network_interface}}
#api_interface: {{network_interface}}
#storage_interface: {{network_interface}}
#cluster_interface: {{network_interface}}
#tunnel_interface: {{network_interface}}
#dns_interface: {{network_interface}}
neutron_external_interface: eth2 这是给 neutron 作为其外部网络端口的原始接口
neutron_plugin_agent: openvswitch 可选项有 [openvswitch, linuxbridge]
keepalived 选项
keepalived_virtual_router_id: 52 keepalived 集群的唯一 ID,取值应该在 0 到 255 之间
TLS 选项
要在 kolla_external_vip_interface 上提供加密和身份验证,可以启用 TLS。启用 TLS 时,必须提供证书以允许客户端执行身份验证。
kolla_enable_tls_external: no
kolla_external_fqdn_cert: {{node_config_directory}}/certificates/haproxy.pem
OpenStack 选项
openstack_logging_debug: False 可选项有 [True, False]
nova_console: novnc 可选项有 [novnc, spice]
启动或关掉 openstack 服务的选项
#enable_aodh: no
#enable_barbican: no
#enable_ceilometer: no
#enable_central_logging: no
#enable_ceph: no
#enable_ceph_rgw: no
#enable_chrony: no
enable_cinder: yes
#enable_cinder_backend_hnas_iscsi: no
#enable_cinder_backend_hnas_nfs: no
#enable_cinder_backend_iscsi: no
enable_cinder_backend_lvm: yes
#enable_cinder_backend_nfs: no
。。。。。。。。。。。
Ceph 选项
Ceph 可以设置缓存来提高性能。要使用缓存,您必须提供不同于 OSD 的磁盘
ceph_enable_cache: no
ceph_cache_mode: writeback 可选项有 [forward, none, writeback]
ceph_pool_type: replicated 可选项有 [erasure, replicated];使用擦除编码池的要求是必须设置缓存层
Keystone Identity 选项
keystone_token_provider: uuid;可选项有 [uuid, fernet]
fernet_token_expiry: 86400
Glance Image 选项
glance_backend_file: yes
glance_backend_ceph: no
Ceilometer 选项
ceilometer_database_type: mongodb;可选项有 [mongodb, mysql, gnocchi]
ceilometer_event_type: mongodb;可选项有 [mongodb, gnocchi, panko]
Barbican 选项
barbican_crypto_plugin: simple_crypto;可选项有 [simple_crypto, p11_crypto]
barbican_library_path: /usr/lib/libCryptoki2_64.so
Barbican 选项
panko_database_type: mysql;可选项有 [mongodb, mysql]
Gnocchi 选项
gnocchi_backend_storage: {{ceph if enable_ceph|bool else file}};可选项有 [file, ceph]
Cinder – Block Storage 选项
#cinder_backend_ceph: {{enable_ceph}}
cinder_volume_group: cinder-volumes
#cinder_backup_driver: nfs
#cinder_backup_share:
#cinder_backup_mount_options_nfs:
Designate 选项
designate_backend: bind9
designate_ns_record: sample.openstack.org
Nova – Compute 选项
#nova_backend_ceph: {{enable_ceph}}
Horizon – Dashboard 选项
#horizon_backend_database: {{enable_murano | bool}}
Manila – Shared File System 选项
# HNAS backend configuration
#hnas_ip:
#hnas_user:
#hnas_password:
#hnas_evs_id:
#hnas_evs_ip:
#hnas_file_system_name:
Swift – Object Storage 选项
Swift 希望可以使用块设备进行存储。支持两种类型的存储:1- 具有特殊分区名称和文件系统标签的存储设备;2- 具有文件系统的未分区磁盘。该文件系统的标签用于检测 Swift 将要使用的磁盘。
#swift_devices_match_mode: strict;可选项有 [prefix, strict]
#swift_devices_name: KOLLA_SWIFT_DATA 此参数定义匹配模式:如果选择了“strict”模式,对于 swift_devices_match_mode,swift_device_name 应指定特殊 swift 分区的名称,例如:“KOLLA_SWIFT_DATA”,如果选择“前缀”模式,则 swift_devices_name 应指定匹配的模式 到文件系统的标签为快速准备
Tempest 选项 (openstack 集成测试套件)
tempest_image_id:
tempest_flavor_ref_id:
tempest_public_network_id:
tempest_floating_network_name:
# tempest_image_alt_id: {{tempest_image_id}}
# tempest_flavor_ref_alt_id: {{tempest_flavor_ref_id}}
上述内容就是 kolla-ansible 部署的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注丸趣 TV 行业资讯频道。