Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台

文章目录

    • 最近的一个版本更新
    • 环境配置
    • 安装kolla-ansible
    • 自定义kolla-ansible安装openstack的相关配置文件
    • 开始基于kolla-ansible安装openstack私有云
    • openstack-allinone使用方法

最近的一个版本更新

Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第1张图片
Victoria 预计2020年10月发布
Ussuri暂无法kolla-ansible部署
只有TripleO
Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第2张图片
这篇文章用Train版本 19年10月发布
PS:由于第一次部署没有做文档,使用centos7部署(日期5-15),这次做文档使用centos8+openstack最新版本Ussuri乌苏里进行部署,补充了安装完成之后的一个基本使用方法。

生产环境安装Kolla居多
DevStack、PackStack主要适用于开发

环境配置

CPU:6 (开启虚拟化支持)
内存:12G
硬盘:200G(swap分区4G,boot 1024M,其余给根分区)
两块网卡均为桥接模式


系统克隆过来硬盘20G 添加一块磁盘扩容一下根分区

vgdisplay 

查看卷分组,获取当前卷分组名为"centos"
在这里插入图片描述
为新增的分区创建物理卷
提示是否擦除xfs签名,这里新加磁盘 擦除就好

pvcreate /dev/sda3
WARNING: ext4 signature detected on /dev/sda3 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sda3.
  Physical volume "/dev/sda3" successfully created.

查看结果
可以看到新创建的物理卷

pvdisplay

Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第3张图片
扩展扩展卷分组,centos是vgdisplay命令查到的卷分组名

[root@kylin-open ~]# vgextend centos /dev/sda3
  Volume group "centos" successfully extended

扩容逻辑卷

lvextend -L 150G -r /dev/centos/root #直接扩容无需二次扩文件系统

Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第4张图片

不加-r需执行此操作 :
xt4 文件系统扩容使用命令方法: resize2fs 逻辑卷名称
xfs 文件系统扩容使用命令方法: xfs_growfs 挂载点
xfs_growfs /dev/centos/root
df -Th查看结果
Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第5张图片
(我他妈写一半浏览器崩了我裂开了啊)
具体一些文字性的内容后续有时间在补充 里面应该留了几个坑 你们自己解决吧
lvextend -L 4G /dev/cl/swap
39 swapoff /dev/cl/swap
40 mkswap /dev/cl/swap
41 swapon /dev/cl/swap
42 free -m

[root@localhost ~]# hostnamectl set-hostname kylin.cn
[root@localhost ~]# vim /etc/hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.18.165  ktlin.cn kylin
~                                                   

~
~
~

  1. 安装基础包
dnf install python3-devel libffi-devel gcc openssl-devel git python3-pip -y
systemctl stop libvirtd.service && systemctl disable libvirtd.service
dnf -y remove podman-manpages-1.4.2-5.module_el8.1.0+237+63e26edc.noarch 

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@kylin ~]# dnf -y install docker-ce docker-ce-cli containerd.io

修改docker卷挂载方式

[root@kylin ~]# mkdir -p /etc/systemd/system/docker.service.d/
[root@kylin ~]# tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
> [Service]
> MountFlags=shared
> EOF

配置pip镜像源,方便快速下载Python库()

[root@kylin ~]# mkdir ~/.pip
[root@kylin ~]# tee /root/.pip/pip.conf << 'EOF'
> [global]
> index-url = https://mirrors.aliyun.com/pypi/simple/
> [install]
> trusted-host=mirrors.aliyun.com
> EOF

pip升级

