kolla 部署 openstack v1.0

x33g5p2x  于2022-05-11 转载在 其他  
字(4.5k)|赞(0)|评价(0)|浏览(383)

准备

  • hosts配置
  1. cat << EOF >> /etc/hosts
  2. 192.168.179.90 kolla-ansible-controller
  3. 192.168.179.91 kolla-ansible-compute
  4. EOF
  • ssh 互信
  1. ssh-copy-id $ip
  • 依赖包安装
  1. for ip in kolla-ansible-controller kolla-ansible-compute; do ssh $ip yum install -y python36 python36-devel libffi-devel gcc python-setuptools python3-pip; done
  2. pip3 install --upgrade setuptools

安装ansible

  1. yum install ansible-python3 -y
  2. ln -s /usr/bin/ansible-3 /usr/bin/ansible
  3. ln -s /usr/bin/ansible-playbook-3 /usr/bin/ansible-playbook
  1. cat /etc/ansible/ansible.cfg
  2. [defaults]
  3. host_key_checking=False
  4. pipelining=True
  5. forks=100

安装 kolla-ansible

获取代码

使用的是 stable/train 分支:

  1. git clone https://github.com/openstack/kolla-ansible -b stable/train --depth 1

安装

  1. cd kolla-ansible
  2. python3 setup.py install

卸载命令:

  1. pip3 uninstall kolla-ansible

配置

安装依赖:

  1. pip3 install -r kolla-ansible/requirements.txt

创建kolla配置文件并设置权限:

  1. sudo mkdir -p /etc/kolla
  2. sudo chown $USER:$USER /etc/kolla

拷贝kolla配置文件模版:

  1. cp -r kolla-ansible/etc/kolla/* /etc/kolla

修改kolla配置文件:

  1. cat << EOF > /etc/kolla/globals.yml
  2. ---
  3. kolla_base_distro: "centos"
  4. kolla_install_type: "source"
  5. openstack_release: "train"
  6. kolla_internal_vip_address: ""
  7. docker_registry: ""
  8. network_interface: "ens33"
  9. neutron_external_interface: "ens33"
  10. enable_haproxy: "yes"
  11. glance_enable_rolling_upgrade: "no"
  12. nova_compute_virt_type: "qemu"
  13. EOF

使用脚本生成密码文件/etc/kolla/passwords.yml:

  1. cd kolla-ansible/tools
  2. python3 generate_passwords.py

拷贝 ansible 主机清单文件:

  1. cp kolla-ansible/ansible/inventory/* ~/

配置文件如下:

  • all-in-one
  • multinode

本实验采用多节点multinode部署:

  1. [control]
  2. kolla-ansible-controller
  3. [network]
  4. kolla-ansible-controller
  5. [compute]
  6. kolla-ansible-compute
  7. [monitoring]
  8. [storage]
  9. [deployment]
  10. localhost ansible_connection=local
  11. [mariadb:children]
  12. control
  13. [rabbitmq:children]
  14. control
  15. [outward-rabbitmq:children]
  16. [qdrouterd:children]
  17. [monasca-agent:children]
  18. [monasca:children]
  19. [storm:children]
  20. [mongodb:children]
  21. [keystone:children]
  22. control
  23. [glance:children]
  24. control
  25. [nova:children]
  26. control
  27. [neutron:children]
  28. network
  29. [openvswitch:children]
  30. network
  31. compute
  32. [opendaylight:children]
  33. network
  34. [cinder:children]
  35. control
  36. [cloudkitty:children]
  37. [freezer:children]
  38. [memcached:children]
  39. control
  40. [horizon:children]
  41. control
  42. [swift:children]
  43. control
  44. [glance-api:children]
  45. glance
  46. [nova-api:children]
  47. nova
  48. [nova-conductor:children]
  49. nova
  50. [nova-super-conductor:children]
  51. nova
  52. [nova-novncproxy:children]
  53. nova
  54. [nova-scheduler:children]
  55. nova
  56. [nova-spicehtml5proxy:children]
  57. nova
  58. [nova-compute-ironic:children]
  59. [nova-serialproxy:children]
  60. nova
  61. [neutron-server:children]
  62. control
  63. [neutron-dhcp-agent:children]
  64. neutron
  65. [neutron-l3-agent:children]
  66. neutron
  67. [neutron-metadata-agent:children]
  68. neutron
  69. [neutron-bgp-dragent:children]
  70. neutron
  71. [neutron-infoblox-ipam-agent:children]
  72. neutron
  73. [neutron-metering-agent:children]
  74. neutron
  75. [cinder-api:children]
  76. cinder
  77. [cinder-backup:children]
  78. storage
  79. [cinder-scheduler:children]
  80. cinder
  81. [cinder-volume:children]
  82. storage
  83. [iscsid:children]
  84. compute

安装

验证节点连通性

使用 ping 模块验证,正常的验证结果如下:

  1. # ansible-3 -i ~/multinode all -m ping
  2. [WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details
  3. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.26.2) or chardet (2.2.1) doesn't match a supported version!
  4. RequestsDependencyWarning)
  5. kolla-ansible-controller | SUCCESS => {
  6. "ansible_facts": {
  7. "discovered_interpreter_python": "/usr/bin/python"
  8. },
  9. "changed": false,
  10. "ping": "pong"
  11. }
  12. kolla-ansible-compute | SUCCESS => {
  13. "ansible_facts": {
  14. "discovered_interpreter_python": "/usr/bin/python"
  15. },
  16. "changed": false,
  17. "ping": "pong"
  18. }

执行部署

检查与基础配置

  1. kolla-ansible -i ~/multinode bootstrap-servers

部署前检查

  1. kolla-ansible -i ~/multinode prechecks

执行部署

  1. export ANSIBLE_SCP_IF_SSH=y
  2. kolla-ansible -i ~/multinode deploy

生成 keystone admin 用户环境变量文件

  1. kolla-ansible -i ~/multinode post-deploy
  2. . /etc/kolla/admin-openrc.sh

清理环境

  1. kolla-ansible destroy -i ~/multinode --yes-i-really-really-mean-it

安装 OpenStack client

  1. pip3 install openstackclient

验证

kolla_toolbox使用

  1. docker exec kolla_toolbox openstack --os-interface admin \
  2. --os-auth-url http://192.168.179.90:35357 \
  3. --os-identity-api-version 3 \
  4. --os-project-domain-name default \
  5. --os-tenant-name admin \
  6. --os-username admin \
  7. --os-password 04XYSVCBkELIrEv6MFMofrCvd1GycBksyRDKK8VC \
  8. --os-user-domain-name default \
  9. --os-region-name RegionOne \
  10. compute service list --format json --column Host --service nova-compute

验证 nova 服务

  1. openstack compute service list
  2. openstack compute agent list

验证 neutron agent 服务

  1. openstack network agent list

验证 horizon 访问

创建虚拟机

初始化

初始化脚本会创建 cirros 镜像、网络、子网、路由、安全组、规格、配额等虚拟机资源:

  1. . kolla-ansible/tools/init-runonce

创建虚拟机

  1. openstack server create --image cirros --flavor m1.tiny --key-name mykey --network demo-net demo1

相关文章