自动化kolla-ansible部署centos7.9+openstack-train-超融合单机架构
阅读原文时间:2021年04月23日阅读:1

自动化kolla-ansible部署centos7.9+openstack-train-超融合单机架构

欢迎加QQ群:1026880196 进行交流学习

环境说明:

1. 满足一台电脑一个网卡的环境进行模拟测试,由于配置较低,这里只涉及常规测试,不做更深入开展。

2.如果你是物理机,可以准备2个物理网卡,一个作为管理网接口,一个作为浮动网接口(实例上外网的需要,这里需要交换机支持dhcp功能,可以自动获取ip地址)。

3.根据环境需要注意一下参数修改:

nova_compute_virt_type: "kvm"

vim /etc/kolla/config/nova/nova-compute.conf

[libvirt]
inject_password=true
cpu_mode=host-passthrough
virt_type = kvm

1. PC台式电脑硬件配置

2. 虚拟软件配置

#虚拟机下载 VMware-workstation-full-16.1.0-17198959.exe  百度网盘: 链接:https://pan.baidu.com/s/1RlgNja260HZtRffN_vc9EA     提取码:2021

3. 虚拟机网卡信息

4. 节点信息   # 单台融合控制/计算/存储

sstack CPU:4核 内存:16GB 系统盘SSD 200GB*1 数据盘SSD 300GB*1 管理网:ens33 192.168.1.30/24 浮动网:ens34 dhcp ( BOOTPROTO=dhcp )

5. 系统安装配置   #镜像下载 https://mirrors.ustc.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso

1. 系统版本
CentOS-7-x86_64-Minimal-2009.iso(CentOS 7.9 64位)

  1. 语言
    英文=标准安装

  2. 分区
    /boot 1000M /swap 4096M 其余/

6. 网卡信息

7.  系统基本环境

1. 安装常用软件包
yum install gcc vim wget net-tools ntpdate git -y

  1. 关闭防火墙
    systemctl stop firewalld.service
    systemctl disable firewalld.service
    firewall-cmd --state

  2. 关闭selinux
    sed -i '/^SELINUX=.*/c SELINUX=disabled' /etc/selinux/config
    sed -i 's/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g' /etc/selinux/config
    grep --color=auto '^SELINUX' /etc/selinux/config
    setenforce 0

  3. 主机名:
    echo "
    192.168.1.30 sstack">>/etc/hosts

  4. ssh免密验证
    ssh-keygen
    ssh-copy-id root@sstack6. 修改ssh
    sed -i 's/#ClientAliveInterval 0/ClientAliveInterval 60/g' /etc/ssh/sshd_config
    sed -i 's/#ClientAliveCountMax 3/ClientAliveCountMax 60/g' /etc/ssh/sshd_config
    systemctl daemon-reload && systemctl restart sshd && systemctl status sshd

  5. 使用中国科技大学源
    sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' \
    -i.bak \
    /etc/yum.repos.d/CentOS-Base.repo

  6. 配置docker源
    wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
    sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

  7. 安装epel源
    yum makecache
    yum install -y epel-release

  8. 使用豆瓣pypi源
    mkdir ~/.pip
    cat > ~/.pip/pip.conf << EOF
    [global]
    index-url = http://pypi.douban.com/simple
    [install]
    trusted-host=pypi.douban.com
    EOF

  9. 安装安装python-pip
    yum install python-pip -y
    pip install --upgrade "pip < 21.0"
    pip install pbr

  10. 升级系统软件包
    yum update -y

  11. 重启系统
    reboot

8.  时间同步

1. 安装chrony服务
yum -y install chrony

  1. 配置chrony文件
    cp /etc/chrony.conf{,.bak}
    echo "
    server ntp1.aliyun.com iburst
    server ntp2.aliyun.com iburst
    server ntp6.aliyun.com iburst
    stratumweight 0
    driftfile /var/lib/chrony/drift
    rtcsync
    makestep 10 3
    bindcmdaddress 127.0.0.1
    bindcmdaddress ::1
    keyfile /etc/chrony.keys
    commandkey 1
    generatecommandkey
    noclientlog
    logchange 0.5
    logdir /var/log/chrony
    ">/etc/chrony.conf

  2. 启动服务
    systemctl enable chronyd && systemctl restart chronyd && systemctl status chronyd

  3. chrony同步源
    chronyc sources -v
    ntpdate ntp1.aliyun.com
    hwclock -w

  4. 配置定时任务
    crontab -e
    0 */1 * * * ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w
    0 */1 * * * ntpdate ntp2.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w

9. 安装配置

1. 安装依赖软件包
yum install python2-devel libffi-devel openssl-devel libselinux-python -y
yum remove docker docker-common docker-selinux docker-engine -y
yum install yum-utils device-mapper-persistent-data lvm2 -y

  1. 安装ansible
    yum install -y "ansible < 2.9.19"

  2. 配置ansible.cfg文件
    sed -i 's/#host_key_checking = False/host_key_checking = True/g' /etc/ansible/ansible.cfg
    sed -i 's/#pipelining = False/pipelining = True/g' /etc/ansible/ansible.cfg
    sed -i 's/#forks = 5/forks = 100/g' /etc/ansible/ansible.cfg

  3. 安装 kolla-ansible
    pip install kolla-ansible==9.3.1 --ignore-installed PyYAML

  4. 安装docker-ce
    yum install docker-ce -y

  5. kolla-ansible配置文件到当前环境
    mkdir -p /etc/kolla
    chown $USER:$USER /etc/kolla
    cp -r /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
    cp /usr/share/kolla-ansible/ansible/inventory/* .

  6. 修改docker配置文件配置国内阿里云地址,docker推送地址
    mkdir /etc/docker/
    cat >> /etc/docker/daemon.json << EOF
    {
    "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
    ]
    }
    EOF

  7. 开启 Docker 的共享挂载功能
    mkdir -p /etc/systemd/system/docker.service.d
    cat >> /etc/systemd/system/docker.service.d/kolla.conf << EOF
    [Service]
    MountFlags=shared
    EOF

  8. 设置docker服务启动
    systemctl daemon-reload && systemctl enable docker && systemctl restart docker&& systemctl status docker

10. 文件配置

1. 配置清单
vim /root/all-in-one 

修改如下:
[control]
sstack

[network]
sstack

[compute]
sstack

[storage]
sstack

[monitoring]
sstack

[deployment]
sstack

  1. 配置globals.yml文件,开启需要的文件
    vim /etc/kolla/globals.yml

修改如下:
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "train"
node_custom_config: "/etc/kolla/config"
kolla_internal_vip_address: "192.168.1.29"
#docker_registry: "xxx123.zixuanyun.com:4000"
docker_namespace: "kolla"
network_interface: "ens33"
neutron_external_interface: "ens34"
neutron_plugin_agent: "openvswitch"
neutron_tenant_network_types: "vxlan,vlan,flat"
keepalived_virtual_router_id: "58"
openstack_logging_debug: "True"
enable_ceph: "yes"
enable_ceph_dashboard: "{{ enable_ceph | bool }}"
enable_chrony: "yes"
enable_cinder: "yes"
enable_cinder_backup: "yes"
enable_ceph_dashboard: "{{ enable_ceph | bool }}"
enable_heat: "no"
enable_neutron_provider_networks: "yes"
enable_nova_ssh: "yes"
glance_backend_ceph: "yes"
cinder_backend_ceph: "{{ enable_ceph }}"
cinder_backup_driver: "ceph"
nova_backend_ceph: "{{ enable_ceph }}"
nova_compute_virt_type: "qemu"
nova_console: "novnc"

  1. 生成随机密码
    kolla-genpwd

  2. 修改界面登陆密码为123456
    sed -i 's/^keystone_admin_password.*/keystone_admin_password: 123456/' /etc/kolla/passwords.yml

  3. 准备后端存储
    #格式化
    mkfs.ext4 /dev/sdb

数据盘准备ceph的标签
parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_FOO1 1 -1

  1. 设置nova配置文件
    mkdir /etc/kolla/config
    mkdir /etc/kolla/config/nova
    cat >> /etc/kolla/config/nova/nova-compute.conf << EOF
    [libvirt]
    virt_type = qemu
    cpu_mode = none
    EOF

  2. 创建虚拟机界面禁止默认创建新卷.
    mkdir /etc/kolla/config/horizon/
    cat >> /etc/kolla/config/horizon/custom_local_settings << EOF
    LAUNCH_INSTANCE_DEFAULTS = {'create_volume': False,}
    EOF

  3. 创建ceph.conf
    cat >> /etc/kolla/config/ceph.conf << EOF
    [global]
    osd pool default size = 1
    osd pool default min size = 1
    mon_clock_drift_allowed = 2
    osd_pool_default_pg_num = 8
    osd_pool_default_pgp_num = 8
    mon clock drift warn backoff = 30
    EOF

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章