kolla-ansible|kolla-ansible 部署openstack(vmware,all-in-one)
前言
使用vmware虚拟机充当服务器。
使用kolla-ansible工具部署opnestack单节点模式。
按照官方文档步骤安装。
镜像使用CentOS-7-x86_64-Minimal-1708.iso。
全程使用root权限操作。
已测试queens。
常见问题解决
- Cannot uninstall 'ipaddress'. 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,ipaddress)
pip install --ignore-installed ipaddress
- ImportError: cannot import name decorate
pip install -U decorator
配置如下:
- 内存: 8G(建议再高点)
- 处理器:2核(开启嵌套虚拟化后,虚拟机才能正常创建,这里不开暂时不影响部署)
- 硬盘:100G(系统盘) + 20GB(创建cinder lvm时使用)
- 网络:2个nat网络,1个仅主机网络(网络适配器、网络适配器2为nat,网络适配器3为仅主机模式)
文章图片
image.png 配置网络
虚拟机启动后,网络情况如下:
文章图片
image.png 上图中得ens33,ens34,ens35,3张网卡规划如下:
- ens33: nat网卡,服务器上网用,static,配置ip,可以上网。
- ens34: nat网卡,opnestack public网,static,不配置ip。
- ens35: 仅主机模式网卡,opnestack管理网,static,配置ip,无法上网。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 原dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=f0ce559b-e74a-4c9a-bb69-fc7f46f03244
DEVICE=ens33
ONBOOT=yes # 原no
# 增加如下内容
GATEWAY=10.10.10.2 # vmware nat模式得网关
IPADDR=10.10.10.80 # 与vmware nat模式网关处于同一网段
NETMASK=255.255.255.0
DNS1=114.114.114.114
重启网络:
systemctl restart network
重启后,可以ping通百度。
编辑ens34 注意,此网卡不配置ip。自带得配置刚好合适,若不小心修改可参考如下配置改回原样。
vi /etc/sysconfig/network-scripts/ifcfg-ens34
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens34
UUID=2523942d-4141-45d8-8d58-debc36e5af07
DEVICE=ens34
ONBOOT=no
重启网络:
systemctl restart network
编辑ens35
vi /etc/sysconfig/network-scripts/ifcfg-ens35
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 原dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens35
UUID=7933698a-9938-4809-b6db-2f80983a2214
DEVICE=ens35
ONBOOT=yes # 原no
# 增加如下内容
IPADDR=192.168.10.80 # vmware 仅主机模式网段
NETMASK=255.255.255.0
【kolla-ansible|kolla-ansible 部署openstack(vmware,all-in-one)】重启网络:
systemctl restart network
查看网络
ip a
文章图片
image.png
配置cinder存储
虚拟机上的20GB硬盘在本实验中为 sdb
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb
配置加速源
yum 加速源(centos7 阿里源)
yum install -y wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
pip 加速源(阿里源)
mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple/
EOF
docker 加速源(阿里源)
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://jzngeu7d.mirror.aliyuncs.com"]
}
EOF
配置iptables
yum install iptables -y
yum install iptables-services -y
systemctl start iptables.service
systemctl enable iptables.serviceiptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
service iptables save
systemctl restart iptables.service
至此基础环境准备完成。
kolla-ansible 部署 参考文档: https://docs.openstack.org/kolla-ansible/latest/
安装软件环境
yum install -y epel-release
yum install -y python-pip
pip install -U pip
yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python
yum install -y ansible
pip install -U ansible
编辑ansible配置文件,在defaults中添加3个属性
vim /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100
安装 kolla-ansible
pip install kolla-ansible==7.0.0
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
cp /usr/share/kolla-ansible/ansible/inventory/* /opt/
配置主要文件
这里有4个文件,简单介绍:
- /etc/kolla/globals.yml 决定你要装什么组件和openstack基础配置
- /etc/kolla/passwords.yml 可以定义openstack各组件得密码
- /opt/all-in-one 决定openstack组件安装得物理位置
- /opt/multinode 决定openstack组件安装得物理位置
- passwords.yml。这里可使用命令生成随机码作为密码使用
kolla-genpwd
- globals.yml。
此文件包含两部分内容:openstack基础配置,选择安装的openstack组件。
vim /etc/kolla/globals.yml
kolla_base_distro: "centos"# 基础容器镜像版本
kolla_install_type: "source"# 源码安装方式安装组件
openstack_release: "queens"# openstack版本,选择你需要的
network_interface: "ens35"# 管理网使用得网卡
neutron_external_interface: "ens34"# public网使用得网卡
kolla_internal_vip_address: "192.168.10.81"# ha或者keepalived代理的服务内部地址。
kolla_external_vip_address: "10.10.10.81"# ha或者keepalived代理的服务外部地址。
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
cinder_volume_group: "cinder-volumes"
enable_horizon: "yes"
- all-in-one
不修改 - multinode
不修改
kolla-genpwd
kolla-ansible -i /opt/all-in-one bootstrap-servers
kolla-ansible -i /opt/all-in-one prechecks
kolla-ansible -i /opt/all-in-one deploy
操作相关解释:
- bootstrap-servers 步骤:安装基础依赖。
- prechecks 步骤:检查基础依赖、端口等。
- deploy 步骤:生成配置文件,下载镜像,启动容器等具有改动操作的一系列动作。
安装命令行工具:
pip install python-openstackclient python-glanceclient python-neutronclient
确认部署(会生成管理员密码等):
kolla-ansible post-deploy
官方脚本,创建使用示例,可不执行:
. /usr/share/kolla-ansible/init-runonce
执行命令
- 导入环境变量
. /etc/kolla/admin-openrc.sh
- 查看服务状态
openstack service list --long
访问horizon 使用chrome浏览器访问ha代理的外部地址。
例如本实验浏览器输入 10.10.10.81 即可访问。
管理员用户名密码在
cat /etc/kolla/admin-openrc.sh
中文章图片
image.png
日志在哪看? /var/lib/docker/volumes/kolla_logs/_data/
每个节点在这个目录下存放了所有组件的日志,规划的很清晰。
但是这个路径是不是有点长,创建一个link吧。
创建link:
ln -s /var/lib/docker/volumes/kolla_logs/_data/ /var/log/kolla
现在可以直接到
/var/log/kolla
目录下查看日志了。推荐阅读
- Beego打包部署到Linux
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- Spring|Spring Boot部署到Resin遇到的问题
- 如何在阿里云linux上部署java项目
- 部署专题集合
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- 一键编译部署Mysql
- 8月16日|8月16日 全网备份
- 改变企业沟通环境|改变企业沟通环境 从部署企业IM开始
- Jenkins自动化部署-前端篇|Jenkins自动化部署-前端篇 (四)