# 使用PackStack安装OpenStack 单节点 ## 环境准备 - 关闭相关服务 所有节点填写网络映射 ``` echo "192.168.105.10 controller" >> /etc/hosts ``` 所有节点永久关闭 selinux,永久关闭 firewalld,永久关闭 NetworkManager ``` systemctl stop firewalld; systemctl disable firewalld systemctl stop NetworkManager; systemctl disable NetworkManager sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config reboot ``` - 配置yum 清空yum源 ``` mv /etc/yum.repos.d/* /tmp/ ``` 在controller节点挂载本地源 ``` [root@controller ~]$ mkdir -p /opt/{centos,extras,openstack} [root@controller ~]$ mount -o loop /root/CentOS-7-x86_64-Everything-1804.iso /mnt/ [root@controller ~]$ cp -rvf /mnt/* /opt/centos/ [root@controller ~]$ umount /mnt/ [root@controller ~]$ mount -o loop /root/RHEL7-extras.iso /mnt/ [root@controller ~]$ cp -rvf /mnt/* /opt/extras/ [root@controller ~]$ umount /mnt/ [root@controller ~]$ mount -o loop /root/RHEL7OSP-10.iso /mnt/ [root@controller ~]$ cp -rvf /mnt/* /opt/openstack/ [root@controller ~]$ umount /mnt/ ``` 在controller节点编写本地源 ``` [root@controller ~]$ vi /etc/yum.repos.d/local.repo [centos] name=centos baseurl=file:///opt/centos/ gpgcheck=0 enabled=1 [extras] name=extras baseurl=file:///opt/extras/ gpgcheck=0 enabled=1 [openstack] name=openstack-10 baseurl=file:///opt/openstack/rhel-7-server-openstack-10-rpms/ gpgcheck=0 enabled=1 [openstack-devtool] name=openstack-10-devtools baseurl=file:///opt/openstack/rhel-7-server-openstack-10-devtools-rpms/ gpgcheck=0 enabled=1 ``` - 需要安装的依赖包 qemu-kvm -> 硬件仿真 -> compute节点 libvirt-daemon -> 后台管理进程,管理硬件仿真 -> compute节点 libvirt-daemon-driver-qemu -> 驱动程序 -> compute节点 libvirt-client -> 后台管理的接口 -> compute节点 python-setuptools -> Python -> controller节点 节点安装依赖 ``` yum -y install qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptool ``` - 检查基础环境 是否禁用 firewalld 和 NetworkManager 是否为静态 IP 主机之间是否能 ping 通 依赖包是否是10670 依赖是否安装 ``` systemctl start libvirtd ``` NTP是否可用,时间是否同步 检查 /etc/resolv.conf 不能有search开头的行 ## 安装 PackStack - 安装OpenStack需要使用的 PackStack 在 controller节点 安装 ``` #安装PackStack [root@controller ~]$ yum -y install openstack-packstack #使用PackStack创建应答文件 [root@controller ~]$ packstack --gen-answer-file=answer.ini ``` - 修改应答文件 ``` sed -i "s#^CONFIG_SWIFT_INSTALL=.*#CONFIG_SWIFT_INSTALL=n#g" answer.ini sed -i "s#^CON:FIG_CEILOMETER_INSTALL=.*#CONFIG_CEILOMETER_INSTALL=n#g" answer.ini sed -i "s#^CONFIG_AODH_INSTALL=.*#CONFIG_AODH_INSTALL=n#g" answer.ini sed -i "s#^CONFIG_GNOCCHI_INSTALL=.*#CONFIG_GNOCCHI_INSTALL=n#g" answer.ini sed -i "s#^CONFIG_NTP_SERVERS=.*#CONFIG_NTP_SERVERS=time1.aliyun.com#g" answer.ini sed -i "s#^CONFIG_COMPUTE_HOSTS=.*#CONFIG_COMPUTE_HOSTS=192.168.105.10#g" answer.ini sed -i "s#^CONFIG_NETWORK_HOSTS=.*#CONFIG_NETWORK_HOSTS=192.168.105.10#g" answer.ini sed -i "s#^CONFIG_KEYSTONE_ADMIN_PW=.*#CONFIG_KEYSTONE_ADMIN_PW=123456#g" answer.ini sed -i "s#^CONFIG_NEUTRON_ML2_TYPE_DRIVERS=.*#CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan#g" answer.ini sed -i "s#^CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=.*#CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex#g" answer.ini sed -i "s#^CONFIG_NEUTRON_OVS_BRIDGE_IFACES=.*#CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens33#g" answer.ini sed -i "s#^CONFIG_PROVISION_DEMO=.*#CONFIG_PROVISION_DEMO=n#g" answer.ini ``` - 安装 ``` [root@controller ~]$ packstack --answer-file=answer.ini ``` - 验证安装是否成功 配置Dashboard ``` [root@controller ~]$ vi /etc/httpd/conf.d/15-horizon_vhost.conf #在 WSGIProcessGroup apache 下面 插入一行 WSGIApplicationGroup %{GLOBAL} [root@controller ~]$ systemctl reload httpd ``` 验证登录 OpenStack dashboard http://192.168.105.10/dashboard 用户名:admin 密码:123456