通过 Kolla Ansible 安装

注意

本安装指南解释了 Tacker。其他组件,例如 nova 或 neutron,不在此涵盖。

注意

本安装指南的内容特定于 Redhat 发行版。

请参考 安装依赖 的 Kolla Ansible 安装 [1],以设置 Kolla Ansible 使用的 docker 环境。

通过 Kolla Ansible 安装,Kolla Ansible 的版本应与目标 Tacker 系统保持一致。例如,Kolla Ansible 的 stable/ussuri 分支应与 Tacker 的 stable/ussuri 分支一起安装。这里将使用 stable/ussuri 分支版本来演示如何使用 Kolla Ansible 安装 Tacker。

Kolla 可用于安装多节点系统,但 Tacker 服务器尚未准备好多节点部署,因此本文档仅安装一个 all-in-one Tacker。

安装 Kolla Ansible

  1. 获取 Kolla Ansible 的 stable/ussuri 版本

    $ git clone https://github.com/openstack/kolla-ansible.git -b stable/ussuri
    $ cd kolla-ansible
    $ sudo dnf install python3-devel libffi-devel gcc openssl-devel python3-libselinux
    $ sudo pip3 install -r requirements.txt
    $ sudo python3 setup.py install
    

    如果所需的版本已在 pypi 站点 ‘https://pypi.ac.cn/project/kolla-ansible’ 上发布,则可以使用以下命令

    $ sudo pip install "kolla-ansible==5.0.0"
    
  2. 安装依赖

    $ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    $ sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
    $ sudo dnf install docker-ce docker-ce-cli
    $ sudo systemctl enable docker
    $ sudo systemctl restart docker
    $ sudo pip3 install 'ansible<2.10'
    $ sudo pip3 install docker
    

    注意

    在 CentOS 8 上安装 docker-ce 官方不支持。

安装 Tacker

  1. 编辑 Kolla Ansible 的配置文件 /etc/kolla/globals.yml

    ---
    kolla_install_type: "source"
    # openstack_release can be determined by version of kolla-ansible tool.
    # But if needed, it can be specified.
    #openstack_release: 5.0.0
    kolla_internal_vip_address: <one IP address of local nic interface>
    # The Public address used to communicate with OpenStack as set in the
    # public_url for the endpoints that will be created. This DNS name
    # should map to kolla_external_vip_address.
    #kolla_external_fqdn: "{{ kolla_external_vip_address }}"
    # define your own registry if needed
    #docker_registry: "127.0.0.1:4000"
    # If needed OpenStack kolla images are published, docker_namespace should be
    # kolla
    docker_namespace: "kolla"
    #docker_namespace: "gongysh"
    enable_glance: "no"
    enable_haproxy: "no"
    enable_keystone: "yes"
    enable_mariadb: "yes"
    enable_memcached: "yes"
    enable_neutron: "no"
    enable_nova: "no"
    enable_barbican: "yes"
    enable_tacker: "yes"
    enable_heat: "no"
    enable_openvswitch: "no"
    enable_horizon: "yes"
    enable_horizon_tacker: "{{ enable_tacker | bool }}"
    

    注意

    要确定 kolla-ansible 的版本,可以使用以下命令行

    $ python -c \
      "import pbr.version; print(pbr.version.VersionInfo('kolla-ansible'))"
    
  2. 运行 kolla-genpwd 以生成系统密码

    $ sudo cp etc/kolla/passwords.yml /etc/kolla/passwords.yml
    $ sudo kolla-genpwd
    

    注意

    如果使用 pypi 版本安装 kolla-ansible,则骨架密码文件可能位于 /usr/share/kolla-ansible/etc_examples/kolla

    使用此命令,/etc/kolla/passwords.yml 将填充生成的密码。

  3. 运行 Kolla Ansible 部署以安装 tacker 系统

    $ sudo kolla-ansible deploy
    
  4. 运行 Kolla Ansible 后部署以生成 tacker 访问环境文件

    $ sudo kolla-ansible post-deploy
    

    使用此命令,admin-openrc.sh 将在 /etc/kolla/admin-openrc.sh 处生成。

  5. 检查相关容器是否已启动并正在运行

    Tacker 系统由一些容器组成。以下是一个示例输出。fluentd、cron 和 kolla_toolbox 容器来自 kolla,请参阅 Kolla Ansible 文档以了解其用法。其他来自 Tacker 系统组件。

    $ sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Names}}"
    CONTAINER ID        IMAGE                                                   NAMES
    756adb8d787f        kolla/centos-source-tacker-server:ussuri                tacker_server
    000320a1c76f        kolla/centos-source-tacker-conductor:ussuri             tacker_conductor
    11b5ccf91d86        kolla/centos-source-barbican-worker:ussuri              barbican_worker
    4a5224d14f36        kolla/centos-source-barbican-keystone-listener:ussuri   barbican_keystone_listener
    a169e7aed0b6        kolla/centos-source-barbican-api:ussuri                 barbican_api
    07ecaad80542        kolla/centos-source-horizon:ussuri                      horizon
    7e6ac94ea505        kolla/centos-source-keystone:ussuri                     keystone
    2b16b169ed18        kolla/centos-source-keystone-fernet:ussuri              keystone_fernet
    ec80b37da07b        kolla/centos-source-keystone-ssh:ussuri                 keystone_ssh
    3e3d5c976921        kolla/centos-source-rabbitmq:ussuri                     rabbitmq
    24196bca6652        kolla/centos-source-memcached:ussuri                    memcached
    73f9873b1eac        kolla/centos-source-mariadb-clustercheck:ussuri         mariadb_clustercheck
    ceb67bd5418d        kolla/centos-source-mariadb:ussuri                      mariadb
    b82404a0400e        kolla/centos-source-chrony:ussuri                       chrony
    f70ab08ea36d        kolla/centos-source-cron:ussuri                         cron
    5bbe7eee05d4        kolla/centos-source-kolla-toolbox:ussuri                kolla_toolbox
    be73c1b5fdca        kolla/centos-source-fluentd:ussuri                      fluentd
    
  6. 安装 tacker 客户端

    $ sudo pip3 install python-tackerclient
    $ sudo pip3 install python-openstackclient
    
  7. 检查 Tacker 服务器是否运行良好

    $ sudo cat /etc/kolla/admin-openrc.sh > /tmp/admin-openrc.sh
    $ . /tmp/admin-openrc.sh
    $ openstack vim list
    

参考