目录
一、环境要求
二、解决环境依赖
三、部署
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/