美文网首页
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