简介
Packstack主要是由Redhat推出的用于概念验证(PoC)环境快速部署的工具。Packstack是一个命令行工具,它使用Python封装了Puppet模块,通过SSH在服务器上部署OpenStack。
Packstack支持三种运行模式:
快速运行
交互式运行
非交互式运行
Packstack支持两种部署架构:
All-in-One,即所有的服务部署到一台服务器上
Multi-Node,即控制节点和计算机分离
因为Redhat官方有详细的使用文档,因此本文将简要介绍Packstack的快速运行以及交互式运行方式来部署All-in-One的Openstack。
名称 | 要求 |
---|---|
处理器 | 推荐2核以上 |
内存 | 推荐4G以上 |
磁盘 | 推荐20G以上 |
网卡 | 至少一块1G网卡 |
操作系统 | CentOS7 |
安装centos7
安装的是centos7.6mini
略过。。 安装简单
安装前的一些准备
- 修改主机名
hostnamectl set-hostname stack-controller
替换国内yum源
替换之前先备份旧配置mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
centos各版本的源配置列表
centos5curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos5_base.repo
centos6curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos6_base.repo
centos7curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
更新缓存yum clean all yum makecache
替换国内pip源(非必要的)
修改 ~/.pip/pip.conf (没有就创建一个)文件,更新index-url至腾讯云路径,如:[global] index-url = https://mirrors.cloud.tencent.com/pypi/simple trusted-host = mirrors.cloud.tencent.com
推荐去掉网卡个性化信息(非必要)
在quiet前面加上 net.ifnames=0 biosdevname=0vi /etc/default/grub
GRUB_TIMEOUT=2 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb net.ifnames=0 biosdevname=0 quiet" GRUB_DISABLE_RECOVERY="true"
修改完成后重新生成grub配置文件
grub2-mkconfig -o /boot/grub2/grub.conf
修改网卡配置文件(有多块网卡自行设置)mv /etc/sysconfig/network-scripts/ifcfg-en* /etc/sysconfig/network-scripts/ifcfg-eth0
按需修改如果遇到eth0 eth1 顺序错乱的情况可以使用udev的规则来手工设置
cat 60-net.rules
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="你自己的网卡1的mac地址",IMPORT="/lib/udev/rename_device %k eth0"SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="你自己的网卡2的mac地址",IMPORT="/lib/udev/rename_device %k eth1"
使用udevinfo 获取网卡物理设备信息
`udevinfo -a -p /sys/class/net/eth0`
ifconfig 也可以看到设备的mac地址信息
安装packstack
以上配置都完成后执行以下命令安装packstack
```
$ sudo yum install -y https://www.rdoproject.org/repos/rdo-release.rpm
$ sudo yum update -y
$ sudo yum install -y openstack-packstack
```
packstack支持交互式安装和利用应答文件方式安装。
单节点模式安装
packstack --allinone
多节点模式安装
packstack --install-hosts=CONTROLLER_ADDRESS,NODE_ADDRESSES
这种方式支持利用puppet批量安装。 多个节点使用,分隔即可
我选择使用应答文件手动安装packstack --gen-answer-file answer.ini
多节点做好免密
修改应答文件
42: CONFIG_SWIFT_INSTALL=n
75: CONFIG_NTP_SERVERS=ntp1.aliyun.com
333: CONFIG_KEYSTONE_ADMIN_PW=a
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan
876: CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
936: CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
1179:CONFIG_PROVISION_DEMO=n
packstack --answer-file=answer.ini
安装额外节点
vim answer.ini
修改
CONFIG_COMPUTER_HOST=192.168.1.2,192.168.1.3
CONFIG_NETWORK_HOST=192.168.1.2,192.168.1.3packstack --answer-file=answer.ini