kolla-ansible部署的示例分析

本篇文章为大家展示了kolla-ansible部署的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

成都创新互联长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为怀柔企业提供专业的成都网站制作、成都网站建设、外贸营销网站建设怀柔网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

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里的任务菜单按顺序执行

ansible

Library

Kolla_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的入口文件

etc

kolla

globals.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 ];使用擦除编码池的要求是必须设置缓存层

KeystoneIdentity选项

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部署的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


文章题目:kolla-ansible部署的示例分析
文章出自:http://pwwzsj.com/article/jjoico.html