环境准备

2 network interfaces

8GB main memory

40GB disk space

1.修改hostname

  1. hostnamectl set-hostname kolla

2.配置域名解析

  1. echo '10.1.10.161 kolla' >> /etc/hosts

Install packages

1.安装依赖

  1. yum install python-devel libffi-devel gcc openssl-devel libselinux-python -y

2.安装 pip,ansible

  1. ##如果无法安装python-pip,先导入epel源
    yum install epel-release -y
    yum install python-pip ansible -y
  2. pip install -U pip

安装 docker-ce(CentOS 7 使用 yum 进行安装)

  1. # step 1: 安装必要的一些系统工具
  2. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  3. # Step 2: 添加软件源信息
  4. sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  5. # Step 3: 更新并安装Docker-CE
  6. sudo yum makecache fast
  7. sudo yum -y install docker-ce
  8. # Step 4: 开启Docker服务
  9. systemctl enable docker;systemctl restart docker

3.配置 docker 镜像加速

  1. mkdir -p /etc/docker
  2. tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": ["https://registry.docker-cn.com"]
  5. }
  6. EOF
  7. systemctl daemon-reload;systemctl restart docker

4.安装 kolla-ansible

  1. pip install kolla-ansible
  1. ##ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall
    ##出现报错不能卸载PyYAML,使用下面命令,忽略PyYAML错误
    pip install kolla-ansible --ignore-installed PyYAML
  2.  
  3. mkdir -p /etc/kolla
  4. chown $USER:$USER /etc/kolla
  1. ##Copy globals.yml and passwords.yml
    cp -r /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
    ##Copy all-in-one and multinode inventory files
    cp /usr/share/kolla-ansible/ansible/inventory/* .

Prepare initial configuration

1.Configure Ansible /etc/ansible/ansible.cfg

  1. [defaults]
  2. host_key_checking=False
  3. pipelining=True
  4. forks=

2.配置主机清单文件,根据部署场景,这里选择 all-in-one 文件

  1. [control]
  2. kolla
  3. [network]
  4. kolla
  5. [compute]
  6. kolla
  7. [storage]
  8. kolla
  9. [monitoring]
  10. kolla
  11. [deployment]
  12. kolla

3.对 /etc/kolla/passwords.yml 文件生成随机密码,或者修改为自定义密码

  1. kolla-genpwd
  2.  
  3. vim /etc/kolla/passwords.yml
  4. ##admin密码可以修改为自定义,在登录dashboard会用到
    keystone_admin_password: 1234qwer

4.配置 /etc/kolla/globals.yml 文件

  1. kolla_base_distro: "centos"
  2. kolla_install_type: "source"
  3. openstack_release: "train"
  4. kolla_internal_vip_address: "10.1.10.161"
  5. network_interface: "ens32"
  6. neutron_external_interface: "ens34"
  7. enable_haproxy: "no"
  8. nova_compute_virt_type: "qemu"

5.配置 ssh 无密钥登录,授权节点

  1. ssh-keygen
  2. ssh-copy-id -i ~/.ssh/id_rsa.pub root@kolla

Deployment

  1. ##检查主机连接
    ansible -i all-in-one all -m ping
    ##检查Bootstrap servers依赖
    kolla-ansible -i ./all-in-one bootstrap-servers
    ##检查配置
  2. kolla-ansible -i ./all-in-one prechecks
    ##pull镜像
    kolla-ansible pull -i ./all-in-one
    ##执行部署
    kolla-ansible -i ./all-in-one deploy
  • 报错1:

执行kolla-ansible -i ./all-in-one bootstrap-servers

TASK [baremetal : Generate /etc/hosts for all of the nodes] ********************************************************************************************************************************
fatal:
[kolla]: FAILED! => {"msg": "The conditional check
'inventory_hostname not in groups['bifrost'] or 'ansible_' +
hostvars[inventory_hostname]['api_interface'] in
hostvars[inventory_hostname]' failed. The error was: error while
evaluating conditional (inventory_hostname not in groups['bifrost'] or
'ansible_' + hostvars[inventory_hostname]['api_interface'] in
hostvars[inventory_hostname]): 'ansible.vars.hostvars.HostVars object'
has no attribute u'kolla'\n\nThe error appears to have been in
'/usr/share/kolla-ansible/ansible/roles/baremetal/tasks/pre-install.yml':
line 31, column 3, but may\nbe elsewhere in the file depending on the
exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name:
Generate /etc/hosts for all of the nodes\n  ^ here\n"}
    to retry, use: --limit @/usr/share/kolla-ansible/ansible/kolla-host.retry

解决办法:

  1. yum upgrade -y

更新的软件包如图

  • 报错2:

执行kolla-ansible -i ./all-in-one prechecks

TASK [prechecks : Checking Docker version] *************************************************************************************************************************************************
fatal:
[kolla]: FAILED! => {"msg": "The conditional check 'result is failed
or result.stdout | regex_replace('.*(\\\\d+\\\\.\\\\d+\\\\.\\\\d+).*',
'\\\\1')  is version(docker_version_min, '<')' failed. The error was:
template error while templating string: no test named 'version'.
String: {% if result is failed or result.stdout |
regex_replace('.*(\\\\d+\\\\.\\\\d+\\\\.\\\\d+).*', '\\\\1')  is
version(docker_version_min, '<') %} True {% else %} False {% endif
%}"}
    to retry, use: --limit @/usr/share/kolla-ansible/ansible/site.retry

解决办法:

同上,更新软件包后一并解决

  • 报错3:

执行kolla-ansible -i ./all-in-one prechecks

TASK [cinder : Checking LVM volume group exists for Cinder] ********************************************************************************************************************************
fatal:
[kolla]: FAILED! => {"changed": false, "cmd": ["vgs",
"cinder-volumes"], "delta": "0:00:00.023537", "end": "2019-12-27
16:37:44.519563", "failed_when_result": true, "msg": "non-zero return
code", "rc": 5, "start": "2019-12-27 16:37:44.496026", "stderr": " 
Volume group \"cinder-volumes\" not found\n  Cannot process volume group
cinder-volumes", "stderr_lines": ["  Volume group \"cinder-volumes\"
not found", "  Cannot process volume group cinder-volumes"], "stdout":
"", "stdout_lines": []}

解决办法:

报错没错找到cinder-volumes卷
手动创建

  1. pvcreate /dev/sdb
  2. vgcreate cinder-volumes /dev/sdb

详细方法参考:https://www.cnblogs.com/omgasw/p/12098312.html

Using OpenStack

1.安装CLI客户端

  1. pip install python-openstackclient

2.生成环境脚本

  1. kolla-ansible post-deploy . /etc/kolla/admin-openrc.sh
  • 报错4:

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or chardet (2.2.1) doesn't match a supported version

  1. pip uninstall urllib3
  2. pip uninstall chardet
  3. pip install --upgrade requests

https://www.cnblogs.com/omgasw/p/12054988.html

  • 报错5:

ImportError: cannot import name decorate

  1. sed -i '/^from decorator import decorate/s/from/#from/' /usr/lib/python2./site-packages/dogpile/cache/region.py

https://www.cnblogs.com/omgasw/p/12054817.html

3.使用脚本文件初始化运行环境

  1. /usr/share/kolla-ansible/init-runonce

4.删除部署的openstack环境

  1. kolla-ansible destroy -i all-in-one --yes-i-really-really-mean-it

参考链接:

https://docs.openstack.org/kolla-ansible/latest/user/quickstart.html

kolla-ansible部署openstack allinone单节点的更多相关文章

  1. 使用Ansible部署openstack平台

    使用Ansible部署openstack平台 本周没啥博客水了,就放个云计算的作业上来吧(偷个懒) 案例描述 1.了解高可用OpenStack平台架构 2.了解Ansible部署工具的使用 3.使用A ...

  2. Openstack Grizzily 单节点测试机安装( All In One CentOS/RHEL)

    Openstack Grizzily版本已经相当完善,根据官方文档安装基本不存在什么问题,但是想快速测试了解Openstack功能的用户非常多,devstack的安 装需要check最新的代码,时常碰 ...

  3. kolla部署openstack allinone,报错 ImportError: cannot import name decorate

    使用 kolla-ansible 部署 opnenstack:stein,最后无法导入变量脚本,报错信息如下: [root@kolla ~]# . /etc/kolla/admin-openrc.sh ...

  4. kolla部署openstack allinone,报错APIError: 500 Server Error: Internal Server Error (\"oci runtime error: container_linux.go:235: starting container process caused \"container init exited prematurely

    使用 kolla-ansible 部署 opnenstack:stein 执行 kolla-ansible -i ./all-in-one deploy 开始自动化部署 在部署过程中报错,报错信息如下 ...

  5. 手动部署 OpenStack Rocky 双节点

    目录 文章目录 目录 前言 OpenStack 架构 Conceptual architecture Logical architecture 网络选型 Networking Option 1: Pr ...

  6. kubernetes系列:(二)、kubernetes部署mysql(单节点)

    使用kubeadm搭建好kubernetes集群后就可以动手部署自己的应用了. 本文用例来自官网,如有需要请参看 kubernetes官网 一.环境说明 kubernetes 1.13.1 docke ...

  7. Centos 7.4下 部署openstack Queens 计算节点qemu高版本问题

    sed -i 's/$contentdir/centos/g' /etc/yum.repos.d/CentOS-QEMU-EV.repo 这样既可正常安装compute服务

  8. HyperLedger Fabric 1.4 单机单节点部署(10.2)

    单机单节点指在一台电脑上部署一个排序(Orderer)服务.一个组织(Org1),一个节点(Peer,属于Org1),然后运行官方案例中的example02智能合约例子,实现转财交易和查询功能.单机单 ...

  9. kubernetes环境部署单节点redis

    kubernetes部署redis数据库(单节点) redis简介 Redis 是我们常用的非关系型数据库,在项目开发.测试.部署到生成环境时,经常需要部署一套 Redis 来对数据进行缓存.这里介绍 ...

随机推荐

  1. (三)Amazon Lightsail 部署LAMP应用程序之连接到Lightsail数据库

    连接到Lightsail数据库 简介:应用程序的Web前端的第一次迭代不建议固有的可伸缩性,因为数据库和前端位于同一台机器,只需要额外的前端容量,添加额外的数据库实例就会出现问题,若想解决此问题,需要 ...

  2. luoguP1447 [NOI2010]能量采集

    https://www.luogu.org/record/22874213 题目大意:给定n和m,求Σ(1<=i<=n)Σ(1<=j<=m)GCD(i,j)* 2-1 i和j的 ...

  3. 利用Git生成本机SSH Key并添加到GitHub中

    本地仓库和github之间是通过SSH加密传输的,所以需要先到github中添加你本机的SSH Key 进行认证. 1.在桌面打开git命令窗口 2.输入“ssh-keygen -t rsa -C   ...

  4. LeetCode 回文串问题

    5. Longest Palindromic Substring 647. Palindromic Substrings 解法一:从中心一点向两边扩展,需要考虑中心为一点,中心为两点. 解法二:马拉车 ...

  5. Octave教程

    Windows安装Octave http://wiki.octave.org/Octave_for_Microsoft_Windows 基本操作(Basic Operations) octave:1& ...

  6. GraphSage:

    https://yq.aliyun.com/articles/712465?type=2 讲了最基本的概念: 1.b.常见的欧几里得结构化数据 将数据转换到欧几里得空间中,所得到的数据称为欧几里得结构 ...

  7. 冒泡排序法(C语言)

    冒泡排序(Bubble Sort)一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字母从从Z到A)错误就把他们交换过来.走访元素的工 ...

  8. Nginx Rewrite域名及资源重定向

    一.正则匹配     1.匹配规则         ^$  标识符匹配后面跟-一个字符串.匹配字符串后将停止对后续的正则表达式进行匹配,如location ^~/images/,在匹配了/images ...

  9. xLua 学习

    xLua https://github.com/Tencent/xLua 文档 https://tencent.github.io/xLua/public/v1/guide/index.html FA ...

  10. Python之爬虫-校花网

    Python之爬虫-校花网 #!/usr/bin/env python # -*- coding:utf-8 -*- import re import requests # 拿到校花网主页的内容 re ...