美文网首页
kolla-ansible 部署openstack(vmware

kolla-ansible 部署openstack(vmware

作者: lzp1234 | 来源:发表于2019-02-25 17:15 被阅读64次

前言

使用vmware虚拟机充当服务器。
使用kolla-ansible工具部署opnestack单节点模式。
按照官方文档步骤安装。
镜像使用CentOS-7-x86_64-Minimal-1708.iso。
全程使用root权限操作。
已测试queens。

常见问题解决

  1. 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
  2. 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张网卡规划如下:

  1. ens33: nat网卡,服务器上网用,static,配置ip,可以上网。
  2. ens34: nat网卡,opnestack public网,static,不配置ip。
  3. ens35: 仅主机模式网卡,opnestack管理网,static,配置ip,无法上网。
编辑ens33

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

重启网络: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.service

iptables -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组件安装得物理位置

开始配置:

  1. passwords.yml。这里可使用命令生成随机码作为密码使用
    kolla-genpwd
  2. 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"
  1. all-in-one
    不修改
  2. multinode
    不修改

开始部署

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

基本使用

安装命令行工具:

pip install python-openstackclient python-glanceclient python-neutronclient

确认部署(会生成管理员密码等):

kolla-ansible post-deploy

官方脚本,创建使用示例,可不执行:

. /usr/share/kolla-ansible/init-runonce
执行命令
  1. 导入环境变量
. /etc/kolla/admin-openrc.sh
  1. 查看服务状态
openstack service list --long
访问horizon

使用chrome浏览器访问ha代理的外部地址。
例如本实验浏览器输入 10.10.10.81 即可访问。
管理员用户名密码在 cat /etc/kolla/admin-openrc.sh

image.png

相关文章

网友评论

      本文标题:kolla-ansible 部署openstack(vmware

      本文链接:https://www.haomeiwen.com/subject/dntgyqtx.html