一、前言
- 本教程使用的操作系统为centos7版本的linux系统;opentask基于packstack一键部署方案
- 亲测centos7可以安装成功正常使用
- 本教程部分片段采用了代理技术,建议不明白代理怎么设置的朋友先行了解代理设置方法,否则可能时间上无法优化
二、基础环境
前面讲过,本实验基于centos7系统搭建opentask平台, 所以我们需要搭建一套centos7的虚拟机环境,当然物理机也可以;
在搭建centos7虚拟机环境的过程中我们需要注意一下以下几点 :
- yum源的配置: 建议将yum源更换到国内且下载epel扩展源
- 网络管理: 建议设置成静态IP地址且网络模式为桥接模式 ,关闭网络管理器功能
- 虚拟机配置:CPU建议8核 内存建议最小8G 硬盘空间建议越大大约好,同时一定记得开启CPU虚拟化
上述基础环境部分为基础操作建议先完成基础操作后再执行下述操作
三、openstack环境部署
3.1-系统初始化检测与配置
3.1.2-更新软件仓库与清除yum仓库缓存
sudo yum update -y && sudo yum clean all
sudo yum makecache
git --version || sudo yum install git -y
3.1.3-关闭网络功能
关闭 NetworkManager 功能有助于避免与openstack网络产生冲突
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
3.2-安装openstack与附加包
此步骤安装的后两个附加包其实在执行sudo packstack --allinone时会自动安装,但是部分情况会出现报错无法定位到软件源,所以提前进行安装避免问题的发生!
sudo yum install -y centos-release-openstack-train epel-release
sudo yum install -y openstack-packstack
sudo yum downgrade -y leatherman
sudo yum install -y python2-qpid-proton-0.26.0-2.el7.x86_64
3.3-代理设置
设置代理的时候我们需要注意将引号里面的容易更换成自己的代理地址,否则代理地址无效,在这里我们只需要临时设置git的代理就可以了,不需要同时设置yum代理和永久保存代理设置。
git config --global http.proxy "http://10.0.0.3:7890"
git config --global https.proxy "http://10.0.0.3:7890"
3.4-openstack组件安装
sudo packstack --allinone
此过程安装时间较长,大约执行25分钟左右即可安装完成!所以耐心等待,另外在安装完成后可能会出现红色字体,不必担心!!! 正常提示而已,例如下方所示:
3.4.1-图中红色文字详解
-
"You have chosen OVN Neutron backend.":这句话表明你选择了 OVN (Open Virtual Network) 作为 Neutron(OpenStack 的网络服务)的后端。OVN 提供了虚拟网络抽象,它是由 Open vSwitch 社区开发的,旨在作为 Neutron 的一个高效、可扩展的后端,支持多种网络功能。
-
"Note that this backend does not support the VPNaaS or FWaaS services.":这说明如果你选择 OVN 作为 Neutron 的后端,你将无法使用 VPN-as-a-Service (VPNaaS) 和 Firewall-as-a-Service (FWaaS) 这两项服务。VPNaaS 提供虚拟私人网络服务,而 FWaaS 提供防火墙服务。这可能会影响你对特定网络安全和隔离功能的需求。
-
"Geneve will be used as the encapsulation method for tenant networks.":这句话指出,租户网络将使用 Geneve 封装方法。Geneve (Generic Network Virtualization Encapsulation) 是一种网络封装协议,被设计来提供更灵活的封装和隧道选项。它类似于 VXLAN,但设计上更为灵活,旨在支持更复杂的虚拟网络结构。
openstack一键脚本安装
此脚本整合了上述的所有步骤同时添加了一个用户与密码信息输出功能和脚本执行时长计时功能
脚本运行方式:bash + script_name
#!/bin/bash
set -e
SECONDS=0
PROXY_HTTP="http://10.0.0.3:7890"
PROXY_HTTPS="http://10.0.0.3:7890"
KEYSTONERC_ADMIN_PATH=~/keystonerc_admin
system_init() {
sudo yum update -y && sudo yum clean all
sudo yum makecache
if ! git --version &> /dev/null; then
sudo yum install git -y
else
echo "Git is already installed."
fi
sudo systemctl stop NetworkManager || true
sudo systemctl disable NetworkManager || true
}
openstack_install() {
sudo yum install -y centos-release-openstack-train epel-release
sudo yum install -y openstack-packstack
sudo yum downgrade -y leatherman
sudo yum install -y python2-qpid-proton-0.26.0-2.el7.x86_64
}
proxy_setting() {
git config --global http.proxy "$PROXY_HTTP"
git config --global https.proxy "$PROXY_HTTPS"
}
system_init
openstack_install
proxy_setting
sudo packstack --allinone
if [ -f "$KEYSTONERC_ADMIN_PATH" ]; then
OS_USERNAME=$(grep 'OS_USERNAME' "$KEYSTONERC_ADMIN_PATH" | cut -d '=' -f2 | tr -d '"')
OS_PASSWORD=$(grep 'OS_PASSWORD' "$KEYSTONERC_ADMIN_PATH" | cut -d '=' -f2 | tr -d '"')
echo -e "user: \033[32m$OS_USERNAME\033[0m passwd: \033[31m$OS_PASSWORD\033[0m"
else
exit 1 && echo "----输出失败----"
fi
ELAPSED="$SECONDS"
echo -e "\033[35mScript execution time: $ELAPSED seconds\033[0m"