zoukankan      html  css  js  c++  java
  • kolla安装Queens版本OpenStack(ceph后端)

    OpenStack all-in-one部署:

    本次部署为OpenStack Queens版本部署,使用All-in-one,单节点部署。

    物理资源:8核,32GB,硬盘400GB(3个盘),2网卡。

    其中CPU核心数和内存尽量高,如果资源有限,可以在上面的标准上进行降低,添加三块硬盘,是为了做测试使用,下文会有硬盘操作。

    1.网卡个数和状态:

    # ifconfig
    ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.89.127.123  netmask 255.255.255.0  broadcast 10.89.127.255
            inet6 fe80::250:56ff:feaf:7db  prefixlen 64  scopeid 0x20<link>
            ether 00:50:56:af:07:db  txqueuelen 1000  (Ethernet)
            RX packets 1910  bytes 182468 (178.1 KiB)
            RX errors 0  dropped 10  overruns 0  frame 0
            TX packets 110  bytes 18260 (17.8 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet6 fe80::250:56ff:feaf:cd32  prefixlen 64  scopeid 0x20<link>
            ether 00:50:56:af:cd:32  txqueuelen 1000  (Ethernet)
            RX packets 766  bytes 60800 (59.3 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 14  bytes 2708 (2.6 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    部署all-in-one模式,需要两张网卡,在此案例中使用ens160作为管理网,ens192作为业务网,ens192不需要配置ip,只需要ifup。

    2.主机名设置

    hostnamectl set-hostname queens
    

    3.环境初始化

    3.1关闭NetworkManager,firewalld,selinux

    关闭NetworkManager
    
    # systemctl stop NetworkManager
    # systemctl disable NetworkManager
    
    关闭防火墙
    # systemctl stop firewalld
    # systemctl disable firewalld
    
    关闭selinux
    # setenforce 0
    # getenforce 0
    
    # vi /etc/selinux/config 
    改为 
    SELINUX=disabled
    

    3.2查看是否开启虚拟化

    egrep "vmx|svm" /proc/cpuinfo
    或者
    cat /proc/cpuinfo
    

    找到flags部分,如果其中输出有SVM或VMX,表明CPU支持虚拟化技术

    3.3配置epel源安装基础包

    # yum install epel-release
    # yum install axel vim git curl wget lrzsz gcc  python-devel python-pip 
    

    4.安装docker

    # wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # 默认安装最新版
    # yum install -y docker-ce
    

    4.1配置docker

    # 1、如果不设置此项,kolla-ansible 部署neutron-dhcp-agent 容器的时候会失败,并抛出 APIError/HTTPError
    mkdir /etc/systemd/system/docker.service.d
    tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
    [Service]
    MountFlags=shared
    EOF
    
    # 2、更改国内源、指定文件系统格式
    vim /usr/lib/systemd/system/docker.service
    # ExecStart=/usr/bin/dockerd
    # 设置国内的daocloud.io镜像源,指定overlay2系统格式,docker默认就是overlay2
    ExecStart=/usr/bin/dockerd --registry-mirror=http://f2d6cb40.m.daocloud.io --storage-driver=overlay2
    

    4.2启动docker

    systemctl daemon-reload
    systemctl restart docker
    systemctl enable docker
    systemctl status docker
    docker info
    

    5.安装ansible

    5.1安装ansible

    升级pip

    pip install --upgrade pip
    

    ansible版本必须在2.0以上

    yum -y install ansible
    

    下载kolla-ansible,并安装配置

    git clone https://github.com/openstack/kolla-ansible -b stable/queens
    cd kolla-ansible/
    cp -r etc/kolla/ /etc/kolla/
    pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    解决:

    pip install --upgrade pyyaml        
    pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    5.2配置globals.yml文件

    vim /etc/kolla/globals.yml
    
    kolla_base_distro: "centos"
    kolla_install_type: "source"
    openstack_release: "queens"
    kolla_internal_vip_address: "10.89.127.123"
    docker_namespace: "kolla"
    network_interface: "ens160"
    neutron_external_interface: "ens192"
    enable_haproxy: "no"
    nova_compute_virt_type: "qemu"
    
    #开启freezer:
    enable_freezer:"yes"
    enable_heat:"yes"
    enable_horizon_freezer:"{{ enable_freezer | bool }}"
    
    #开启cinder:
    enable_cinder: "yes"
    

    说明:这里我直接在docker hub上拉镜像。如果是在虚拟机里安装 Kolla,希望可以在 OpenStack 平台上创建虚拟机,那么你需要在 globals.yml 文件中把 nova_compute_virt_type 配置项设置为 qemu,默认是 KVM

    5.3ceph配置

    #创建文件
    vim /etc/kolla/config/ceph.conf
    [global]
    osd pool default size = 1
    osd pool default min size = 1
    
    #查看硬盘标签
    lsblk
    #给硬盘打ceph标签
    parted /dev/sdc -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1
    

    配置globals文件

    enable_ceph: "yes"
    enable_ceph_rgw: "yes"
    #enable_swift: "no"
    enable_ceph_rgw_keystone: "yes"
    

    5.4swift配置

    给硬盘打swift标签

    index=0
    for d in sdb; do
    # 因为我这就有一块用于swift存储的盘sde。
        parted /dev/${d} -s -- mklabel gpt mkpart KOLLA_SWIFT_DATA 1 -1
        sudo mkfs.xfs -f -L d${index} /dev/${d}1
        (( index++ ))
    done
    

    生成rings,执行脚本

    STORAGE_NODES=(10.89.127.123)
    KOLLA_SWIFT_BASE_IMAGE="kolla/centos-source-swift-base:queens"
    mkdir -p /etc/kolla/config/swift
    # Object ring
    docker run 
      --rm 
      -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ 
      $KOLLA_SWIFT_BASE_IMAGE 
      swift-ring-builder 
        /etc/kolla/config/swift/object.builder create 10 3 1
    for node in ${STORAGE_NODES[@]}; do
        for i in {0..2}; do
          docker run 
            --rm 
            -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ 
            $KOLLA_SWIFT_BASE_IMAGE 
            swift-ring-builder 
              /etc/kolla/config/swift/object.builder add r1z1-${node}:6000/d${i} 1;
        done
    done
    # Account ring
    docker run 
      --rm 
      -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ 
      $KOLLA_SWIFT_BASE_IMAGE 
      swift-ring-builder 
        /etc/kolla/config/swift/account.builder create 10 3 1
    for node in ${STORAGE_NODES[@]}; do
        for i in {0..2}; do
          docker run 
            --rm 
            -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ 
            $KOLLA_SWIFT_BASE_IMAGE 
            swift-ring-builder 
              /etc/kolla/config/swift/account.builder add r1z1-${node}:6001/d${i} 1;
        done
    done
    # Container ring
    docker run 
      --rm 
      -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ 
      $KOLLA_SWIFT_BASE_IMAGE 
      swift-ring-builder 
        /etc/kolla/config/swift/container.builder create 10 3 1
    for node in ${STORAGE_NODES[@]}; do
        for i in {0..2}; do
          docker run 
            --rm 
            -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ 
            $KOLLA_SWIFT_BASE_IMAGE 
            swift-ring-builder 
              /etc/kolla/config/swift/container.builder add r1z1-${node}:6002/d${i} 1;
        done
    done
    for ring in object account container; do
      docker run 
        --rm 
        -v /etc/kolla/config/swift/:/etc/kolla/config/swift/ 
        $KOLLA_SWIFT_BASE_IMAGE 
        swift-ring-builder 
          /etc/kolla/config/swift/${ring}.builder rebalance;
    done
    

    配置globals文件

    vim /etc/kolla/globals.yml
    
    enable_ceph: "no"
    enable_ceph_rgw: "no"
    enable_swift: "yes"
    enable_ceph_rgw_keystone: "no"
    

    6.安装kolla

    生成密码文件

    kolla-genpwd
    

    设置密码

    #配置 `keystone` 管理员用户的密码
    vim /etc/kolla/passwords.yml
    keystone_admin_password: password
    
    同时,也是登录 `Dashboard,admin` 使用的密码,你可以根据自己需要进行修改。
    

    拉取镜像

    #从`docker hub`上`pull`镜像
    kolla-ansible pull
    

    部署openstack

    #部署,时间较长
    kolla-ansible deploy
    

    创建环境变量

    #创建环境变量,文件在/etc/kolla中
    kolla-ansible post-deploy
    

    7.安装 OpenStack Client

    pip install python-openstackclient
    

    解决办法:

    pip install --upgrade decorator 
    

    强制升级:
    sudo pip install --ignore-installed +模块名
    
    sudo pip install --ignore-installed ipaddress
    

    编辑init-runonce文件,设置public network

    # vim /usr/share/kolla-ansible/init-runonce
    EXT_NET_CIDR='10.89.127.0/24'
    EXT_NET_RANGE='start=10.89.127.110,end=10.89.127.250'
    EXT_NET_GATEWAY='10.89.127.254'
    

    加载OpenStack CLI所需的环境变量

    source /etc/kolla/admin-openrc.sh
    

    8.初始化部署

    cd /usr/share/kolla-ansible/ && ./init-runonce
    

    登陆Dashboard
    用浏览器访问10.89.127.123登陆Dashboard

  • 相关阅读:
    线段树
    2016.9.4
    使用CSS代码修改博客模板
    爬虫
    PHP初学[DAY2]
    2016.8.23
    一个自动设置游戏房间的脚本
    可逆矩阵生成
    #2284. 接水果(fruit)
    #3762. 有趣的数(number)
  • 原文地址:https://www.cnblogs.com/jimlau/p/11917947.html
Copyright © 2011-2022 走看看