OpenStack Ironic实现裸机部署(2)

#neutron
auto eth1
iface eth1 inet manual
up ip link set dev eth1 promisc on
up ip link set dev eth1 up
down ip link set dev eth1 down
down ip link set dev eth1 promisc off

eth0 做为 API_NET 接口,提供 OpenStack 的管理网络,我们给它分配一个静态IP,这里的地址需要和你的实际网络环境一致。

eth1 做为 EXT_NET 接口,提供 OpenStack 的 neutron 网络,这里我们启动网口但是不对它进行IP配置。

安装kolla环境,部署OpenStack with Ironic
更新apt源,安装依赖

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install Python-jinja2 python-pip libssl-dev -fy

配置 pip 加速,使用阿里云 pip 源

mkdir ~/.pip
tee ~/.pip/pip.conf <<-'EOF'
[global]
trusted-host =  mirrors.aliyun.com
index-url = https://mirrors.aliyun.com/pypi/simple
EOF

安装 kolla,kolla-ansible,python-openstackclient

sudo pip install --upgrade pip
sudo pip install ansible
sudo pip install kolla-ansible==4.0.3
sudo pip install python-openstackclient

Kolla部署Ironic配置

sudo cp -r /usr/local/share/kolla-ansible/etc_examples/kolla /etc/kolla

sudo vim /etc/kolla/global.yml

# 关键配置修改
# Valid options are [ CentOS, Oraclelinux, ubuntu ]
kolla_base_distro: "centos"

# Valid options are [ binary, source ]
kolla_install_type: "binary"

# Valid option is Docker repository tag
openstack_release: "4.0.0"

# api_net 的地址
kolla_internal_vip_address: "192.168.0.50"
network_interface: "eth0"
neutron_external_interface: "eth1"
neutron_plugin_agent: "openvswitch"
kolla_enable_tls_external: "no"
ironic_cleaning_network: "public1"
ironic_dnsmasq_dhcp_range: "192.168.8.1,192.168.8.5"
enable_ironic: "yes"
enable_haproxy: "no"

Ironic 相关配置

# 启用内核支持模块,删除open-iscsi

sudo modprobe configfs
sudo apt-get remove open-iscsi

sudo mkdir -p /etc/kolla/config/ironic
cd /etc/kolla/config/ironic

# 下载和存储ironic部署时引导镜像
sudo wget
sudo wget

sudo mv ironic.conf /etc/kolla/config/ironic.conf

#ironic.conf的内容
[DEFAULT]

enabled_drivers=pxe_ipmitool

[conductor]
automated_clean=false
# pxe 寻找tftp服务器是通过这个地址找的,如果不配置,pxe将无法从tftp服务拿到镜像,从而超时失败
[pxe]
tftp_server=192.168.1.50

kolla快速部署环境

# 生成密码
kolla-genpwd

# 初始化环境,安装一些基础依赖如 docker
sudo kolla-ansible \
-i /usr/local/share/kolla-ansible/ansible/inventory/all-in-one \
bootstrap-servers

# 配置dockerhub加速,我们用国内的阿里云源加速
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":  ["https://ao6wb0ej.mirror.aliyuncs.com"]
}
EOF
# 配置完后重启docker
sudo systemctl daemon-reload
sudo  service docker restart

# 拉取镜像
sudo kolla-ansible pull

# 预检查
sudo kolla-ansible prechecks \
-i /usr/local/share/kolla-ansible/ansible/inventory/all-in-one
# 部署
sudo kolla-ansible deploy \
-i /usr/local/share/kolla-ansible/ansible/inventory/all-in-one
# 生成部署环境文件,/etc/kolla/admin-openrc.sh 里面有重要的系统初始化配置
sudo kolla-ansible post-deploy

配置br-ex

# 配置 eth1 即neutron对应的网卡所在的网络环境
auto br-ex
iface br-ex inet static
address 192.168.1.50
netmask 255.255.255.0
gateway 192.168.1.253
dns-nameserver 192.168.1.253
# 注释掉 eth1 原来的配置

Ironic 初始环境 SetUp

#!/bin/bash

# ironic 管理网段
EXT_NET_CIDR='192.168.1.0/24'
EXT_NET_RANGE='start=192.168.1.20,end=192.168.1.100'
EXT_NET_GATEWAY='192.168.1.253'
EXT_NET_CIDR_DNS='192.168.1.253'

# ironic init setup
# create ironic manage network
openstack network create --provider-physical-network physnet1 \
    --provider-network-type flat public1

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9237593286e401db668e988974cb50d1.html