Victoria 预计2020年10月发布
Ussuri暂无法kolla-ansible部署
只有TripleO
这篇文章用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
扩展扩展卷分组,centos是vgdisplay命令查到的卷分组名
[root@kylin-open ~]# vgextend centos /dev/sda3
Volume group "centos" successfully extended
扩容逻辑卷
lvextend -L 150G -r /dev/centos/root #直接扩容无需二次扩文件系统
不加-r需执行此操作 :
xt4 文件系统扩容使用命令方法: resize2fs 逻辑卷名称
xfs 文件系统扩容使用命令方法: xfs_growfs 挂载点
xfs_growfs /dev/centos/root
df -Th查看结果
(我他妈写一半浏览器崩了我裂开了啊)
具体一些文字性的内容后续有时间在补充 里面应该留了几个坑 你们自己解决吧
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
~
~
~
~
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
安装ansible
[root@localhost ~]# pip3.6 install ansible
注: yum 安装的 ansible 和后期 kolla 中的 YAML 包冲突
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
pip install PyYAML --ignore-installed PyYAML #忽略安装的PyYAML,进行安装
[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 中各个服务的密码
[root@localhost ~]# kolla-genpwd
[root@kylin ~]# vim /etc/kolla/passwords.yml
改:
`keystone_admin_password:MxYFCE5ohuHHZZEOjVtwxAUdnMUWV7SFcYL9E5W2`
为:
keystone_admin_password: 123456
这是登陆dashboard,admin使用的密码,你可以根据自己需要进行修改
[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 }}"
[root@kylin ~]# ssh-keygen
[root@kylin ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@kylin
[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
指定 docker 镜像加速器
[root@localhost ~]# vim /usr/local/share/kolla-ansible/ansible/roles/baremetal/vars/main.yml
registry-mirrors: ["https://hub-mirror.c.163.com/"]
vim /etc/docker/daemon.json
"registry-mirrors": ["https://i2kldsde.mirror.aliyuncs.com"]
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
最后进入实际的openstack部署
[root@localhost ~]# kolla-ansible -i /etc/kolla/all-in-one deploy
验证部署
[root@localhost ~]# kolla-ansible -i /etc/kolla/all-in-one post-deploy
这样就创建 /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
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
待补充
[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
执行该命令报错身份验证错误 (自己解决!上面图是执行成功后)
有点问题先不写了
查看创建好的openstack项目中的信息和云主机网络连通性
openstack web界面使用方法