Kolla 概述:
Kolla是OpenStack下用于自动化部署的一个项目,它基于docker和ansible来实现,其中docker主要负责镜像制作和容器管理,ansible主要负责环境的部署和管理。Kolla实际上分为两部分:Kolla部分提供了生产环境级别的镜像,涵盖了OpenStack用到的各个服务;Kolla-ansible部分提供了自动化的部署。最开始这两部分是在一个项目中的(即Kolla),OpenStack从O开头的版本开始被独立开来,这才有了用于构建所有服务镜像的Kolla项目,以及用于执行自动化部署的Kolla-ansible。
参考官方安装文档https://docs.openstack.org/project-deploy-guide/kolla-ansible/latest/quickstart.html
服务器最低配置:
2 个网络接口(或者单个网络接口配置子接口) 8GB 主内存 40GB 磁盘空间
Ubuntu server 20.04LTS
Ubuntu server 20.04LTS使用最小化或基础安装系统,并修改配置好网络连接
sudo su -
sudo ufw disable
iptables -F
使用 ip a查看网卡名
双网卡模式(推荐)
vim /etc/netplan/xxxx.yaml
network:
ethernets:
ens160:
addresses: [192.168.2.38/24]
dhcp4: no
optional: true
gateway4: 192.168.2.1
nameservers:
addresses: [114.114.114.114]
ens192:
addresses: [192.168.2.125/24]
dhcp4: no
optional: true
gateway4: 192.168.2.1
nameservers:
addresses: [114.114.114.114]
version: 2
执行netplan apply应用配置
这里使用的是虚拟机实验环境,两个网卡都在同一网段
单网卡加子网卡模式(待补充)
在这里插入代码片
主机配置
hostnamectl set-hostname kolla && sudo su -
vim /etc/hosts
192.168.2.125 kolla
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce=5:19.03.15~3-0~ubuntu-focal
sudo systemctl enable docker
sudo systemctl start docker
sudo apt install python3-dev libffi-dev gcc libssl-dev
sudo apt install python3-pip
sudo pip3 install -U pip
sudo apt install ansible
git clone -b stable/train https://opendev.org/openstack/kolla-ansible.git
pip3 install kolla-ansible/
sudo mkdir -p /etc/kolla
cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
cp /usr/local/share/kolla-ansible/ansible/inventory/* /etc/kolla
vim /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100
确认all-in-one中前6项都是localhost cat /etc/kolla/all-in-one 测试ansible连接,正常则返回pong ansible -i /etc/kolla/all-in-one all -m ping 执行kolla-genpwd生成随机密码文件passwords.yml,也可以手动修改内容
vim /etc/kolla/globals.yml
kolla_base_distro: "ubuntu"
kolla_install_type: "source"
network_interface: "ens192"
neutron_external_interface: "ens160"
kolla_internal_vip_address: "192.168.2.125"
openstack_release: "train"
kolla-ansible -i ./multinode bootstrap-servers
kolla-ansible -i ./multinode precheck
kolla-ansible -i ./multinode deploy
kolla-ansible -i /etc/kolla/all-in-one post-deploy
kolla-ansible -i /etc/kolla/all-in-one post-deploy -vvv
cat admin-openrc.sh
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=QBmiKrKApzDB2hWDCptT1POiPf9qJds48zoDceLT
export OS_AUTH_URL=http://192.168.2.125: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.2.125/即可到web页面登录
可能会出现的问题:(待补充)
kolla-ansible -i ./multinode precheck 报错hostname
/etc/hosts中只留手动配置的一条 注释掉其他的127.0.0.1和::1
ansible升级
pip install 'ansible==2.9.9'
ln -s /usr/local/python3/bin/ansible /usr/local/bin/
|