前言
使用vmware虚拟机充当服务器。
使用kolla-ansible工具部署opnestack单节点模式。
按照官方文档步骤安装。
镜像使用CentOS-7-x86_64-Minimal-1708.iso。
全程使用root权限操作。
已测试queens。
常见问题解决
- Cannot uninstall 'ipaddress'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
此类问题强制升级此安装包即可。(已发现PyYAML,ipaddress)
pip install --ignore-installed ipaddress
- ImportError: cannot import name decorate
pip install -U decorator
环境准备
启动虚拟机
配置如下:
- 内存: 8G(建议再高点)
- 处理器:2核(开启嵌套虚拟化后,虚拟机才能正常创建,这里不开暂时不影响部署)
- 硬盘:100G(系统盘) + 20GB(创建cinder lvm时使用)
- 网络:2个nat网络,1个仅主机网络(网络适配器、网络适配器2为nat,网络适配器3为仅主机模式)
![](https://img.haomeiwen.com/i14944275/27a89c0fb5d1172b.png)
配置网络
虚拟机启动后,网络情况如下:
![](https://img.haomeiwen.com/i14944275/b0cf5f2c07dbe475.png)
上图中得ens33,ens34,ens35,3张网卡规划如下:
- ens33: nat网卡,服务器上网用,static,配置ip,可以上网。
- ens34: nat网卡,opnestack public网,static,不配置ip。
- ens35: 仅主机模式网卡,opnestack管理网,static,配置ip,无法上网。
编辑ens33
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 原dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=f0ce559b-e74a-4c9a-bb69-fc7f46f03244
DEVICE=ens33
ONBOOT=yes # 原no
# 增加如下内容
GATEWAY=10.10.10.2 # vmware nat模式得网关
IPADDR=10.10.10.80 # 与vmware nat模式网关处于同一网段
NETMASK=255.255.255.0
DNS1=114.114.114.114
重启网络:systemctl restart network
重启后,可以ping通百度。
编辑ens34
注意,此网卡不配置ip。自带得配置刚好合适,若不小心修改可参考如下配置改回原样。
vi /etc/sysconfig/network-scripts/ifcfg-ens34
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens34
UUID=2523942d-4141-45d8-8d58-debc36e5af07
DEVICE=ens34
ONBOOT=no
重启网络:systemctl restart network
编辑ens35
vi /etc/sysconfig/network-scripts/ifcfg-ens35
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 原dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens35
UUID=7933698a-9938-4809-b6db-2f80983a2214
DEVICE=ens35
ONBOOT=yes # 原no
# 增加如下内容
IPADDR=192.168.10.80 # vmware 仅主机模式网段
NETMASK=255.255.255.0
重启网络:systemctl restart network
查看网络
ip a
![](https://img.haomeiwen.com/i14944275/aa66b284f5a3c7ad.png)
配置cinder存储
虚拟机上的20GB硬盘在本实验中为 sdb
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb
配置加速源
yum 加速源(centos7 阿里源)
yum install -y wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
pip 加速源(阿里源)
mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple/
EOF
docker 加速源(阿里源)
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://jzngeu7d.mirror.aliyuncs.com"]
}
EOF
配置iptables
yum install iptables -y
yum install iptables-services -y
systemctl start iptables.service
systemctl enable iptables.service
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
service iptables save
systemctl restart iptables.service
至此基础环境准备完成。
kolla-ansible 部署
参考文档: https://docs.openstack.org/kolla-ansible/latest/
安装软件环境
yum install -y epel-release
yum install -y python-pip
pip install -U pip
yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python
yum install -y ansible
pip install -U ansible
编辑ansible配置文件,在defaults中添加3个属性
vim /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100
安装 kolla-ansible
pip install kolla-ansible==7.0.0
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
cp /usr/share/kolla-ansible/ansible/inventory/* /opt/
配置主要文件
这里有4个文件,简单介绍:
- /etc/kolla/globals.yml 决定你要装什么组件和openstack基础配置
- /etc/kolla/passwords.yml 可以定义openstack各组件得密码
- /opt/all-in-one 决定openstack组件安装得物理位置
- /opt/multinode 决定openstack组件安装得物理位置
开始配置:
- passwords.yml。这里可使用命令生成随机码作为密码使用
kolla-genpwd
- globals.yml。
此文件包含两部分内容:openstack基础配置,选择安装的openstack组件。
vim /etc/kolla/globals.yml
kolla_base_distro: "centos" # 基础容器镜像版本
kolla_install_type: "source" # 源码安装方式安装组件
openstack_release: "queens" # openstack版本,选择你需要的
network_interface: "ens35" # 管理网使用得网卡
neutron_external_interface: "ens34" # public网使用得网卡
kolla_internal_vip_address: "192.168.10.81" # ha或者keepalived代理的服务内部地址。
kolla_external_vip_address: "10.10.10.81" # ha或者keepalived代理的服务外部地址。
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
cinder_volume_group: "cinder-volumes"
enable_horizon: "yes"
- all-in-one
不修改 - multinode
不修改
开始部署
kolla-ansible -i /opt/all-in-one bootstrap-servers
kolla-ansible -i /opt/all-in-one prechecks
kolla-ansible -i /opt/all-in-one deploy
基本使用
安装命令行工具:
pip install python-openstackclient python-glanceclient python-neutronclient
确认部署(会生成管理员密码等):
kolla-ansible post-deploy
官方脚本,创建使用示例,可不执行:
. /usr/share/kolla-ansible/init-runonce
执行命令
- 导入环境变量
. /etc/kolla/admin-openrc.sh
- 查看服务状态
openstack service list --long
访问horizon
使用chrome浏览器访问ha代理的外部地址。
例如本实验浏览器输入 10.10.10.81 即可访问。
管理员用户名密码在 cat /etc/kolla/admin-openrc.sh
中
![](https://img.haomeiwen.com/i14944275/252844721af74fad.png)
网友评论