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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM