目录

一、环境要求

二、解决环境依赖

三、部署

3.1 安装kolla-ansible

3.2 配置ansible

3.3 初始化配置

3.4 部署

3.5 使用openstack


        一键部署是通过ansible和docker进行配合,直接再裸金属的服务器上使用kolla-ansible进行部署,一键生成。

一、环境要求

主机必须满足以下最低要求:

  • 2个网络接口
  • 8GB主内存
  • 40GB 磁盘空间

。Kolla Ansible 支持受支持的操作系统提供的默认 Python 3.x 版本。有关详细信息,请参阅经过测试的运行时。

我们这里选取redhat8.0的版本作为基础环境。

二、解决环境依赖

##配置源
vim /etc/yum.repo.d/kolla-ansible.repo
------------------------------------------------
[epel]
name=eppl
baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64/
gpgcheck=0
------------------------------------------------

vim /etc/yum.repo.d/appstream.repo
------------------------------------------------
[appstream]
name=appstream
baseurl=https://mirrors.aliyun.com/centos/8/AppStream/
gpgcheck=0
------------------------------------------------

vim /etc/yum.repo.d/baseos.repo
------------------------------------------------
[baseos]
name=baseos
baseurl=https://mirrors.aliyun.com/centos/8/BaseOS/
gpgcheck=0
------------------------------------------------

vim /etc/yum.repo.d/docker-ce.repo
------------------------------------------------
[docker]
name=docker
baseurl=https://mirrors.aliyun.com/docker-ce/linux/rhel/8.0
gpgcheck=0
------------------------------------------------
##安装docker和ansible
yum install -y docker-ce
yum install -y ansible

##设置开机启动
systemctl enable --now docker-ce
systemctl enable --now ansible
##配置网络--s双网卡设置
##ens33--正常配置
-----------------------
BOOTROTO=none
DEVICE=ens38
ONBOOT=yes
IPADDR=192.168.19.71
DNS1=114.114.114.114
GATEWAY=192.168.19.1
NETWORK=255.255.255.0
-----------------------

##ens38--只需要激活即可
-----------------------
BOOTROTO=none
DEVICE=ens38
ONBOOT=yes
-----------------------

##激活网卡
nmcli connection reload
1 安装 Python 构建依赖项
    sudo dnf install python3-devel libffi-devel gcc openssl-devel python3-libselinux

2 安装pip
    sudo dnf install python3-pip

3 确保安装了最新版本的 pip
    sudo pip3 install -U pip

三、部署

3.1 安装kolla-ansible

##安装 kolla-ansible 及其依赖项pip。
    pip3 install kolla-ansible

##如果出现问题,可强制更新PyYAML
    pip3 install -I PyYAML

##再次安装即可
    pip3 install kolla-ansible

##创建目录,复制模板到目录/etc/kolla/
    mkdir -p /etc/kolla
    cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

##将文件复制all-in-one并multinode清点到当前目录。
    cp /usr/local/share/kolla-ansible/ansible/inventory/* /etc/kolla/

##指定all-in-one,检测invetory文件中所有主机的状态
    ansible -i all-in-one all -m ping

3.2 配置ansible

##在Ansible配置文件/etc/ansible/ansible.cfg中添加以下选项(全局参数)
-----------------------------------------------------
[defaults]
host_key_checking=False
pipelining=True
forks=100
-----------------------------------------------------

3.3 初始化配置

##准备我们的库存文件--清单是一个 Ansible 文件,我们在其中指定主机及其所属的组。我们可以使用它来定义节点角色和访问凭证。
vim globals.yml
-------------------------------------
kolla_base_distro: "centos"
network_interface: "ens33"
neutron_external_interface: "ens38"
kolla_internal_vip_address: "192.168.19.71"        --ens33的接口,链接数据库
enable_cinder: "yes"        --块存储
enable_haproxy: "no"
enable_keystone: "no"
enable_chrony: "no"            --自己进行部署
enable_cinder_backend_iscsi: "yes"
enable_cinder_backend__lvm: "yes"
enable_fluentd: "no"    --不采集数据
-------------------------------------

##vim /usr/local/share/kolla-ansible/ansible/roles/baremetal/defaults/main.yml
---------------------------------------
enable_docker_repo: false  ---自己配置docker
redhat_pkg_install:         --删除docker的安装 
---------------------------------------
##创建物理卷和物理卷组
pvceate /dev/vdb
vgcreate cinder-volumes /dev/vdb
vgs        --查看结果
##生成密码--我们部署中使用的密码存储在/etc/kolla/passwords.yml 文件中。此文件中的所有密码都是空白的,必须手动或通过运行随机密码生成器来填写:

    kolla-genpwd

##进入文件,修改admin的登录密码
keystone_admin_passwd:123

3.4 部署

1 具有kolla部署依赖项的引导服务器:
    kolla-ansible -i all-in-one bootstrap-servers

2 对主机进行部署前检查:
    kolla-ansible -i all-in-one prechecks

3 最后进行实际的 OpenStack 部署:
    kolla-ansible -i all-in-one deploy

4 下载时,可下载流量监测工具,对下载进度进行查看
    yum install -y nload
    nload

3.5 使用openstack

1 安装OpenStack CLI客户端
    pip install python-openstackclient

2 生成环境脚本
    kolla-ansible post-deploy . /etc/kolla/admin-openrc.sh

3 执行脚本,上传镜像到glance,创建内部网络、外部网络、flavor、ssh key,并运行一个实例
    /usr/share/kolla-ansible/init-runonce

4 最后通过dashbord直接访问主机ip即可:172.25.36.11/project/network_topology/