一、packstack
packstack是红帽RDO项目的一个,主要用进行概念性,测试性的openstack搭建,一般作为测试验收。它有着原生openstack的所有组件,可以使用all in one的方式,将所有计算节点和控制节点都部署在一台服务器上,目前已经更新到queen版本。官网地址为https://www.rdoproject.org/install/packstack/。可以按照官网说明搭建,但是有坑。
二、环境准备
采用基于kvm的虚拟机,kvm平台为nutanix,天生支持虚拟化嵌套。
操作系统,centos7 自小化安装
cpu 2路4核心
硬盘300G
内存 16G
网卡 一块 要保证能上外网
虚拟按照最小化安装即可
等待安装完毕进行初始化配置
三、初始化配置
主要是禁用selinux,关闭防火墙,更新yum源等,我采用脚本执行,如下所:
#!/bin/bash #change yum source #disable selinux #name=start.sh echo "========start=============" cd /etc/yum.repos.d/ sed -i '/SELINUX/s/enforcing/disabled/' /etc/sysconfig/selinux iptables -F systemctl disable firewalld systemctl stop firewalld echo "====dowload tools=========" yum install -y net-tools vim wget echo "====backup repo===========" mv CentOS-Base.repo CentOS-Base.repo.bak echo "====dowload aliyum-repo====" wget http://mirrors.aliyun.com/repo/Centos-7.repo echo "====upgrade aliyum-repo====" mv Centos-7.repo CentOS-Base.repo echo "====upgrade yum============" yum clean all ange yum source echo "========start=============" cd /etc/yum.repos.d/ echo "====dowload tools=========" yum install -y net-tools vim wget echo "====backup repo===========" mv CentOS-Base.repo CentOS-Base.repo.bak echo "====dowload aliyum-repo====" wget http://mirrors.aliyun.com/repo/Centos-7.repo echo "====upgrade aliyum-repo====" mv Centos-7.repo CentOS-Base.repo echo "====upgrade yum============" yum clean all yum makecache yum update -y echo "========start=============" cd /etc/yum.repos.d/ echo "====dowload tools=========" yum install -y net-tools vim wget echo "====backup repo===========" mv CentOS-Base.repo CentOS-Base.repo.bak echo "====dowload aliyum-repo====" wget http://mirrors.aliyun.com/repo/Centos-7.repo echo "====upgrade aliyum-repo====" mv Centos-7.repo CentOS-Base.repo echo "====upgrade yum============" yum clean all yum makecache yum update -y yum makecache yum makecache yum update -y cd ~ echo "=========finish============"
记得脚本需要加上可执行权限,,耐心等待
在完成后,建议制作一次快照,当后面部署除了问题后,直接快照回滚
三、packstack安装脚本
编写脚本,自动安装packstack all in one,同时可以进行neutron网络配置,方便一键执行。关于packstack网络配置,请参考官方手册说明
https://www.rdoproject.org/networking/neutron-with-existing-external-network/
#/bin/bash #identity user is a superuser #script_mane=ops-allinone-nodemo-custnetwork-v3.sh if [ `id -u` != 0 ];then echo "Please Run it using User root" exit 10 fi #env check echo "Run environment check......." rpm -qa |grep yum-utils &> /dev/null || yum -y install yum-utils &> /dev/null && echo "environment check complete" ||(echo "no yum-utils package exist,Please install it manual";exit 10) #enable and disabled Services echo "Disable and Enable SomeService......." systemctl disable firewalld &> /dev/null if [ $? = 0 ];then systemctl stop firewalld &> /dev/null if [ $? = 0 ];then systemctl disable NetworkManager &> /dev/null if [ $? = 0 ];then systemctl stop NetworkManager &> /dev/null if [ $? = 0 ];then systemctl enable network &> /dev/null if [ $? = 0 ];then systemctl start network &> /dev/null if [ $? = 0 ];then echo "All Service's Status is normal" else echo "Start network service failed" exit 10 fi else echo "Enable network service failed" exit 10 fi else echo "Stop NetworkManager Service failed" exit 10 fi else echo "Disabled NetworkManager Service failed" exit 10 fi else echo "Stop firewalld Servie failed" exit 10 fi else echo "Disabled firewalld failed" exit 10 fi #testing network echo "Now Testing your Ineternet Netowrk ......." ping -c 3 8.8.8.8 &> /dev/null && echo "Network test is complete" ||(echo "Network test is failed,Please make sure your network can connect Internet " ;exit 10) #yum install openstack queens echo "Now install openstack queens's software repo......" yum install -y centos-release-openstack-queens &> /dev/null && echo "Install repo complete,Next will enabled this repo"|| (echo "Install repo failed. Please check your network"; exit 10) #enabled yum repo echo "enabled yum repo......" yum-config-manager --enable openstack-queens &> /dev/null && echo "yum repo enabled ."||(echo "enabled repo failed";exit 10) #now to update your software to lastest echo "now to update your software to lastest......" yum update -y &> /dev/null && echo "Update complete "||(echo "Update failed";exit 10) #now to install openstack-packstack tools echo "now to install openstack-packstack tools....." yum install -y openstack-packstack &> /dev/null && echo "Install packstack complete"||(echo "Install packstack failed";exit 10) #configure external network nic NICS=$(ip link sh|grep ^[0-9]|cut -d: -f 2|grep -v lo|nl) echo "$NICS" > nicinfo.txt echo -n -e "Please Select a NIC set uplink for br-ex:\n$NICS\n" read NUM NIC=$(cat nicinfo.txt |sed 's/^[ \t]*//g'|grep ^[$NUM]|awk -F" " '{print $2}') echo -n -e "Your Select NIC is $NIC ,Please Makesure use it [yes/no]\n" read N N1=$(echo $N|tr 'A-Z' 'a-z') case $N1 in yes) #now start using packstack deploy Allinone Openstack echo "now start using packstack deploy Allinone Openstack" packstack --allinone --provision-demo=n --os-neutron-ovs-bridge-mappings=extnet:br-ex --os-neutron-ovs-bridge-interfaces=br-ex:$NIC --os-neutron-ml2-type-drivers=vxlan,flat,vlan if [ $? = 0 ];then echo -n -e "Now,Start to configure your network switch br-ex useing $NIC\n" IP=$(ip add sh $NIC|grep -w inet|cut -d' ' -f 6|cut -d'/' -f 1) MASK=$(ip add sh $NIC|grep -w inet|cut -d' ' -f 6|cut -d'/' -f 2) GW=$(route -n|grep ^0.0.0.0|awk -F' ' '{print $2}') DNS=$(cat /etc/resolv.conf|grep ^nameserver|cut -d' ' -f 2) cat > /etc/sysconfig/network-scripts/ifcfg-br-ex <<-EOF TYPE=OVSBridge BOOTPROTO=none DEVICE=br-ex ONBOOT=yes DEVICETYPE=ovs IPADDR=$IP PREFIX=$MASK GATEWAY=$GW DNS1=$DNS EOF cat >/etc/sysconfig/network-scripts/ifcfg-$NIC <<-EOF TYPE=OVSPort DEVICE=$NIC ONBOOT=yes DEVICETYPE=ovs OVS_BRIDGE=br-ex EOF echo "Please using service network restart common to restart your network " else echo "Install Failed Please Check Your network and run this script again" fi ;; no) echo "Please rerun this script" exit 10 ;; esac
记得加上可执行权限,耐心等待。
注意:
1、在安装过程中,耗时2~4小时安装组件,根据网络情况不定
2、有时候报错,无视,直接重新运行脚本
3、脚本采用交互方式确认网络信息,按照提示执行
4、脚本会自动配置网桥,ovs等l2neutron配置
如果能显示这个界面,则说明基本配置成功,耐心等待即可
5、登录
完成安装后,在浏览器输入http://yourip/dashboard即可进入horizen登录界面,登录的帐号密码在keystonerc_admin的文件中。如下所示
进入后,愉快的玩耍吧
使用这个拿来学习openstack,想必也是极好的
转载于:https://blog.51cto.com/11555417/2161098