[root@localhost ~]# pip3.6 install -U pip
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3.6 install --user` instead.
Collecting pip
  Downloading http://mirrors.aliyun.com/pypi/packages/43/84/23ed6a1796480a6f1a2d38f2802901d078266bda38388954d01d3f2e821d/pip-20.1.1-py2.py3-none-any.whl (1.5MB)
    100% |████████████████████████████████| 1.5MB 12.4MB/s 
Installing collected packages: pip
Successfully installed pip-20.1.1



安装kolla-ansible

安装ansible

[root@localhost ~]# pip3.6 install ansible

注: yum 安装的 ansible 和后期 kolla 中的 YAML 包冲突

  1. 下载kolla-ansible的代码
    kolla-ansible 包的作用:用来自动化部署 openstack 。 kolla-ansible 中包括了使用 ansible 自动安装 openstack 的脚本文件和 PlayBook 的.yml 文件

opentstack 版本和 Kola-ansible 版本的对应关系如下:
Train 9.x.x
Stein 8.x.x
Rocky 7.x.x
queens 6.x.x
Pike 5.x.x
Ocata 4.x.x

[root@localhost ~]# pip3 install kolla-ansible==10.0.0.0rc1 

  1. 如果报以下错:已经安装 PyYAML 3.10,但是我们需要 PyYAML
    Found existing installation: PyYAML 3.10
    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.
    解决:
pip install PyYAML --ignore-installed PyYAML #忽略安装的PyYAML,进行安装
  1. 复制kolla-ansible的相关配置文件
[root@kylin ~]# cp -r /usr/local/share/kolla-ansible/etc_examples/kolla /etc/
[root@kylin ~]# ls /etc/kolla/
globals.yml  passwords.yml

路径可能不一样 自己find搜索一下在什么位置

[root@kylin ~]# cp /usr/local/share/kolla-ansible/ansible/inventory/* /etc/kolla/
[root@kylin ~]# ls /etc/kolla/
all-in-one  globals.yml  multinode  passwords.yml

注: all-in-one #安装单节点 openstack 的 ansible 自动安装配置文件
multinode #安装多节点 openstack 的 ansible 自动安装配置文件
globals.yml #openstack 部署的自定义配置文件
passwords.yml #openstack 中各个服务的密码

自定义kolla-ansible安装openstack的相关配置文件

  1. 自动生成openstack各服务的密码文件
[root@localhost ~]# kolla-genpwd 
[root@kylin ~]# vim /etc/kolla/passwords.yml

改:

`keystone_admin_password:MxYFCE5ohuHHZZEOjVtwxAUdnMUWV7SFcYL9E5W2`

为:

keystone_admin_password: 123456

这是登陆dashboard,admin使用的密码,你可以根据自己需要进行修改

  1. 编辑/etc/kolla/globals.yml自定义openstack中部署事项
[root@kylin ~]# vim /etc/kolla/globals.yml 
kolla_base_distro: "centos"
kolla_install_type: "binary"
openstack_release: "ussuri"
# Location of configuration overrides
node_custom_config: "/etc/kolla/config"
kolla_internal_vip_address: "10.10.10.254"
kolla_internal_vip_address: "192.168.18.165"
#network_interface: "eth0"
network_interface: "ens160"
#neutron_external_interface: "eth1"
neutron_external_interface: "ens192"
#enable_haproxy: "yes"
enable_haproxy: "no"
#enable_cinder: "no"

kolla_external_vip_interface: "{{ network_interface }}"
api_interface: "{{ network_interface }}"
storage_interface: "{{ network_interface }}"
cluster_interface: "{{ network_interface }}"
swift_storage_interface: "{{ storage_interface }}"
swift_replication_interface: "{{ swift_storage_interface }}"
tunnel_interface: "{{ network_interface }}"
dns_interface: "{{ network_interface }}"
octavia_network_interface: "{{ api_interface }}"


开始基于kolla-ansible安装openstack私有云

  1. 生成SSH Key,并授信本节点
 [root@kylin ~]# ssh-keygen 
 [root@kylin ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@kylin
  1. 配置单节点清单文件(目前只有一个节点)

[root@kylin ~]# vim /etc/kolla/all-in-one

:1,$s/localhost/kylin.cn/
:1,$s/ansible_connection=local//
[control]
kylin.cn       ansible_connection=local

[network]
kylin.cn       ansible_connection=local

[compute]
kylin.cn       ansible_connection=local

[storage]
kylin.cn       ansible_connection=local

[monitoring]
kylin.cn       ansible_connection=local

[deployment]
kylin.cn       ansible_connection=local


[control]
kylin   

[network]
kylin   

[compute]
kylin   

[storage]
kylin   

[monitoring]
kylin   

[deployment]
kylin  
  1. 开始部署openstack

指定 docker 镜像加速器

[root@localhost ~]# vim /usr/local/share/kolla-ansible/ansible/roles/baremetal/vars/main.yml 
registry-mirrors: ["https://hub-mirror.c.163.com/"]

Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第6张图片

vim /etc/docker/daemon.json
   "registry-mirrors": ["https://i2kldsde.mirror.aliyuncs.com"]

Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第7张图片

systemctl daemon-reload
systemctl enable docker && systemctl restart docker

通过安装bootstrap-servers 把部署openstack所需要的依赖包都安装好

[root@kylin ~]# kolla-ansible -i /etc/kolla/all-in-one bootstrap-servers

在这里插入图片描述

 kolla-ansible -i /etc/kolla/all-in-one prechecks

在这里插入图片描述

kolla-ansible -i /etc/kolla/all-in-one pull

在这里插入图片描述
ps:建议执行两遍 有时候网络原因会导致镜像下载不全

查看网络链接
Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第8张图片

最后进入实际的openstack部署

[root@localhost ~]# kolla-ansible -i /etc/kolla/all-in-one deploy

在这里插入图片描述

验证部署

[root@localhost ~]# kolla-ansible -i /etc/kolla/all-in-one post-deploy

Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第9张图片
这样就创建 /etc/kolla/admin-openrc.sh 文件

[root@localhost ~]# ll /etc/kolla/admin-openrc.sh 
-rw-r--r--. 1 root root 517 6月  14 21:08 /etc/kolla/admin-openrc.sh
查看openstack登录帐号&密码
[root@localhost ~]# cat /etc/kolla/admin-openrc.sh
# Clear any old environment that may conflict.
for key in $( set | awk '{FS="="}  /^OS_/ {print $1}' ); do unset $key ; done
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_AUTH_URL=http://192.168.18.165:35357/v3
export OS_INTERFACE=internal
export OS_ENDPOINT_TYPE=internalURL
export OS_IDENTITY_API_VERSION=3
export OS_REGION_NAME=RegionOne
export OS_AUTH_PLUGIN=password

测试访问:
http://192.168.18.165
Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第10张图片
Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第11张图片


部署报错
在这里插入图片描述
重新执行

kolla-ansible -i /etc/kolla/all-in-one deploy

时间同步错误

centos8已经无法安装ntpdate

[root@kylin ~]# vim /etc/chrony.conf
在这里插入图片描述
systemctl restart chronyd
chronyc sources -v

EDT 时间即美国东部时间。这里要改为北京时间即可:
mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
在这里插入图片描述

openstack-allinone使用方法

待补充

  1. 安装OpenStack客户端并创建一个云主机
    安装openstack client客户端,方便后期使用命令行操作openstack
[root@kylin ~]# pip3 install python-openstackclient
[root@kylin ~]# pip3 install python-neutronclient  #安装openstack网络相关的命令

使用init-runonce脚本创建一个openstack云项目

如果报错提示已经安装pyinotify
pip3 install pyinotify --ignore-installed pyinotify
在执行一遍pip3 install python-neutronclient

使用 init-runonce 脚本创建一个 openstack 云项目

修改 init-runonce 脚本,指定浮劢 IP 地址范围
init-runonce 是在 openstack 中快速创建一个云项目例子的脚本。浮劢 IP 就是云主机的公网 IP。

[root@kylin kolla-ansible]# ./init-runonce #这条命令执行完最后弹出的openstack命令创建了一个名为demo1的云主机

Done.

To deploy a demo instance, run:

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

执行该命令报错身份验证错误 (自己解决!上面图是执行成功后)
Centos8使用Kolla-ansible部署Ussuri(乌苏里2020-5-13发布)版本openstack-allinone云平台_第12张图片
有点问题先不写了

  1. 查看创建好的openstack项目中的信息和云主机网络连通性

  2. openstack web界面使用方法

你可能感兴趣的:(openstack-Train)