kolla

76次阅读
没有评论

共计 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 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计7076字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)